{"id":1,"date":"2014-04-30T19:22:27","date_gmt":"2014-04-30T19:22:27","guid":{"rendered":"https:\/\/devopsbuzz.com?p=1"},"modified":"2022-01-22T16:51:40","modified_gmt":"2022-01-22T16:51:40","slug":"software-configuration-management-scm","status":"publish","type":"post","link":"https:\/\/devopsbuzz.com\/software-configuration-management-scm\/","title":{"rendered":"Software Configuration Management [SCM] &#8211; All You Need To Know"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"551\" height=\"253\" src=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/scmQuest-Your-Guide-to-Software-Configuration-Management.png\" alt=\"scmQuest - Your Guide to Software Configuration Management\" class=\"wp-image-11\" title=\"scmQuest - Your Guide to Software Configuration Management\" srcset=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/scmQuest-Your-Guide-to-Software-Configuration-Management.png 551w, https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/scmQuest-Your-Guide-to-Software-Configuration-Management-300x137.png 300w\" sizes=\"(max-width: 551px) 100vw, 551px\" \/><\/figure><\/div>\n\n\n\n<p>In today\u2019s world where we are becoming more and more digital and everything depends upon software, software management is a real challenge.&nbsp; All the software projects are getting more complex and complicated in terms of logic, size, difficulty, and technologies used for them.<\/p>\n\n\n\n<p>In every organization, daily a new fix\/enhancement is added to the project that makes the software management even more complex and the response time to get it done is very less.<\/p>\n\n\n\n<p>All software\u2019s are subjected to constant changes during each phase of the software life cycle, such as planning, design, development, and even after development.<\/p>\n\n\n\n<p>Here,<strong> Software Configuration Management<\/strong> (SCM) comes into the picture.<\/p>\n\n\n\n<p>The need for software configuration management is no more unknown to anyone in this digital world and it\u2019s well pronounced than ever.<\/p>\n\n\n\n<p><strong>Software configuration management <\/strong>is a method of bringing control to the software development and software management process. It enhances productivity and boosts application quality.<\/p>\n\n\n\n<p><strong>SCM <\/strong>is a process used for more efficiently developing and maintaining software, which is accomplished by improving accountability, audit-ability, reproducibility, traceability, and coordination.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/untitled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"288\" src=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/untitled-300x288.png\" alt=\"scm life cycle\" class=\"wp-image-32\" title=\"scm-life-cycle\" srcset=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/untitled-300x288.png 300w, https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/untitled.png 620w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Importance and Need of SCM<\/h3>\n\n\n\n<p>Let\u2019s assume an example of the organization where they didn\u2019t opt SCM process and started working on the project. They gathered the requirements from the client but neither they identified any control change nor accounted for it.<\/p>\n\n\n\n<p>The team started developing the code in an ordinary system and built software out of it. They then deployed it manually without using any tool and showed it to the client. &nbsp;The client was happy with the front look.<\/p>\n\n\n\n<p>After some days someone found a bug in login functionality and developers started working on it.<\/p>\n\n\n\n<p>Only one user was working on the affected module while others were just waiting for him to finish his work.<\/p>\n\n\n\n<p>Few days later other users also modified their code and they decided to deploy it.<\/p>\n\n\n\n<p>This time they took a backup (a full backup which consumed a lot of disk space) of their code before deploying it.<\/p>\n\n\n\n<p>But later one of the team members changed something by mistake and he didn\u2019t inform anybody, at the same time another team member found out that a text box and the graphics are not looking good.<\/p>\n\n\n\n<p>He modified the code slightly without taking a backup because the disk was almost full and showed it to the client. The client asked them to put the same page which was shown to him the first time.<\/p>\n\n\n\n<p>Now here the <strong>trouble <\/strong>started:-<br>The team didn\u2019t document the configuration items and changes, they modified the code without any backup and they were not able to recognize who has changed the logic.<\/p>\n\n\n\n<p>They had to rework the same piece of work which they did before.<\/p>\n\n\n\n<p>If they would have chosen an SCM process and implemented any version control system then they just have to take out the old version of code from the repository and were able to work in parallel when they found a bug.<\/p>\n\n\n\n<p>They would have easily identified who had changed the code and moreover the user himself would have been able to revert it without any trouble.<\/p>\n\n\n\n<p>They would have also used one of the SCM build &amp; deployment tools to save the exhausting manual work of building and deploying the code.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"344\" height=\"386\" src=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Team.png\" alt=\"Software Configuration Management Team\" class=\"wp-image-16\" srcset=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Team.png 344w, https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Team-267x300.png 267w\" sizes=\"(max-width: 344px) 100vw, 344px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<p>Without SCM, every organization always comes across numerous common software problems. Some examples of these problems are missing source code, changed component libraries, incapability to do parallel development, an inability to track why, when, and who made a change, and difficulty in finding out why the program which was working earlier has suddenly stopped working.<\/p>\n\n\n\n<p>These problems are really frustrating because they are difficult to fix and they reoccur frequently in the software field. <\/p>\n\n\n\n<p>For example, a difficult bug that was fixed previously suddenly reappears, the updated version of the requirements document is not found, a developed and tested feature is missing or the source code and the executable program are of different versions. <\/p>\n\n\n\n<p>SCM definitely helps to eliminate these problems by implementing the best processes of it. SCM plays an important role in the software life cycle by ensuring what was designed is the same as what is built and deployed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The SCM Process<\/h3>\n\n\n\n<p>SCM process comprises of:<\/p>\n\n\n\n<ul><li>Identification of configuration items and Baseline management.<\/li><li>Documentation of characteristics.<\/li><li>Controlling change.<\/li><li>Configuration status accounting.<\/li><li>Auditing and Reproducibility.<\/li><li><a href=\"https:\/\/devopsbuzz.com\/software-build-knowledge\/\" data-type=\"URL\" data-id=\"https:\/\/devopsbuzz.com\/software-build-knowledge\/\">Build<\/a> and Deployment Management.<\/li><li>Process and Environment management.<\/li><li><a href=\"https:\/\/devopsbuzz.com\/continuous-integration-vs-continuous-delivery-vs-continuous-deployment\/\" data-type=\"URL\" data-id=\"https:\/\/devopsbuzz.com\/continuous-integration-vs-continuous-delivery-vs-continuous-deployment\/\">Continuous Integration and Continuous deploymen<\/a>t.<\/li><li>Defect tracking and traceability.<\/li><li>Ensuring integrity, visibility, project coordination and project evolution.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"366\" height=\"315\" src=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Process.png\" alt=\"Software Configuration Management Process\" class=\"wp-image-13\" srcset=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Process.png 366w, https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Process-300x258.png 300w\" sizes=\"(max-width: 366px) 100vw, 366px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">SCM in DevOps<\/h3>\n\n\n\n<p>Software Configuration Management is an integral part of DevOps. <\/p>\n\n\n\n<p>SCM enables the DevOps culture with a variety of tools, concepts, principles, and processes. <\/p>\n\n\n\n<p>SCM is quite an old terminology while the name DevOps got a boom just a decade ago. <\/p>\n\n\n\n<p>To read more about DevOps, please refer to our article <a href=\"https:\/\/devopsbuzz.com\/devops-all-you-need-to-know\/\" data-type=\"URL\" data-id=\"https:\/\/devopsbuzz.com\/devops-all-you-need-to-know\/\">What is DevOps and How Does it Work?<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Myths about SCM<\/h3>\n\n\n\n<p>Like any other software industry process, there are many myths about SCM. here are some familiar ones:<\/p>\n\n\n\n<ul><li>A large scale software development can easily succeed without SCM.<\/li><li>SCM will always slows down the software development process.<\/li><li>SCM is a difficult and lengthy activity.<\/li><li>SCM just provides version control system.<\/li><li>SCM can only benefits developers or the SCM team.<\/li><li>Once SCM implemented then the SCM tools will take care of everything.<\/li><li>One SCM tool is compatible with every project.<\/li><li>SCM is too expensive and tough to maintain.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"494\" src=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Myths.png\" alt=\"Software Configuration Management Myths\" class=\"wp-image-14\" srcset=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Myths.png 496w, https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Myths-150x150.png 150w, https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Myths-300x298.png 300w\" sizes=\"(max-width: 496px) 100vw, 496px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">SCM Best practice includes<\/h3>\n\n\n\n<p>Some of the best practices of SCM are :<\/p>\n\n\n\n<ul><li>Always identify and store artifacts in a secure repository.<\/li><li>Control and audit changes for artifacts.<\/li><li>Require Change Requests and Change Packages<\/li><li>Organize versioned artifacts into versioned components.<\/li><li>Create baselines at project milestones.<\/li><li>Record and track requests for change.<\/li><li>Organize and integrate consistent sets of versions using activities.<\/li><li>Maintain stable and consistent workspaces.<\/li><li>Support concurrent changes to artifacts and to components.<\/li><li>Integrate early and frequently.<\/li><li>Ability to do continuous build and deployments.<\/li><li>Ensure absolute reproducibility for all artifacts.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"537\" src=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Best-Practices.png\" alt=\"Software Configuration Management Best Practices\" class=\"wp-image-15\" srcset=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Best-Practices.png 494w, https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/Software-Configuration-Management-Best-Practices-275x300.png 275w\" sizes=\"(max-width: 494px) 100vw, 494px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Benefits of SCM<\/h3>\n\n\n\n<p>SCM not only benefits just the development &amp; SCM teams but also plays an important role for Business Analysts, Program managers, Testing and Quality Assurance teams.<\/p>\n\n\n\n<p>Some of the benefits of SCM are as follows:<\/p>\n\n\n\n<ul><li>Gives ability to work as distributed team across the globe and saves time for everyone.<\/li><li>Manages complex business processes and provides auditable software every time.<\/li><li>Provides an ability to go back to last working stage or any previous stages as per requirement.<\/li><li>Improves management control over software development activities.<\/li><li>Reduces manual efforts and makes the source code traceable.<\/li><li>Improves software development productivity and organizational competitiveness.<\/li><li>Better customer service and high return on investment.<\/li><li>Prevents the risk of losing functioning code or breaking test scripts by overwriting files.<\/li><li>Improved security and higher software reusability.<\/li><li>Lower software maintenance costs with better quality assurance.<\/li><li>Quicker problem identification and bug fixes with reduction of defects and bugs.<\/li><li>Process-dependent development rather than person-dependent development.<\/li><li>Gives assurance that the correct system is build every time.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"609\" height=\"410\" src=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/SCM-Success.png\" alt=\"Software Configuration Management\" class=\"wp-image-10\" title=\"Software Configuration Management\" srcset=\"https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/SCM-Success.png 609w, https:\/\/devopsbuzz.com\/wp-content\/uploads\/2014\/04\/SCM-Success-300x201.png 300w\" sizes=\"(max-width: 609px) 100vw, 609px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Words to the wise<\/h3>\n\n\n\n<p>Users recognize the importance of SCM only when things go wrong in the project, but sometimes it is too late, and getting a project back on track can be a tedious task without SCM.<\/p>\n\n\n\n<p>The complete implementation of SCM is not a piece of cake. The team has to do a lot of work to implement and keep an SCM system in good shape, but frankly speaking, the whole effort is worth every penny. You will realize it once you have a well-implemented SCM in your organization.<\/p>\n\n\n\n<p>To avoid any failure later in the process, the SCM system should not just be implemented for the sake of certification or audit purposes. It should always be cautiously designed, properly implemented, and practiced systematically before you actually start working with SCM.<\/p>\n\n\n\n<p>SCM can help you to stop any trouble before it actually starts and with the help of it you can make sure that you are building comprehensive and reliable software.<\/p>\n\n\n\n<p>I hope this article gives you a fair amount of idea on what SCM is and what are the other essential things that you need to know about it!<\/p>\n\n\n\n<p>If you require any help or have any feedback &#8211; please spare some time and leave a comment \ud83d\ude42<\/p>\n\n\n\n<p>The next article is all about Version control systems \u2013 what is <a href=\"https:\/\/devopsbuzz.com\/version-control-systems\/\" data-type=\"URL\" data-id=\"https:\/\/devopsbuzz.com\/version-control-systems\/\">VCS<\/a>, what is the use, why it&#8217;s needed in any organization, etc.<\/p>\n\n\n\n<p>Stay tuned!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In today\u2019s world where we are becoming more and more digital and everything depends upon software, software management is a real challenge.&nbsp; All the software projects are getting more complex and complicated in terms of logic, size, difficulty, and technologies used for them. In every organization, daily a new fix\/enhancement is added to the project &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/devopsbuzz.com\/software-configuration-management-scm\/\"> <span class=\"screen-reader-text\">Software Configuration Management [SCM] &#8211; All You Need To Know<\/span> Read More \u00bb<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"footnotes":""},"categories":[3],"tags":[7],"featured_image_urls":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":""},"post_excerpt_stackable":"<p>In today\u2019s world where we are becoming more and more digital and everything depends upon software, software management is a real challenge.&nbsp; All the software projects are getting more complex and complicated in terms of logic, size, difficulty, and technologies used for them. In every organization, daily a new fix\/enhancement is added to the project that makes the software management even more complex and the response time to get it done is very less. All software\u2019s are subjected to constant changes during each phase of the software life cycle, such as planning, design, development, and even after development. Here, Software&hellip;<\/p>\n","category_list":"<a href=\"https:\/\/devopsbuzz.com\/topics\/basics\/\" rel=\"category tag\">Basics<\/a>","author_info":{"name":"Ravi Verma","url":"https:\/\/devopsbuzz.com\/author\/ravi-verma\/"},"comments_num":"41 comments","uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Ravi Verma","author_link":"https:\/\/devopsbuzz.com\/author\/ravi-verma\/"},"uagb_comment_info":86,"uagb_excerpt":"In today\u2019s world where we are becoming more and more digital and everything depends upon software, software management is a real challenge.&nbsp; All the software projects are getting more complex and complicated in terms of logic, size, difficulty, and technologies used for them. In every organization, daily a new fix\/enhancement is added to the project&hellip;","_links":{"self":[{"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/posts\/1"}],"collection":[{"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/comments?post=1"}],"version-history":[{"count":10,"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":1923,"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/posts\/1\/revisions\/1923"}],"wp:attachment":[{"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devopsbuzz.com\/wp-json\/wp\/v2\/tags?post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}