Name of Skill Classification of Skill Prerequisites for Skill Related Software Engineering Areas(s) Rationale for Skill Roles for Skill Work Related To Skill Real World Example Role of Academia/Industry Tools supporting the skill Skill Self Assessment References
Software Configuration Management and Support
In Software Engineering, Software Configuration Management(SCM or S/W CM) is a process to manage, organize, track and control changes to all the entities of the software during software development lifecycle in a systematic way. The purpose of SCM is to see that a software is produced with minimal mistakes. SCM practices include revision control and it can accurately determine who made it.
A Software Configuration Management Administrator/Engineer should posses the following skills:
1: Experience with version control systems:
2: Experience with Software Development LifeCycle(SDLC) process:
3: Knowledge on Infrastructure/Applicaton and Configuration items:
Configuration Item(CI): A part of the system which can be self contained unit for change control.
The most commonly used CI's are the following:Below are few examples for Configuration Items:
| Configuration Items | Common CI's |
|---|---|
| Services | Email, printing, collaboration, presentation, data processing, user registration |
| Software | Applications, databases, virtual machines, containers, licenses |
| Hardware | Servers, routers, computers, swetches |
| Devices | Laptops, tablets, smartphones,, keyboards, mice, monitors |
| Documents | Policies, governance, release notes, user guides, troubleshooting manuals |
| Locations | Offices, data centers, server rooms |
| Staff | Service desk agents, support specialists, developers |
1 - Release Management Release management is nothing but the process of planing, scheduling and managing a software build during different stages of software development lifecycle.
2 - Software Testing Software Testing is verification of the application in different with different use cases
3 - Devops DevOps is the process of automating and integration between software development and teams for faster building of applications with more reliable features.