<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Development Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/tag/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/tag/software-development/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Tue, 25 Jan 2022 05:00:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>List of software development company in Ranchi</title>
		<link>https://www.scmgalaxy.com/tutorials/list-of-software-development-company-in-ranchi/</link>
		
		<dc:creator><![CDATA[Mantosh Singh]]></dc:creator>
		<pubDate>Mon, 24 Jan 2022 18:26:50 +0000</pubDate>
				<category><![CDATA[News & Events]]></category>
		<category><![CDATA[Release, News & Updates]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Company]]></category>
		<category><![CDATA[IT companies]]></category>
		<category><![CDATA[jharkhand]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[Ranchi]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Top]]></category>
		<guid isPermaLink="false">https://www.scmgalaxy.com/tutorials/?p=9661</guid>

					<description><![CDATA[<p>&#8220;Ranchi&#8221; the capital city of State &#8220;Jharkhand&#8221; blessed with mineral resources in abundance, always known as an industrial hub of [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/list-of-software-development-company-in-ranchi/">List of software development company in Ranchi</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">&#8220;Ranchi&#8221; the capital city of State &#8220;Jharkhand&#8221; blessed with mineral resources in abundance, always known as an industrial hub of the east and famous as the “Manchester of the East”. Along with various industries, in recent years Ranchi has witnessed an explosion of service industries such as marketing, media, healthcare, education, and specifically in the software domain.</p>



<p class="wp-block-paragraph">The potential of Ranchi as a future powerhouse of the country and emerging city for the IT Companies has been duly recognized in the recent surveys by &#8220;timesofindia&#8221;, with Ranchi receiving significant investments from various Software Development Companies after incentives offered by the government under its &#8220;Software Technology Park of India&#8221; (STPI) policy 2016.</p>



<p class="wp-block-paragraph">As Information technology companies are one of the highest contributors to GDP growth and job creation, Ranchi also has witnessed a tremendous transformation into a dynamic city where currently 100 + Software Companies are operational. Surveys are also presuming that in the next two years IT companies in Ranchi will generate 10 thousand plus JOBS and Jharkhand will raise 30 thousand plus JOBS in the state for the Software developers.</p>



<p class="wp-block-paragraph">But, the question is which IT companies are best in Ranchi for Software Developers JOBS or for any other purpose?</p>



<p class="wp-block-paragraph">If you do search on Google for the best Software Development Companies in Ranchi you will find many Software Companies list on google results, but most of the time suggested results are those who have done better Serch Engine Optimizations.</p>



<p class="wp-block-paragraph">If you are looking for the list of software development companies in Ranchi &#8211; this is the right listing to get the best results of top IT companies in Ranchi. These software companies are not ranked according to in position they have been randomly written.</p>



<ol class="wp-block-list"><li><strong>Cotocus:- </strong>Cotocus Private Limited is a global product based software development company in Ranchi with track record of 6 years and extensive workforce of efficient employees working on the various porducts of the company. This is the only product based software development company currently functional in Ranchi and in Jharkhand where 50+ employees and 20+ Interns are working.</li></ol>



<p class="wp-block-paragraph">If you will go to their web page career section, every 6 months they use to hire new software developers in the company and also give opportunities of paid INTERNSHIP to the Computer science graduates or equivalent degrees like BCA, BSCIT, Diploma in Computer Science candidates.</p>



<ul class="wp-block-list"><li>Rating:- 5/5</li><li><a href="https://www.cotocus.com/" target="_blank" rel="noreferrer noopener">www.Cotocus.com</a></li><li>Job Apply @ Email &#8211; contact@cotocus.com</li></ul>



<ol class="wp-block-list" start="2"><li><strong>HolidayLandmark:- </strong>This company is situtated at Ranchi where 70+ employees are working and built this platform where you can discover the most amazing travel and events expereince around the world with the help of Holidaylandmark.com. This application is making it easy to connect and plan holidays in group or solo trip with all the needed assistance with incredible deals.</li></ol>



<p class="wp-block-paragraph">This place has a great work environment provides exceptional career opportunities for Software developers. Team size of 100 people and growing day by day and always look for various talents to hire them in the workforce to reach the goal &#8220;India&#8217;s best trip planning platform&#8221;</p>



<ul class="wp-block-list"><li>Rating:- 4.5/5</li><li><a href="https://www.holidaylandmark.com/" target="_blank" rel="noreferrer noopener">www.HolidayLandmark.com</a></li><li>Job Apply @ Email &#8211; contact@holidaylandmark.com</li></ul>



<ol class="wp-block-list" start="3"><li><strong>Professnow:- </strong>Professnow team is working to resolve a big problem of the society. After pandemic there are two common questions arisen &#8220;How to regrow your Business after Covid-19 Pandemic hit?&#8221; and &#8220;How to go online and reach customers and clients after the Covid-19 pandemic hit?&#8221;.</li></ol>



<p class="wp-block-paragraph">Professnow team is working on a mission where they are trying to solve Professionals problems and the same time customers problems. If you will read their statement &#8211; you would totally get that &#8220;We are here to build the world&#8217;s best on-demand service experience and professionals community to empower all levels of service providers and professionals of our society to reach their potential customers without technology being a barrier for them where users can easily connect and book their service needs.&#8221;</p>



<p class="wp-block-paragraph">As they are working on this huge mission, they also need a team of skillful IT engineers. They are also one of the best Software development companies in Ranchi always searching for the best talent in the local area to hire.</p>



<ul class="wp-block-list"><li>Rating:- 4.8/5</li><li><a href="https://professnow.com/" target="_blank" rel="noreferrer noopener">www.Professnow.com</a></li><li>Job Apply @ Email &#8211; contact@professnow.com</li></ul>



<ol class="wp-block-list" start="4"><li><strong>DevOpsSchool:-</strong> DevOpsSchool is an ED-Tech next generation solution built to resolve IT Companies and Software professional&#8217;s skills up-gradation and digital transformation problems.</li></ol>



<p class="wp-block-paragraph">This company has developed a one-stop solution platform dedicated for Software professionals. Being a software company or software professional &#8211; if you need any skill up-gradation workshops or programs whether its online or offline for the group of employees or as an individual, you may use this platform to find the best trainers and top consulting firms at the best rates.</p>



<p class="wp-block-paragraph">Managing such a huge application is not an easy task. Being a software developer if you are trying to find a job in Ranchi, you can apply here &#8211; If you get selected, you are going to learn a lot of things in a short span of time.</p>



<ul class="wp-block-list"><li>Rating:- 4.9/5</li><li><a href="https://www.devopsschool.com/" target="_blank" rel="noreferrer noopener">www.DevOpsSchool.com</a></li><li>Job Apply @ Email &#8211; contact@devopsschool.com</li></ul>



<ol class="wp-block-list" start="5"><li><strong>Wizbrand:-</strong> Wizbrand is a Digital Marketing Company having a slogan of shaping Digital Era, developed and offer a powerful platform for all Digital marketing needs. Individuals and Organizations can preapare their digital marketing startegies and manage all their digital marketing projects, assets, tasks, resources and track their progress and stay organized with centralized workspace &#8220;WizBrand.com&#8221;.</li></ol>



<p class="wp-block-paragraph">This software company is functional for several years in Ranchi and having tremendous growth and they always use to publish their JOB requirements every quarter through various channels.</p>



<ul class="wp-block-list"><li>Rating:- 4.4/5</li><li><a href="https://www.wizbrand.com/" target="_blank" rel="noreferrer noopener">www.Wizbrand.com</a></li><li>Job Apply @ Email &#8211; contact@wizbrand.com</li></ul>



<ol class="wp-block-list" start="6"><li><strong>Brightcode:-</strong> Brightcode functional since 2019 in Ranchi and relentlessly helping startups and enterprises to improve their business presence and workflow process with innovative software solutions.</li></ol>



<ul class="wp-block-list"><li>Ratings:- 4.3/5</li><li>www.brightcodess.com</li></ul>



<ol class="wp-block-list" start="7"><li><strong>Ubiqueit:- </strong>Ubique is one of software company in Ranchi running last 5 yrs provides IT Services, software design and development as well as professional services and hardware deployment and maintenance to the flenties of vertics.</li></ol>



<ul class="wp-block-list"><li>Ratings:- 4.2/5</li><li>www.ubiqueit.com</li></ul>



<ol class="wp-block-list" start="8"><li><strong>JIS:-</strong> Jharkhand IT Services(JIS) &#8211; operating in Ranchi since 2015. It provides Design and Development Solutions and as well as Domain and Hosting Services. They have very good track record and expertise in Android/iPhone mobile app Development.</li></ol>



<ul class="wp-block-list"><li>Ratings:- 4.4/5</li><li>www.jharkhanditservices.com</li></ul>



<ol class="wp-block-list" start="9"><li><strong>Tripledots:-</strong> Tripledots running since 2020 a reputable software company in Ranchi having a good client base from diverse industries, including Healthcare, Tourism, Real Estate, Manufacturing, Hospitality, Online Media Houses, Banks, and more.</li></ol>



<ul class="wp-block-list"><li>Ratings:- 4.3/5</li><li>www.tripledotss.com</li></ul>



<ol class="wp-block-list" start="10"><li><strong>Matrop:- </strong>Serving as IT company in Ranchi since 2012 MATROP has successfully designed, developed and implemented websites/Software’s/ERPs/Applications for many Government and private oranizations by providing custom packages focused on their busines need and goals.</li></ol>



<ul class="wp-block-list"><li>Ratings:- 4.6/5</li><li>www.matrop.com</li></ul>



<p class="wp-block-paragraph">Did I just finish the list? Well, then let me tell you that many of the Ranchi readers might be feeling that other software development companies must be present in this list. So if this is the case or if I have missed any reputed IT company of Ranchi in the list then please don’t forget to write a comment with the complete address of the company.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/list-of-software-development-company-in-ranchi/">List of software development company in Ranchi</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Become a Blockchain Developer?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-become-a-blockchain-developer/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-become-a-blockchain-developer/#respond</comments>
		
		<dc:creator><![CDATA[narayan k]]></dc:creator>
		<pubDate>Mon, 23 Aug 2021 11:25:38 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blockcain]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[scmgalaxy]]></category>
		<category><![CDATA[Skills]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.scmgalaxy.com/tutorials/?p=8226</guid>

					<description><![CDATA[<p>Blockchain development is one of the fastest growing areas. Companies are looking for blockchain developers to implement new ones, upgrade [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-become-a-blockchain-developer/">How to Become a Blockchain Developer?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Blockchain development is one of the fastest growing areas. Companies are looking for blockchain developers to implement new ones, upgrade their existing systems, and move forward in the industry. Technology is always evolving, and if you want to make a career for the future, is the way to go Blockchain.</p>



<p class="wp-block-paragraph"><strong>What is <a href="https://www.devopsschool.com/certification/blockchain.html" target="_blank" rel="noreferrer noopener">Blockchain Developer</a>?</strong></p>



<p class="wp-block-paragraph">Blockchain developer skills are a combination of hard skills and soft skills from an abstract point of view. They can handle the entire life cycle of a blockchain application. This means that you will be responsible for the execution of the application as well as research.</p>



<p class="wp-block-paragraph"><strong>Types of Blockchain Developers:</strong></p>



<p class="wp-block-paragraph">There are two types of Blockchain Developer.</p>



<ul class="wp-block-list"><li>Blockchain software developer</li><li>Core blockchain developer</li></ul>



<p class="wp-block-paragraph">They are both involved in blockchain development, but they have different responsibilities.</p>



<p class="wp-block-paragraph"><strong>Blockchain Software Developer</strong></p>



<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-166.png" alt="" class="wp-image-8227" width="690" height="324" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-166.png 518w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-166-300x141.png 300w" sizes="(max-width: 690px) 100vw, 690px" /></figure>



<p class="wp-block-paragraph">Blokchain software developers to create applications based on Blokchain architectures and protocols. Their apps also run on the blockchain. You can compare them to web developers, who use the products of a web architect (protocol and design) to develop web applications.</p>



<p class="wp-block-paragraph">Blockchain software developers create dapps or decentralized applications. They are responsible for the back-end development as well as front-end of Daps. They also monitor the stack running the dapps.</p>



<p class="wp-block-paragraph"><strong>Core Blockchain Developer</strong></p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-167.png" alt="" class="wp-image-8228" width="689" height="318" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-167.png 531w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-167-300x138.png 300w" sizes="(max-width: 689px) 100vw, 689px" /></figure>



<p class="wp-block-paragraph">These developers focus on the architecture development of blockchain systems. They design their own consensus protocol and make most of the important decisions related to the blockchain. They monitor the network and design the architecture of the same. Core blockchain developers are also responsible for the security of their blockchain network.</p>



<p class="wp-block-paragraph"><strong>Role and Responsibilities of Blockchain Developer:</strong></p>



<ul class="wp-block-list"><li>Research, design, develop, and test blockchain technologies.</li><li>Brainstorm and help evaluate applications for new tools and technologies as they continually evolve.</li><li>Maintain and extend current client- and server-side applications responsible for integration and business logic.</li><li>Collaborating with managers to determine blockchain technology needs and envisaged functionalities.</li><li>Maintaining client and server-side applications.</li><li>Optimizing and securing blockchain applications by integrating new tools and technologies.</li><li>Taking into account the current blockchain technologies and cryptography methods.</li></ul>



<p class="wp-block-paragraph"><strong>Blockchain Developer Skills:</strong></p>



<p class="wp-block-paragraph">Blockchain developers have many responsibilities. To handle those responsibilities well, they must possess certain skills as well.</p>



<p class="wp-block-paragraph"><strong>Cryptography:</strong></p>



<p class="wp-block-paragraph">Cryptography is the study of protocols that prevent unwanted parties from accessing your data. There are several essential concepts in cryptography that you should be familiar with as you will need them during blockchain development.</p>



<p class="wp-block-paragraph"><strong>Data Structures:</strong></p>



<p class="wp-block-paragraph">To become a blockchain developer you need to have extensive knowledge of data structures. This is because blockchain developers regularly work with different data structures as they need to build and implement networks.</p>



<p class="wp-block-paragraph"><strong>Blockchain Architecture:</strong></p>



<p class="wp-block-paragraph">To become a blockchain developer, you must be familiar with blockchain architecture. You should know what a ledger means in a blockchain, what is consensus, and how smart contracts work.</p>



<p class="wp-block-paragraph"><strong>Web Development:</strong></p>



<p class="wp-block-paragraph">As a blockchain developer, you will be developing web apps in most cases. Learning web development will you familiar with all its aspects, and you can create robust web apps that use Blokchain technology using this knowledge.</p>



<p class="wp-block-paragraph"><strong>Java:</strong></p>



<p class="wp-block-paragraph">Java is popular among blockchain developers due to its many properties. It is easy to learn, but it is capable of developing many complex solutions.</p>



<p class="wp-block-paragraph"><strong>C++:</strong></p>



<p class="wp-block-paragraph">C++ is a popular language among blockchain developers. You can do a lot of things related to blockchain with its help. The creators used C++ to create Bitcoin Core, so it&#8217;s definitely a must-see for any aspiring blockchain developer.</p>



<p class="wp-block-paragraph"><strong>Python:</strong></p>



<p class="wp-block-paragraph">Python is one of the most popular programming languages on the planet. It is versatile, and its various libraries enable you to use it for both front-end as well as back-end development. So you should also familiar yourself with Python.</p>



<p class="wp-block-paragraph">You can learn JavaScript, Ruby, and C# in addition to the languages mentioned above. The ability to learn and work with multiple languages is one of the important blockchain developer skills.</p>



<p class="wp-block-paragraph"><strong>What Blockchain Developer do?</strong></p>



<p class="wp-block-paragraph">Blockchain software developers build applications based on the blockchain architecture and protocol. Blockchain software developers create dapps or decentralized applications. They are responsible for the front-end as well as back-end development of Dapps. They also monitor the stack running the dapps.</p>



<p class="wp-block-paragraph">Blockchain developers enable secure digital transactions by the system to record and store Blockchain data which prevents changes or hack.</p>



<ul class="wp-block-list"><li>They design secure blockchain technologies.</li><li>Develop application features and interfaces.</li><li>Maintain client and server-side applications.</li></ul>



<p class="wp-block-paragraph">At present, Blockchain is considered one of the most revolutionary technologies as it transforms the way we interact, transact, and share information. Many technocrats and Blockchain Experts also believe that it is going to be the most disruptive technology in the next decade.</p>



<p class="wp-block-paragraph">Today, this technology is not only used by tech giants, enterprises, federal agencies, and even startups have started adopting Blockchain. In fact, they are looking for Certified Blockchain Experts and are considering certified professionals over the non-credential peers.</p>



<p class="wp-block-paragraph">Thank you!!</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-become-a-blockchain-developer/">How to Become a Blockchain Developer?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-become-a-blockchain-developer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What is python?</title>
		<link>https://www.scmgalaxy.com/tutorials/what-is-python/</link>
					<comments>https://www.scmgalaxy.com/tutorials/what-is-python/#respond</comments>
		
		<dc:creator><![CDATA[Manish Kumar]]></dc:creator>
		<pubDate>Mon, 05 Jul 2021 11:12:28 +0000</pubDate>
				<category><![CDATA[Programming Scripting Languages]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[Certiffication]]></category>
		<category><![CDATA[Devops]]></category>
		<category><![CDATA[DevOpsschool]]></category>
		<category><![CDATA[Learn]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Programming Language]]></category>
		<category><![CDATA[Salary]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Programmers]]></category>
		<category><![CDATA[Trainer]]></category>
		<category><![CDATA[Training]]></category>
		<guid isPermaLink="false">https://www.scmgalaxy.com/tutorials/?p=6624</guid>

					<description><![CDATA[<p>Python is a programing language that combines features of C and Java. Python is an object-oriented, with high-level programming language [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-python/">What is python?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Python is a programing language that combines features of C and Java.<strong> </strong>Python is an object-oriented, with high-level programming language with dynamic semantics. It’s a high-level built in data structures, combined with dynamic typing and dynamic binding,&nbsp; that makes it very attractive for fast Application Development, as well as for use as a scripting or glue language to connect existing components together.</p>



<p class="wp-block-paragraph"><strong>Features of python</strong></p>



<ul class="wp-block-list"><li>Easy to code</li><li>Free and open Source</li><li>Object-Oriented Languages</li><li>GUI Programming supports</li><li>High-level Language</li><li>Extensible Feature</li><li>Large Standard Library</li><li>Dynamically Typed Language</li></ul>



<p class="wp-block-paragraph"><strong>Why Should You Learn Python?</strong></p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-00.png" alt="" class="wp-image-6639" width="650" height="258" /></figure>



<p class="wp-block-paragraph">Nowadays, Python has become one of the fastest growing and most popular programming languages in the world. Is it a good choice for your next project though? Python is versatile, it is easy to use and develop.</p>



<p class="wp-block-paragraph">Moreover, it has a very vibrant community. You can easily find support from the best minds in the field. It is well-loved among both experienced programmers and beginners alike. There are many reasons to learn Python. Some of the reason to learn Python are:</p>



<ul class="wp-block-list"><li>Versatile, easy to use and fast to develop</li><li>Open source with a vibrant community</li><li>It has all the library required</li><li>Great for prototype (You can do more with less Coding)</li><li>Fast Development speed</li><li>Easy maintenance</li><li>Not native to mobile environment</li><li>Learning Python will keep you relevant</li><li>Python is similar to English</li><li>Python is widely used</li></ul>



<p class="wp-block-paragraph"><strong>How Long Does it Take to Learn Python?</strong></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-06.png" alt="" class="wp-image-6638" width="761" height="378" /></figure>



<h2 class="wp-block-heading"></h2>



<p class="wp-block-paragraph">If you’re looking to become a Python expert you have a much longer path ahead of you. In this article, we’ll just look at how long it takes to get a basic, well-rounded understanding of the Python language.</p>



<p class="wp-block-paragraph">On average, for beginners it takes about 10-12 hours to learn the basics. This will get you enough to understand most lines of code in Python. If you plan on getting into data science or another specialized field, counting in months and years is more appropriate. If you spend your 5 to 6 months to this language, then this matter of time suited those who pan full time work in this.</p>



<p class="wp-block-paragraph">To learn, plan is simple you should have to spend 2-3 hours a day on computer and practise it on daily basis. One day learn something and next day practise it with fully.</p>



<p class="wp-block-paragraph">You may need to sacrifice the time you spend watching Netflix, but it’s well worth it for a stellar new career!</p>



<p class="wp-block-paragraph"><strong>Career Opportunities in Python</strong></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-03-1024x536.jpg" alt="" class="wp-image-6630" width="727" height="380" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-03-1024x536.jpg 1024w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-03-300x157.jpg 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-03-768x402.jpg 768w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-03.jpg 1200w" sizes="auto, (max-width: 727px) 100vw, 727px" /></figure>



<p class="wp-block-paragraph"><strong>Python</strong>&nbsp;is not only one of the most popular programming languages across the globe, but it is one that offers the most promising&nbsp;career&nbsp;opportunities as well. This demand for&nbsp;Python&nbsp;developers is increasing every year. There is a reason why this high-level programming language is so popular.</p>



<p class="wp-block-paragraph">Python can be used in several areas, including testing, web development, app development and upgrades, and scriptwriting. If you acquire this skill, you will have more Python career opportunities than you can imagine.</p>



<p class="wp-block-paragraph"><strong>Python Career Opportunities</strong></p>



<p class="wp-block-paragraph">So what are the options in front of you when you complete your Python learning? Here are a few job roles that you can fill:</p>



<ul class="wp-block-list"><li><strong>Python Developer</strong></li></ul>



<p class="wp-block-paragraph">This type of jobs you can except after acquiring the skills of python, you have always open position for Python Developer.</p>



<p class="wp-block-paragraph">What does a Python developer do?&nbsp;</p>



<ol class="wp-block-list" type="1"><li>Building website</li><li>Resolve problems related to data analytics</li><li>Write codes that are reusable and efficient</li><li>Optimize data algorithms</li></ol>



<ul class="wp-block-list"><li><strong>Data analyst</strong></li></ul>



<p class="wp-block-paragraph">This particular job option is mainly for those who like to working with huge amounts of data and finding meaning in that data. This also a popular job role in this domain. There are many companies that are looking for people who can work with the large sets of data that they have access to.</p>



<ul class="wp-block-list"><li><strong>Product Manager</strong></li></ul>



<p class="wp-block-paragraph">Product managers comes with an important role to play in this domain when it comes to helping businesses to understand the market and why building one product will be better than building another. Data is a very important part of the work they do. They study the market, research for new features related to a particular product or category, and advocate the building of certain products with facts.&nbsp;</p>



<ul class="wp-block-list"><li><strong>Machine learning engineer</strong></li></ul>



<p class="wp-block-paragraph">Nowadays requirement off this particular job role is by 330% in the last couple of years.</p>



<p class="wp-block-paragraph">A machine learning engineer builds and trains machines, programs, and other computer-based systems to apply their learned knowledge for making predictions.</p>



<p class="wp-block-paragraph"><strong>Why Python skill is essential for every Software Engineer?</strong></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-50.png" alt="" class="wp-image-6641" width="724" height="374" /></figure>



<p class="wp-block-paragraph"><strong>Python</strong>&nbsp;is a very popular open-source&nbsp;software development&nbsp;language that offers enhanced process control capabilities. It is able to&nbsp;develop&nbsp;complex multi-protocol network applications<strong></strong></p>



<ul class="wp-block-list"><li>The career opportunities for skilled professionals are increasing significantly with huge scope for career growth.</li><li>The average salary of a Certified Python Developer is US$116,379 per year.</li><li>There are more Job opportunities for Python professionals in top MNCs when compared to other technologies.</li><li>IT Operations, IT Monitoring, IT Support, &amp; Data Centre teams.</li><li>Professionals who aim to make a career in big data with Python, Professionals having experience of Programming, Software Testing Professionals, Software developers.</li></ul>



<p class="wp-block-paragraph"><strong>Python Job and Salary</strong></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-10-1-1024x576.jpg" alt="" class="wp-image-6632" width="735" height="413" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-10-1-1024x576.jpg 1024w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-10-1-300x169.jpg 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-10-1-768x432.jpg 768w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-10-1-1536x864.jpg 1536w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-10-1.jpg 1600w" sizes="auto, (max-width: 735px) 100vw, 735px" /></figure>



<p class="wp-block-paragraph">This is the vast and most desire welcome opportunity provide to a Python skilled candidates.</p>



<p class="wp-block-paragraph">If you are able to strike a balance, you will not have to think too much about your salary after that. You will have the opportunity to work with the world’s most popular names, such as Amazon, Accenture, Cognizant, Tata Consultancy Services Limited, and others. Your career will continue to grow as you gain more experience.</p>



<p class="wp-block-paragraph">On an averagea senior software developer earn as much as Rs 2,000,000 per annum. Other hand Web developer with Python skills can also earn in the range of Rs 8, 00,000 per annum. Other related job roles include lead software engineer (up to Rs 2,000,000 per annum), data scientist (Rs 7,00,000 per annum), machine learning engineer (Rs 6,70,000 per annum), data analyst (4,17,000 per annum), and more.&nbsp;</p>



<p class="wp-block-paragraph">The popularity of python increased among developers by the fact that Python is used by some of the biggest names in the world – Facebook, Netflix, Google, and Spotify, amongst others. This points towards one thing – As a professional skilled in python, you will have your chance of working with one of your dream companies.&nbsp;</p>



<p class="wp-block-paragraph">To make you this clear we shared you some that that According to <strong>Naukri.com</strong>, there were more than 75,000 open jobs for Python developers in India at the end of 2021. Similarly, the open jobs for Python web developers were around 7000 around the same time.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/07/python-24-1024x307.png" alt="" class="wp-image-6640" width="705" height="252" /></figure>



<p class="wp-block-paragraph"><strong>Conclusion</strong></p>



<p class="wp-block-paragraph">In this Article, we all discussed on point of a career in python. We provided you the enough information about the salaries what you can expect to earn in different job roles with Python skills We also discussed the options that you can choose as a skilled Python professional depending on your interests.</p>



<p class="wp-block-paragraph">If you are curious to learn about Python, and make a good career with this skill then I would suggest you please check out <a href="https://www.devopsschool.com/certification/master-python-programming-course.html">DevOpsSchool.com</a> more information.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy"  id="_ytid_75031"  width="640" height="360"  data-origwidth="640" data-origheight="360" src="https://www.youtube.com/embed/W9blg2x1Pf0?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;" class="__youtube_prefs__  epyt-is-override  no-lazyload" title="YouTube player"  allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe>
</div></figure>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-python/">What is python?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/what-is-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Agile Software Development</title>
		<link>https://www.scmgalaxy.com/tutorials/agile-software-development/</link>
					<comments>https://www.scmgalaxy.com/tutorials/agile-software-development/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Jan 2018 21:18:42 +0000</pubDate>
				<category><![CDATA[Concept & Definition]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4788</guid>

					<description><![CDATA[<p>Agile Software Development &#160;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/agile-software-development/">Agile Software Development</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="elgg-heading-main">Agile Software Development</h2>
<p><img loading="lazy" decoding="async" class="alignnone" src="http://community.scmgalaxy.com/serve-file/e0/l1481295943/di/c1/CicThVWnchIt3y0c31m3w_Yx3sB-S1L4UHMNe901cXs/1/84/file/largethumb1271743753agile2.jpg" alt="Agile Software Development" width="450" height="450" /></p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone" src="http://community.scmgalaxy.com/serve-file/e0/l1481295943/di/c1/EgjXUqdytn3oKawEkTQOYIJeuyp4h2ZF2F8zU6HWq6c/1/84/file/largethumb1271743711agile.jpg" alt="Agile Software Development" width="500" height="324" /></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/agile-software-development/">Agile Software Development</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/agile-software-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why DevOps skill is very important to have?</title>
		<link>https://www.scmgalaxy.com/tutorials/why-devops-skill-is-very-important-to-have/</link>
					<comments>https://www.scmgalaxy.com/tutorials/why-devops-skill-is-very-important-to-have/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 13 Mar 2017 00:19:37 +0000</pubDate>
				<category><![CDATA[DevOps Practice and Process]]></category>
		<category><![CDATA[Devops]]></category>
		<category><![CDATA[DevOps Advantages]]></category>
		<category><![CDATA[DevOps culture]]></category>
		<category><![CDATA[DevOps Importance]]></category>
		<category><![CDATA[DevOps SKill]]></category>
		<category><![CDATA[Importance]]></category>
		<category><![CDATA[Skill]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Why DevOps]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2017/03/13/why-devops-skill-is-very-important-to-have/</guid>

					<description><![CDATA[<p>In the event that association has worked with a spry web advancement philosophy, then they are accustomed to seeing the [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/why-devops-skill-is-very-important-to-have/">Why DevOps skill is very important to have?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div></div>
<div><img loading="lazy" decoding="async" class="aligncenter wp-image-3016 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/why-devops-skill-is-very-im.png" alt="why-devops-skill-is-very-important-to-have" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/why-devops-skill-is-very-im.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/why-devops-skill-is-very-im-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div></div>
<div>In the event that association has worked with a spry web advancement philosophy, then they are accustomed to seeing the advantages of composed cooperation, speedier turnarounds, and checkpoints and changes through the web programming improvement life-cycle. Along these lines of working can help your group make the move to DevOps, which dwells at the convergence of advancement and operations and exists to enhance the product conveyance chain, as well as the association&#8217;s general execution. A fundamental guideline of <strong>DevOps is to empower the advancement and operations groups</strong> to cooperate to see each other&#8217;s procedures and remarkable difficulties so they can discharge code speedier and be better arranged to react to changing business necessities. Much like deft, DevOps adopts a comprehensive strategy to programming improvement and prevails by changing the attitude of the staff and the way things are generally done. DevOps depends intensely on the human variable, so moving the corporate culture won&#8217;t occur without any forethought. Change needs to originate from the top, yet beginning from a positive place of &#8220;yes&#8221; will put you progressing nicely.</div>
<div></div>
<div><strong>The effect that DevOps has on an association is quantifiable and receiving DevOps precepts</strong>, for example, <em>code proprietorship, nonstop change, and robotization has gotten to be de rigueur for some corporate mammoths. Organizations including Facebook, Target, and Adobe have all gotten to be adherents as has Amazon which embraced a &#8220;You construct it, you possess it&#8221; culture where designers of an administration are in charge of its operations all through the lifecycle</em>. Insights illustrate the DevOps development as found in Manikin&#8217;s Condition of DevOps reports. These yearly reports point see how organizations that actualize DevOps hones (i.e., high-performing associations) charge with issues, for example, sending, representative dedication, revise, and security. The noteworthy outcomes for 2016 are beneath.</div>
<div></div>
<div>           1. High-performing associations are definitively beating their lower-performing peers as far as throughput. Superior workers convey 200 circumstances more as often as possible than low entertainers, with 2,555                              circumstances speedier lead times. They likewise keep on significantly beat low entertainers, with 24 times quicker recuperation times and three circumstances bring down change disappointment rates.</div>
<div></div>
<div>           2. Superior workers have better representative faithfulness, as measured by representative Net Promoter Score (eNPS). Representatives in high-performing associations were 2.2 circumstances more inclined to prescribe                    their association to a companion as an extraordinary work environment, and 1.8 circumstances more inclined to prescribe their group to a companion as an awesome workplace. Different reviews have demonstrated                    this is corresponded with better business results.</div>
<div></div>
<div>           3. High-performing associations invest 22 percent less energy in spontaneous work and improve. Thus, they can invest 29 percent more energy in new work, for example, new components or code. They can do this since                they incorporate quality with every phase of the advancement procedure using nonstop conveyance hones, rather than retrofitting quality toward the end of an improvement cycle.</div>
<div></div>
<div>           4. Superior workers invest 50 percent less energy remediating security issues than low entertainers. By better incorporating data security targets into day by day work, groups accomplish larger amounts of IT execution                    and fabricate more secure frameworks.</div>
<div></div>
<div><strong>Beginning a DevOps culture starts</strong> by building up a long haul arrange for that frameworks how you might want your web group to work in 12-year and a half. This is an ideal opportunity to investigate your arrangement, survey your procedures, and distinguish where you are seeing danger. Ask yourself and your group, &#8220;What is creating the procedure to be wasteful?&#8221; and &#8220;What are the run of the mill issues that ceaselessly emerge?&#8221; Give your group a voice and approach them for recommendations in the matter of how they think the procedure can be sensibly moved forward. What do they think about putting operations individuals on improvement ventures? Is there anybody on the group who would learn new aptitudes and work as the DevOps architect to conquer any hindrance amongst operations and improvement? Shouldn&#8217;t something be said about welcoming the operations group to commence gatherings? Gathering this data may require a couple shut entryway sessions with your staff, however in any event you will motivate them to discuss the procedure and consider arrangements. Once your arrangement has been actualized, impart it to different divisions. <strong>The excellence of a DevOps culture is that its foundations in venture possession and cross-practical groups can be actualized all through your association for expanded productivity and better results</strong></div>
<div></div>
<div></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/why-devops-skill-is-very-important-to-have/">Why DevOps skill is very important to have?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/why-devops-skill-is-very-important-to-have/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How DevOps is enhancing the capability of software development?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-devops-is-enhancing-the-capability-of-software-development/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-devops-is-enhancing-the-capability-of-software-development/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 12 Mar 2017 23:21:37 +0000</pubDate>
				<category><![CDATA[DevOps Practice and Process]]></category>
		<category><![CDATA[Devops]]></category>
		<category><![CDATA[enhance]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[Improve]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2017/03/12/how-devops-is-enhancing-the-capability-of-software-development/</guid>

					<description><![CDATA[<p>We all know that DevOps is an established relationship stage between development phase and IT Operations. It is vital that [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-devops-is-enhancing-the-capability-of-software-development/">How DevOps is enhancing the capability of software development?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div></div>
<div><img loading="lazy" decoding="async" class="aligncenter wp-image-3012 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/how-devops-is-enhancing-the.png" alt="devops-is-enhancing-the-capability-of-software-development" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/how-devops-is-enhancing-the.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/how-devops-is-enhancing-the-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div></div>
<div>We all know that DevOps is an established relationship stage between development phase and IT Operations. It is vital that collaboration and communication between the two units are promoted from the<strong> viewpoint of productivity and management.</strong></div>
<div></div>
<div><strong>DevOps from an IT point of view</strong></div>
<div></div>
<div>DevOps is basically a culture of management that improves the delivery agility of IT service on the basis of collaboration, communication and integration. It is a platform that recognise the relationships between multiple themes, ideas and tools of IT operations and software development by using continuous improvement. In a wider sense,<strong> DevOps represents a cultural change towards acknowledging the Agile software development norms</strong>, making way for continuous cycles of development, considering the responsibilities, goals and cross functions of IT operations.</div>
<div></div>
<div><strong>Integration of DevOps in the software development process offers the following benefits:</strong></div>
<div></div>
<div><strong>Improved resource management</strong>: During the software development and integration stage, testers and developers wait for resources to arrive resulting in delays in the delivery. Agile with DevOps makes sure that the mobile app development lands in testing phase way quicker than the existing operations.</div>
<div></div>
<div><strong>Faster mitigation of the software defects</strong>: With enhanced collaboration and communication between software development and operations, you can easily recognize and mitigate defects at any stage of the software development cycle. A similar culture can be applied to app development where defects result in bigger losses.</div>
<div></div>
<div><strong>Improved version control</strong>: By highlighting the interactions and individuals, DevOps permits the developers to influence the programmable dynamic infrastructure at various stages of the lifecycle of application development. It permits automated coding options and version control.</div>
<div></div>
<div><strong>Diminished human errors</strong>: DevOps diminishes the odds of human errors during the process of development and operations by doing frequent iterations. The failure rate of application is lowered with numerous deployments in the process in a definite timeline.</div>
<div></div>
<div><strong>Steady environment for operating</strong>: The solution to any business platform is stability and DevOps is established to bring in reliability and stability. Enterprises with DevOps get their deployment 30X faster than their competitors with approx. 50% lesser failure chances.</div>
<div></div>
<div>By utilizing DevOps, you can move from the ideation phase to final software version without any delay in spite of possessing numerous incremental improvements concerned with sales, stability and performance in the long run. Are you looking for DevOps consulting services? We’re here to assist you with the best of solutions.</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-devops-is-enhancing-the-capability-of-software-development/">How DevOps is enhancing the capability of software development?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-devops-is-enhancing-the-capability-of-software-development/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How DevOps course is enhancing the capability of software development?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-devops-course-is-enhancing-the-capability-of-software-development/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-devops-course-is-enhancing-the-capability-of-software-development/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 25 Jan 2017 14:14:31 +0000</pubDate>
				<category><![CDATA[DevOps Practice and Process]]></category>
		<category><![CDATA[Capability]]></category>
		<category><![CDATA[Course]]></category>
		<category><![CDATA[Devops]]></category>
		<category><![CDATA[DevOps Course]]></category>
		<category><![CDATA[DevOps Courses importance]]></category>
		<category><![CDATA[DevOps Skills]]></category>
		<category><![CDATA[enhance]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[How DevOps course is beneficial]]></category>
		<category><![CDATA[How DevOps Course is helpful]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Why DevOps course is important]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2017/01/25/how-devops-course-is-enhancing-the-capability-of-software-development/</guid>

					<description><![CDATA[<p>How DevOps course is enhancing the capability of software development? Software Industry in these days adopting a new practice called [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-devops-course-is-enhancing-the-capability-of-software-development/">How DevOps course is enhancing the capability of software development?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="aligncenter wp-image-3022 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/01/devops-course-is-enhancing-.png" alt="devops-course-is-enhancing-the-capability-of-software-development" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/01/devops-course-is-enhancing-.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/01/devops-course-is-enhancing--300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div>How DevOps course is enhancing the capability of software development?</div>
<div></div>
<div>Software Industry in these days adopting a new practice called &#8220;DevOps&#8221;. This word change the process of software development in a very short time. That is why the demand of DevOps engineers and professionals are high in these days but to become a good DevOps engineer you need good courses and trainers which is a real challenge to find. This challenge has been solved by devopsschool.com</div>
<div></div>
<div>But before getting in lets first understand what is DevOps? DevOps is actually a process which integrates developers and IT operation units to improve collaboration and productivity by automation, measurements and sharing. The implementation of DevOps is not only beneficial for developers and operations, but it also has a positive effect on the web service development and quality assurance performance. The main purpose of DevOps is to give fast deployment of features into production and to find and correct the issue when they appear, without disrupting other services. If we look deeply how DevOps skills enhance the software lifecycle than we can find that:-</div>
<div></div>
<div></div>
<div>1. If we hire people with both development and operations skills which we can find in a DevOps guy, it will create a culture that nurtures collaboration.</div>
<div></div>
<div>2. DevOps skills looks beyond the line of departments and units, which brings positive change in the whole environment.</div>
<div></div>
<div>3. DevOps skills give you an overview of the development pipeline, which is helpful for business, developers and operations.</div>
<div></div>
<div>4. By implementing continuous delivery, DevOps helps to release product on demand.</div>
<div></div>
<div>5. DevOps skills give you automation by the uses of tools.</div>
<div></div>
<div>6. By having communication between the Developers and operations teams it will improve understanding.</div>
<div></div>
<div>7. By use of cloud services in development cycle it will simplify the infrastructure of the network.</div>
<div></div>
<div>8. By making administrations as adaptation control available for both Dev and Ops.</div>
<div></div>
<div>9. By recommending changes to your plan of action as required.</div>
<div></div>
<div>10. By including QA amid the move procedure.</div>
<div></div>
<div>11. By making QA a partner when considering reporting.</div>
<div></div>
<div>12. By utilizing Real time User Monitoring to distinguish issues early.</div>
<div></div>
<div>13. By setting up a unified framework amid the move to DevOps.</div>
<div></div>
<div>14. By considering contributions from both Dev and Ops groups similarly.</div>
<div></div>
<div>15. By recommending utilization of models, for example, CMMI and ITIL.</div>
<div></div>
<div>16. By executing built up big business procedures, for example, Disciplined Agile Delivery.</div>
<div></div>
<div>If you are a software student or work in IT or in a software industry, whether as a programmer, developer, systems analyst, engineer, database admin or security expert, at some point you will need to know about DevOps and It&#8217;s implementation. It&#8217;s a mindset which is very necessary for todays software industry. So it&#8217;s very important to enhance the DevOps skills by taking good DevOps courses and a good place to start would be <a title="DevOps Courses" href="courses/">scmGalaxy.com.</a></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-devops-course-is-enhancing-the-capability-of-software-development/">How DevOps course is enhancing the capability of software development?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-devops-course-is-enhancing-the-capability-of-software-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Use SVN Tasks with ANT ?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-use-svn-tasks-with-ant/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-use-svn-tasks-with-ant/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 06 Oct 2009 10:48:12 +0000</pubDate>
				<category><![CDATA[Apache Ant]]></category>
		<category><![CDATA[SVN(Subversion)]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[ANT source-control related tasks]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Source control]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[SVN Ant]]></category>
		<category><![CDATA[SVN Ant task]]></category>
		<category><![CDATA[SVN integration with ANT]]></category>
		<category><![CDATA[SVN Tasks]]></category>
		<category><![CDATA[SVN Tasks with ANT]]></category>
		<category><![CDATA[SVN Tasks with ANT Guide]]></category>
		<category><![CDATA[SVN Tasks with ANT Reference]]></category>
		<category><![CDATA[SVN Tasks with ANT Tutorial]]></category>
		<category><![CDATA[Tasks]]></category>
		<category><![CDATA[Use]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/10/06/how-to-use-svn-tasks-with-ant/</guid>

					<description><![CDATA[<p>This post is about using ANT to perform some of the most common source-control related tasks such as export, tagging, [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-use-svn-tasks-with-ant/">How to Use SVN Tasks with ANT ?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4080 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/svn-tasks-ant.png" alt="svn-tasks-with-ant" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/svn-tasks-ant.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/svn-tasks-ant-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>This post is about using ANT to perform some of the most common source-control related tasks such as export, tagging, and branching. I am using ANT version 1.7.0 and SVN Ant version 1.1-rc3, bound against Subversion 1.4.0.</p>
<p>The related software can be downloaded here:<br />
1.    SVN Ant = <a href="http://subclipse.tigris.org/svnant.html" target="_blank" rel="noopener">http://subclipse.tigris.org/svnant.html</a><br />
2.    ANT = <a href="http://ant.apache.org/" target="_blank" rel="noopener">http://ant.apache.org/</a><br />
I shall start with build.properties, which lists a few key/value pairs used in our SVN Ant task build file, referred as svn-tasks.xml:</p>
<p><b>Content of build.properties:</b><br />
####START of SVN Properties ####<br />
svn.repository.url=http://xyz.com/repos/somereponame<br />
svn.project.base.path=someprojectname<br />
svn.username=user name to access repo<br />
svn.password=password to access repo<br />
#This shall be name of the tag,<br />
#This property should always be updated before build starts<br />
#This property shall be used to export<br />
tag.name=SOME_TAG_NAME_12222008<br />
#This shall be name of new branch,<br />
#this property should be used only when new branch is to be created<br />
new.branch.name=NEW_BRANCH_12222008<br />
####END of SVN Properties ####<br />
Content of svn-tasks.xml:<br />
&lt;property file=&#8221;build.properties&#8221;&gt;&lt;/property&gt;</p>
<p>&lt;!&#8211; SVN and SVN-ANT Tasks properties &#8211;&gt;<br />
&lt;property name=&#8221;svn.repository.url&#8221; value=&#8221;${svn.repository.url}&#8221;/&gt;<br />
&lt;property name=&#8221;svn.project.base.path&#8221; value=&#8221;${svn.project.base.path}&#8221; /&gt;<br />
&lt;property name=&#8221;svn.base.url&#8221; value=&#8221;${svn.repository.url}/${svn.project.base.path}&#8221;/&gt;<br />
&lt;property name=&#8221;svnant.lib.dir&#8221; location=&#8221;svn-ant-lib&#8221;/&gt;<br />
&lt;property name=&#8221;svnant.javahl&#8221; value=&#8221;false&#8221; /&gt;<br />
&lt;property name=&#8221;svnant.svnkit&#8221; value=&#8221;true&#8221; /&gt;<br />
&lt;!&#8211; SVN and SVN-ANT Tasks properties &#8211;&gt;</p>
<p>&lt;!&#8211; *************************************************************** &#8211;&gt;<br />
&lt;!&#8211;   Set-Up of SVN-ANT classpath                                   &#8211;&gt;<br />
&lt;!&#8211; *************************************************************** &#8211;&gt;<br />
&lt;path id=&#8221;svnant.classpath&#8221;&gt;<br />
&lt;fileset dir=&#8221;${svnant.lib.dir}&#8221;&gt;<br />
&lt;include name=&#8221;**/*.jar&#8221; /&gt;<br />
&lt;/fileset&gt;<br />
&lt;/path&gt;</p>
<p>&lt;!&#8211; *************************************************************** &#8211;&gt;<br />
&lt;!&#8211;   Loading of SVN task                                           &#8211;&gt;<br />
&lt;!&#8211; *************************************************************** &#8211;&gt;<br />
&lt;typedef resource=&#8221;org/tigris/subversion/svnant/svnantlib.xml&#8221; classpathref=&#8221;svnant.classpath&#8221; /&gt;</p>
<p>&lt;!&#8211; *************************************************************** &#8211;&gt;<br />
&lt;!&#8211; tool-availability: Determine if SVN-ANT is available.           &#8211;&gt;<br />
&lt;!&#8211; *************************************************************** &#8211;&gt;<br />
&lt;target name=&#8221;tool-availability&#8221;&gt;<br />
&lt;available resource=&#8221;org/tigris/subversion/svnant/svnantlib.xml&#8221;<br />
classpathref=&#8221;svnant.classpath&#8221;<br />
property=&#8221;available.svnant&#8221;<br />
/&gt;<br />
&lt;echo message=&#8221;SVN-ANT is available = ${available.svnant}&#8221;/&gt;<br />
&lt;/target&gt;</p>
<p>&lt;!&#8211; **************************************************************** &#8211;&gt;<br />
&lt;!&#8211; does-svnant-exist: depends on tool-availablility and     &#8211;&gt;<br />
&lt;!&#8211;                    displays error message                                   &#8211;&gt;<br />
&lt;!&#8211; ***************************************************************** &#8211;&gt;<br />
&lt;target name=&#8221;does-svnant-exist&#8221; depends=&#8221;tool-availability&#8221;&gt;<br />
&lt;fail unless=&#8221;available.svnant&#8221;&gt;<br />
SVN-ANT is not available, cannot perform tagging or checkout/export svn ant task.<br />
&lt;/fail&gt;<br />
&lt;/target&gt;</p>
<p>&lt;!&#8211; ****************************************************************** &#8211;&gt;<br />
&lt;!&#8211; svntag: performs tagging using properties from                              &#8211;&gt;<br />
&lt;!&#8211;         build.properties and uses SVNANT tasks                              &#8211;&gt;<br />
&lt;!&#8211; ******************************************************************* &#8211;&gt;<br />
&lt;target name=&#8221;svntag&#8221; description=&#8221;tags individual project using svnant task&#8221;&gt;<br />
&lt;property name=&#8221;svn.tag.message&#8221; value=&#8221;Tagging Project ${project.name} with tag name ${tag.name} from trunk &#8220;/&gt;<br />
&lt;property name=&#8221;src.url&#8221;  value=&#8221;${svn.base.url}/${project.name}/trunk/&#8221;/&gt;<br />
&lt;property name=&#8221;dest.url&#8221; value=&#8221;${svn.base.url}/${project.name}/tags/${tag.name}&#8221;/&gt;</p>
<p>&lt;echo message=&#8221;${svn.tag.message}&#8221;/&gt;<br />
&lt;echo message=&#8221;${src.url}&#8221;/&gt;<br />
&lt;echo message=&#8221;${dest.url}&#8221;/&gt;</p>
<p>&lt;svn javahl=&#8221;${svnant.javahl}&#8221; svnkit=&#8221;${svnant.svnkit}&#8221; username=&#8221;${svn.username}&#8221; password=&#8221;${svn.password}&#8221;&gt;<br />
&lt;copy srcUrl=&#8221;${src.url}&#8221; destUrl=&#8221;${dest.url}&#8221; message=&#8221;${svn.tag.message}&#8221;/&gt;<br />
&lt;/svn&gt;<br />
&lt;/target&gt;</p>
<p>&lt;!&#8211; ****************************************************************** &#8211;&gt;<br />
&lt;!&#8211; svnexport: performs export using properties from                            &#8211;&gt;<br />
&lt;!&#8211;            build.properties and uses SVNANT tasks                           &#8211;&gt;<br />
&lt;!&#8211; ****************************************************************** &#8211;&gt;<br />
&lt;target name=&#8221;svnexport&#8221; description=&#8221;exports individual project using svnant task&#8221;&gt;<br />
&lt;property name=&#8221;svn.tag.message&#8221; value=&#8221;Exporting Project ${project.name} with tag name ${tag.name}&#8221;/&gt;<br />
&lt;property name=&#8221;src.url&#8221;  value=&#8221;${svn.base.url}/${project.name}/tags/${tag.name}&#8221;/&gt;<br />
&lt;property name=&#8221;destPath&#8221; value=&#8221;${dest.path}&#8221;/&gt;<br />
&lt;echo message=&#8221;${svn.tag.message}&#8221;/&gt;<br />
&lt;svn javahl=&#8221;${svnant.javahl}&#8221; svnkit=&#8221;${svnant.svnkit}&#8221; username=&#8221;${svn.username}&#8221; password=&#8221;${svn.password}&#8221;&gt;<br />
&lt;export srcUrl=&#8221;${src.url}&#8221; destPath=&#8221;${destPath}/${project.name}&#8221;/&gt;<br />
&lt;/svn&gt;<br />
&lt;/target&gt;</p>
<p>&lt;!&#8211; ****************************************************************** &#8211;&gt;<br />
&lt;!&#8211; svnbranch: creates a new branch using properties from                       &#8211;&gt;<br />
&lt;!&#8211;            build.properties and uses SVNANT tasks                           &#8211;&gt;<br />
&lt;!&#8211; ****************************************************************** &#8211;&gt;<br />
&lt;target name=&#8221;svnbranch&#8221; description=&#8221;creates a new branch for individual project using svnant task&#8221;&gt;</p>
<p>&lt;property name=&#8221;svn.branch.message&#8221; value=&#8221;Creating new branch for<br />
Project ${project.name} with new branch name ${new.branch.name} from<br />
trunk&#8221;/&gt;<br />
&lt;property name=&#8221;src.url&#8221;  value=&#8221;${svn.base.url}/${project.name}/trunk/&#8221;/&gt;<br />
&lt;property name=&#8221;dest.url&#8221; value=&#8221;${svn.base.url}/${project.name}/branches/${new.branch.name}&#8221;/&gt;</p>
<p>&lt;echo message=&#8221;${svn.branch.message}&#8221;/&gt;<br />
&lt;echo message=&#8221;${src.url}&#8221;/&gt;<br />
&lt;echo message=&#8221;${dest.url}&#8221;/&gt;</p>
<p>&lt;svn javahl=&#8221;${svnant.javahl}&#8221; svnkit=&#8221;${svnant.svnkit}&#8221;<br />
username=&#8221;${svn.username}&#8221; password=&#8221;${svn.password}&#8221;&gt;<br />
&lt;copy srcUrl=&#8221;${src.url}&#8221; destUrl=&#8221;${dest.url}&#8221; message=&#8221;${svn.branch.message}&#8221;/&gt;<br />
&lt;/svn&gt;<br />
&lt;/target&gt;</p>
<p><b>Link:</b> <a href="http://java.dzone.com/articles/how-use-svn-tasks-with-ant" target="_blank" rel="noopener">http://java.dzone.com/articles/how-use-svn-tasks-with-ant</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-use-svn-tasks-with-ant/">How to Use SVN Tasks with ANT ?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-use-svn-tasks-with-ant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 02 Feb 2009 09:12:32 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Best practices in SCM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Good]]></category>
		<category><![CDATA[Good Practices]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Ideal]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Recomended]]></category>
		<category><![CDATA[Right]]></category>
		<category><![CDATA[SCM best practices]]></category>
		<category><![CDATA[SCM best practices Guide]]></category>
		<category><![CDATA[SCM best practices Techniques]]></category>
		<category><![CDATA[SCM Best Practices Tips]]></category>
		<category><![CDATA[SCM best practices Tutorial]]></category>
		<category><![CDATA[SCM Good Practices]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Best Practices]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[What]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/02/02/best-practices-in-software-configuration-management/</guid>

					<description><![CDATA[<p>Best Practices in Software Configuration Management Abstract When deploying new SCM (software configuration management) tools, implementers sometimes focus on perfecting [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/">Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3973 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices.png" alt="scm-best-practices" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong>Best Practices in Software Configuration Management</strong></p>
<p><strong>Abstract</strong><br />
When deploying new SCM (software configuration management) tools,<br />
implementers sometimes focus on perfecting fine-grained activities, while<br />
unwittingly carrying forward poor, large-scale practices from their previous jobs or<br />
previous tools. The result is a well-executed blunder. This paper promotes some<br />
high-level best practices that reflect the authors’ experiences in deploying SCM.</p>
<p><strong>1. Introduction</strong><br />
“A tool is only as good as you use it,” the saying goes<em>. </em>As providers of software configuration management (SCM) tools and consultants to software companies, we<br />
are often asked for sound advice on SCM best practices – that is, how to deploy SCM software to the maximum advantage. In answering these requests we have a bounty of direct and indirect SCM experience from which to draw. The direct experience comes from having been developers and codeline managers ourselves; the indirect experience comes from customer reports of successes and failures with our product (Perforce) and other SCM tools.<br />
The table below lists six general areas of SCM deployment, and some coarse-grained best practices within each of those areas. The following chapters explain each item.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="319"><strong>Workspaces, </strong>where<br />
developers build, test, and<br />
debug.</td>
<td valign="top" width="319">· Don’t share workspaces.<br />
· Don’t work outside of managed workspaces.<br />
· Don’t use jello views.<br />
· Stay in sync with the codeline.<br />
· Check in often.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Codelines, </strong>the canonical sets<br />
of source files.</td>
<td valign="top" width="319">· Give each codeline a policy.<br />
· Give each codeline an owner.<br />
· Have a mainline.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Branches, </strong>variants of the<br />
codeline.</td>
<td valign="top" width="319">· Branch only when necessary.<br />
· Don’t copy when you mean to branch.<br />
· Branch on incompatible policy.<br />
· Branch late.<br />
· Branch, instead of freeze.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Change propagation, </strong>getting<br />
changes from one codeline to<br />
another.</td>
<td valign="top" width="319">· Make original changes in the branch that has<br />
evolved the least since branching.<br />
· Propagate early and often.<br />
· Get the right person to do the merge.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Builds, </strong>turning source files<br />
into products.</td>
<td valign="top" width="319">· Source + tools = product.<br />
· Check in all original source.<br />
· Segregate built objects from original source.<br />
· Use common build tools.<br />
· Build often.<br />
· Keep build logs and build output.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Process, </strong>the rules for all of<br />
the above.</td>
<td valign="top" width="319">· Track change packages.<br />
· Track change package propagations.<br />
· Distinguish change requests from change<br />
packages.<br />
· Give everything and owner.<br />
· Use living documents.</td>
</tr>
</tbody>
</table>
<p><strong>2. The Workspace</strong><br />
The workspace is where engineers edit source files, build the software components they’re working on, and test and debug what they’ve built. Most SCM systems have some notion of a workspace; sometimes they are called “sandboxes”, as in Source Integrity, or “views”, as in ClearCase and Perforce. Changes to managed SCM repository files begin as changes to files in a workspace. The best practices for workspaces include:· <em>Don’t share workspaces. </em>A workspace should have a single purpose, such as an edit/build/test area for a single developer, or a build/test/release area for a product release. Sharing workspaces confuses people, just as sharing a desk does. Furthermore, sharing workspaces compromises the SCM system’s ability to track activity by user or task. Workspaces and the disk space they occupy are cheap; don’t waste time trying to conserve them.· <em>Don’t work outside of managed workspaces. </em>Your SCM system can only track work in progress when it takes place within managed workspaces. Users working outside of workspaces are beached; there’s a river of information flowing past and they’re not part of it. For instance, SCM systems generally use workspaces to facilitate some of the communication among developers working on related tasks. You can see what is happening in others’ workspaces, and they can see what’s going on in yours. If you need to take an emergency vacation, your properly managed workspace may be all you can leave behind. Use proper workspaces.<br />
· <em>Don’t use jello views. </em>A file in your workspace should not change unless <em>you</em><em>explicitly </em>cause the change. A “jello view” is a workspace where file changes are<br />
caused by external events beyond your control. A typical example of a jello view is a workspace built upon a tree of symbolic links to files in another workspace –<br />
when the underlying files are updated, your workspace files change. Jello views are a source of chaos in software development. Debug symbols in executables<br />
don’t match the source files, mysterious recompilations occur in supposedly trivial rebuilds, and debugging cycles never converge – these are just some of the<br />
problems. Keep your workspaces firm and stable by setting them up so that users have control over when their files change.· <em>Stay in sync with the codeline. </em>As a developer, the quality of your work depends on how well it meshes with other peoples’ work. In other words, as changes are checked into the codeline, you should update your workspace and integrate those changes with yours. As an SCM engineer, it behooves you to make sure this workspace update operation is straightforward and unencumbered with tricky or time-consuming procedures. If developers find it fairly painless to update their workspaces, they’ll do it more frequently and integration problems won’t pile up at project deadlines.<br />
· <em>Check in often. </em>Integrating your development work with other peoples’ work also requires you to check in your changes as soon as they are ready. Once you’ve<br />
finished a development task, check in your changed files so that your work is available to others. Again, as the SCM engineer, you should set up procedures that encourage frequent check-ins. Don’t implement unduly arduous validation procedures, and don’t freeze codelines (see Branching, below). Short freezes are bearable, but long freezes compromise productivity. Much productivity can be wasted waiting for the right day (or week, or month) to submit changes.</p>
<p><strong>3. The Codeline</strong><br />
In this context, the codeline is the canonical set of source files required to produce your software. Typically codelines are branched, and the branches evolve into variant<br />
codelines embodying different releases. The best practices with regard to codelines are:<br />
· <em>Give each codeline a policy. </em>A codeline policy specifies the fair use and permissible check-ins for the codeline, and is the essential user’s manual for<br />
codeline SCM. For example, the policy of a development codeline should state that it isn’t for release; likewise, the policy of a release codeline should limit<br />
changes to approved bug fixes.1 The policy can also describe how to document changes being checked in, what review is needed, what testing is required, and<br />
the expectations of codeline stability after check-ins. A policy is a critical component for a documented, enforceable software development process, and a<br />
codeline without a policy, from an SCM point of view, is out of control.· <em>Give each codeline an owner. </em>Having defined a policy for a codeline, you’ll soon<br />
encounter special cases where the policy is inapplicable or ambiguous. Developers facing these ambiguities will turn to the person in charge of the<br />
codeline for workarounds. When no one is in charge, developers tend to enact their own workarounds without documenting them. Or they simply procrastinate<br />
because they don’t have enough information about the codeline to come up with a reasonable workaround. You can avoid this morass by appointing someone to<br />
own the codeline, and to shepherd it through its useful life. With this broader objective, the codeline owner can smooth the ride over rough spots in software<br />
development by advising developers on policy exceptions and documenting them.</p>
<p>· <em>Have a mainline. </em>A “mainline,” or “trunk,” is the branch of a codeline that evolves forever. A mainline provides an ultimate destination for almost all<br />
changes – both maintenance fixes and new features – and represents the primary, linear evolution of a software product. Release codelines and development<br />
codelines are branched from the mainline, and work that occurs in branches is propagated back to the mainline.</p>
<p>IMAGE  &#8211; 1</p>
<p>Figure 1 shows a mainline (called “main”), from which several release lines (“ver1”, “ver2” and “ver3”) and feature development lines (“projA”, “projb”, and<br />
“projC”) have been branched. Developers work in the mainline or in a feature development line. The release lines are reserved for testing and critical fixes, and<br />
are insulated from the hubbub of development. Eventually all changes submitted to the release lines and the feature development lines get merged into the<br />
mainline. The adverse approach is to “promote” codelines; for example, to promote a development codeline to a release codeline, and branch off a new development<br />
codeline. For example, Figure 2 shows a development codeline promoted to a release codeline (“ver1”) and branched into another development codeline<br />
(“projA”). Each release codeline starts out as a development codeline, and development moves from codeline to codeline.</p>
<p>IMAGE &#8211; 2</p>
<p>The promotion scheme suffers from two crippling drawbacks: (1) it requires the policy of a codeline to change, which is never easy to communicate to everyone;<br />
(2) it requires developers to relocate their work from one codeline to another, which is error-prone and time-consuming. <em>90% of SCM “process” is enforcing</em><br />
<em>codeline promotion to compensate for the lack of a mainline.</em> Process is streamlined and simplified when you use a mainline model<em>. </em>With a<br />
mainline, contributors’ workspaces and environments are stable for the duration of their tasks at hand, and no additional administrative overhead is incurred as<br />
software products move forward to maturity.</p>
<p><strong>4. Branching</strong><br />
Branching, the creation of variant codelines from other codelines, is the most problematic area of SCM. Different SCM tools support branching in markedly<br />
different ways, and different policies require that branching be used in still more different ways. We found the following guidelines helpful when branching (and<br />
sometimes when avoiding branching):·</p>
<p><em>Branch only when necessary. </em>Every branch is more work – more builds, more changes to be propagated among codelines, more source file merges. If you keep this in mind every time you consider making a branch you may avoid sprouting unnecessary branches.<br />
· <em>Don’t copy when you mean to branch. </em>An alternative to using your SCM tool’s branching mechanism is to copy a set of source files from one codeline and<br />
check them in to another as new files. Don’t think that you can avoid the costs of branching by simply copying. Copying incurs all the headaches of branching –<br />
additional entities and increased complexity – but without the benefit of your SCM system’s branching support. Don’t be fooled: even “read-only” copies<br />
shipped off to another development group “for reference only” often return with changes made. Use your SCM system to make branches when you spin off parts<br />
or all of a codeline.<br />
· <em>Branch on incompatible policy. </em>There is one simple rule to determine if a codeline should be branched: it should be branched when its users need different<br />
check-in policies. For example, a product release group may need a check-in policy that enforces rigorous testing, whereas a development team may need a<br />
policy that allows frequent check-ins of partially tested changes. This policy divergence calls for a codeline branch. When one development group doesn’t<br />
wish to see another development group’s changes, that is also a form of incompatible policy: each group should have its own branch.<br />
· <em>Branch late. </em>To minimize the number of changes that need to be propagated from one branch to another, put off creating a branch as long as possible. For<br />
example, if the mainline branch contains all the new features ready for a release, do as much testing and bug fixing in it as you can before creating a release<br />
branch. Every bug fixed in the mainline before the release branch is created is one less change needing propagation between branches.<br />
· <em>Branch instead of freeze. </em>On the other hand, if testing requires freezing a codeline, developers who have pending changes will have to sit on their changes<br />
until the testing is complete. If this is the case, branch the codeline early enough so that developers can check in and get on with their work.</p>
<p><strong>5. Change Propagation</strong><br />
Once you have branched codelines, you face the chore of propagating file changes across branches. This is rarely a trivial task, but there are some things you can do to<br />
keep it manageable.<br />
· <em>Make original changes in the branch that has evolved the least since branching.</em> It is much easier to merge a change from a file that is close to the common<br />
ancestor than it is to merge a change from a file that has diverged considerably. This is because the change in the file that has diverged may be built upon<br />
changes that are not being propagated, and those unwanted changes can confound the merge process. You can minimize the merge complexity by making<br />
original changes in the branch that is the most stable. For example, if a release codeline is branched from a mainline, make a bug fix first in the release line and<br />
then merge it into the mainline. If you make the bug fix in the mainline first, subsequently merging it into a release codeline may require you to <em>back out</em><br />
other, incompatible changes that aren’t meant to go into the release codeline.<br />
· <em>Propagate early and often. </em>When it’s feasible to propagate a change from one branch to another (that is, if the change wouldn’t violate the target branch’s<br />
policy), do it sooner rather than later. Postponed and batched change propagations can result in stunningly complex file merges.<br />
· <em>Get the right person to do the merge. </em>The burden of change propagation can be lightened by assigning the responsibility to the engineer best prepared to resolve<br />
file conflicts. Changes can be propagated by (a) the owner of the target files, (b) the person who make the original changes, or (c) someone else. Either (a) or (b)<br />
will do a better job than (c).</p>
<p><strong>6. Builds</strong><br />
A build is the business of constructing usable software from original source files. Builds are more manageable and less prone to problems when a few key practices are<br />
observed:<br />
· <em>Source + tools = product. </em>The only ingredients in a build should be source files and the tools to which they are input. Memorized procedures and yellow stickies<br />
have no place in this equation. Given the same source files and build tools, the resulting product should always be the same. If you have rote setup procedures,<br />
automate them in scripts. If you have manual setup steps, document them in build instructions. And document all tool specifications, including OS, compilers, include files, link libraries, make programs, and executable paths.<br />
· <em>Check in </em>all <em>original source. </em>When software can’t be reliably reproduced from the same ingredients, chances are the ingredient list is incomplete. Frequently<br />
overlooked ingredients are makefiles, setup scripts, build scripts, build instructions, and tool specifications. All of these are the source you build with.<br />
Remember: <em>source + tools = product.</em><br />
· <em>Segregate built objects from original source. </em>Organize your builds so that the directories containing original source files are not polluted by built objects<em>.</em><br />
Original source files are those you create “from an original thought process” with a text editor, an application generator, or any other interactive tool. Built objects<br />
are all the files that get created during your build process, including generated source files. Built objects should not go into your source code directories.<br />
Instead, build them into a directory tree of their own. This segregation allows you to limit the scope of SCM-managed directories to those that contain only<br />
source. It also corrals the files that tend to be large and/or expendable into one location, and simplifies disk space management for builds.<br />
· <em>Use common build tools. </em>Developers, test engineers, and release engineers should all use the same build tools. Much time is wasted when a developer<br />
cannot reproduce a problem found in testing, or when the released product varies from what was tested. Remember: <em>source + tools = product.</em><br />
· <em>Build often. </em>Frequent, end-to-end builds with regression testing (“sanity” builds) have two benefits: (1) they reveal integration problems introduced by check-ins,<br />
and (2) they produce link libraries and other built objects that can be used by developers. In an ideal world, sanity builds would occur after every check-in, but<br />
in an active codeline it’s more practical to do them at intervals, typically nightly. Every codeline branch should be subject to regular, frequent, and complete builds<br />
and regression testing, even when product release is in the distant future.<br />
· <em>Keep build logs and build outputs. </em>For any built object you produce, you should be able to look up the exact operations (e.g., complete compiler flag and link<br />
command text) that produced the last known good version of it. Archive build outputs and logs, including source file versions (e.g., a label), tool and OS<br />
version info, compiler outputs, intermediate files, built objects, and test results, for future reference. As large software projects evolve, components are handed<br />
off from one group to another, and the receiving group may not be in a position to begin builds of new components immediately. When they do begin to build<br />
new components, they will need access to previous build logs in order to diagnose the integration problems they encounter.</p>
<p><strong>7. Process</strong><br />
It would take an entire paper, or several papers, to explore the full scope of SCM process design and implementation, and many such papers have already been written. Furthermore, your shop has specific objectives and requirements that will be reflected in the process you implement, and we do not presume to know what those are. In our experience, however, some process concepts are key to any SCM implementation:<br />
· <em>Track change packages. </em>Even though each file in a codeline has its revision history, each revision in its history is only useful in the context of a set of related<br />
files. The question “What other source files were changed along with this particular change to foo.c?” can’t be answered unless you track change<br />
<em>packages</em>, or sets of files related by a logical change. Change packages, not individual file changes, are the visible manifestation of software development.<br />
Some SCM systems track change packages for you; if yours doesn’t, write an interface that does.<br />
· <em>Track change package propagations. </em>One clear benefit of tracking change packages is that it becomes very easy propagate logical changes (e.g., bug fixes)<br />
from one codeline branch to another. However, it’s not enough to simply propagate change packages across branches; you must keep track of which<br />
change packages have been propagated, which propagations are pending, and which codeline branches are likely donors or recipients of propagations.<br />
Otherwise you’ll never be able to answer the question “Is the fix for bug X in the release Y codeline?” Again, some SCM systems track change package<br />
propagations for you, whereas with others you’ll have to write your own interface to do it. Ultimately, you should never have to resort to “diffing” files to<br />
figure out if a change package has been propagated between codelines.</p>
<p>· <em>Distinguish change requests from change packages. </em>“What to do” and “what was done” are different data entities. For example, a bug report is a “what to do”<br />
entity and a bug fix is a “what was done” entity. Your SCM process should distinguish between the two, because in fact there can be a one-to-many<br />
relationship between change requests and change packages.<br />
· <em>Give everything an owner. </em>Every process, policy, document, product, component, codeline, branch, and task in your SCM system should have an<br />
owner. Owners give life to these entities by representing them; an entity with an owner can grow and mature. Ownerless entities are like obstacles in an ant trail<br />
– the ants simply march around them as if they weren’t there.<br />
· <em>Use living documents. </em>The policies and procedures you implement should be described in living documents; that is, your process documentation should be as<br />
readily available and as subject to update as your managed source code. Documents that aren’t accessible are useless; documents that aren’t updateable<br />
are nearly so. Process documents should be accessible from all of your development environments: at your own workstation, at someone else’s<br />
workstation, and from your machine at home. And process documents should be easily updateable, and updates should be immediately available.</p>
<p><strong>8. Conclusion</strong><br />
Best practices in SCM, like best practices anywhere, always seem obvious once you’ve used them. The practices discussed in this paper have worked well for us, but<br />
we recognize that no single, short document can contain them all. So we have presented the practices that offer the greatest return and yet seem to be violated more<br />
often than not. We welcome the opportunity to improve this document, and solicit both challenges to the above practices as well as the additions of new ones.</p>
<p><strong>10. References</strong><br />
Berczuk, Steve. &#8220;Configuration Management Patterns&#8221;, 1997. Available at<br />
http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?ConfigurationManagementPatterns.<br />
Compton, Stephen B, <em>Configuration Management for Software</em>, VNR Computer<br />
Library, Van Nostrand Reinhold, 1993.<br />
Continuus Software Corp., “Work Area Management”, <em>Continuus/CM: Change</em><br />
<em>Management for Software Development. </em>Available at<br />
http://www.continuus.com/developers/developersACE.html.<br />
Dart, Susan, &#8220;Spectrum of Functionality in Configuration Management Systems&#8221;,<br />
Software Engineering Institute, 1990. Available at<br />
<a href="http://www.sei.cmu.edu/technology/case/scm/tech_rep/TR11_90/TOC_TR11_90.html">http://www.sei.cmu.edu/technology/case/scm/tech_rep/TR11_90/TOC_TR11_90.html</a></p>
<p>Jameson, Kevin, <em>Multi Platform Code Management</em>, O&#8217;Reilly &amp; Associates, 1994<br />
Linenbach, Terris, &#8220;Programmers&#8217; Canvas: A pattern for source code management&#8221;<br />
1996. Available at http://www.rahul.net/terris/ProgrammersCanvas.htm.<br />
Lyon, David D, <em>Practical CM</em>, Raven Publishing, 1997<br />
McConnell, Steve, &#8220;Best Practices: Daily Build and Smoke Test&#8221;,<br />
<em>IEEE Software</em>, Vol. 13, No. 4, July 1996<br />
van der Hoek, Andre, Hall, Richard S., Heimbigner, Dennis, and Wolf, Alexander L.,<br />
&#8220;Software Release Management&#8221;, <em>Proceedings of the 6th European Software</em><br />
<em>Engineering Conference</em>, Zurich, Switzerland, 1997.</p>
<p><strong>10. Author</strong></p>
<p>Laura Wingerd<br />
Perforce Software, Inc.<br />
wingerd@perforce.com<br />
Christopher Seiwald<br />
Perforce Software, Inc.<br />
seiwald@perforce.com</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/">Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>What Is Software Configuration Management, its importance &#038; how to implement it?</title>
		<link>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:35:07 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[How to Implement scm]]></category>
		<category><![CDATA[Importance of SCM]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Guide]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Introduction]]></category>
		<category><![CDATA[Software Configuration Management Process]]></category>
		<category><![CDATA[Software Configuration Management Tutorial]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[What is SCM]]></category>
		<category><![CDATA[What Is Software Configuration Management]]></category>
		<category><![CDATA[Why Is SCM Important]]></category>
		<category><![CDATA[Why SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/what-is-software-configuration-management/</guid>

					<description><![CDATA[<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software engineers usually find coding to be the most satisfying aspect of their job. This is easy to understand because programming is a challenging, creative activity requiring extensive technical skills. It can mean getting to "play" with state-of-the-art tools, and it provides almost instant gratification in the form of immediate feedback. Programming is the development task that most readily comes to mind when the profession of software engineering is mentioned.<br />That said, seasoned engineers and project managers realize that programmers are part of a larger team. All of the integral tasks, such as quality assurance and verification and validation, are behind-the-scenes activities necessary to turn standalone software into a useful and usable commodity. Software configuration management (SCM) falls into this category—it can't achieve star status, like the latest "killer app," but it is essential to project success. The smart software project manager highly values the individuals and tools that provide this service.<br />This chapter will answer the following questions about software configuration management.</span></span></p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/">What Is Software Configuration Management, its importance &#038; how to implement it?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3958 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat.png" alt="software-configuration-management" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software engineers usually find coding to be the most satisfying aspect of their job. This is easy to understand because programming is a challenging, creative activity requiring extensive technical skills. It can mean getting to &#8220;play&#8221; with state-of-the-art tools, and it provides almost instant gratification in the form of immediate feedback. Programming is the development task that most readily comes to mind when the profession of software engineering is mentioned.<br />
That said, seasoned engineers and project managers realize that programmers are part of a larger team. All of the integral tasks, such as quality assurance and verification and validation, are behind-the-scenes activities necessary to turn standalone software into a useful and usable commodity. Software configuration management (SCM) falls into this category—it can&#8217;t achieve star status, like the latest &#8220;killer app,&#8221; but it is essential to project success. The smart software project manager highly values the individuals and tools that provide this service.<br />
This chapter will answer the following questions about software configuration management.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> <b>What Is Software Configuration Management?</b><br />
Software configuration management (SCM) is the organization of the components of a software system so that they fit together in a working order, never out of synch with each other. Those who have studied the best way to manage the configuration of software parts have more elegant responses.<br />
Roger Pressman says that SCM is a &#8220;set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made.&#8221;&gt;<br />
We think that Pressman&#8217;s description is a better description because we often view SCM as meaning software <i>change</i> management.<br />
Wayne Babich describes SCM as &#8220;the art of identifying, organizing, and controlling modifications to the software being built by a programming team. It maximizes productivity by minimizing mistakes.&#8221;&gt;<br />
The Software Engineering Institute says that it is necessary to establish and maintain the integrity of the products of the software project throughout the software life cycle. Activities necessary to accomplish this include identifying configuration items/units, systematically controlling changes, and maintaining the integrity and the traceability of the configuration throughout the software life cycle.<br />
Military standards view <i>configuration</i> as the functional and/or physical characteristics of hardware/software as set forth in technical documentation and archives in a product. In identifying the items that need to be configured, we must remember that all project artifacts are candidates—documents, graphical models, prototypes, code, and any internal or external deliverable that can undergo change. In SW PM terminology, a configuration item might be a proposal/estimate or bid, project plan, risk management plan, quality assurance plan, CM plan itself, test plan, system requirements specification, system design document, review metric, code, test result, tool (editors, compilers, CASE), and so on. There are basic objects and aggregate objects to be configured. The number of relationships among them reflects the complexity of the configuration task.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Why Is SCM Important?</b><br />
Software project managers pay attention to the planning and execution of configuration management, an integral task, because it facilitates the ability to communicate status of documents and code as well as changes that have been made to them. High-quality released software has been tested and used, making it a reusable asset and saving development costs. Reused components aren&#8217;t free, though—they require integration into new products, a difficult task without knowing exactly what they are and where they are.<br />
CM enhances the ability to provide maintenance support necessary once the software is deployed. If software didn&#8217;t change, maintenance wouldn&#8217;t exist. Of course, changes do occur. The National Institute of Standards and Technology (NIST) says that software will be changed to adapt, perfect, or correct it. Pressman points out that new business, new customer needs, reorganizations, and budgetary or scheduling constraints may lead to software revision.<br />
CM works for the project and the organization in other ways as well. It helps to eliminate confusion, chaos, double maintenance, the shared data problem, and the simultaneous update problem, to name but a few issues to be discussed in this chapter.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Who Is Involved in SCM?</b><br />
Virtually everyone on a software project is affected by SCM. From the framers of the project plan to the final tester, we rely on it to tell us how to find the object with the latest changes. During development, when iterations are informal and frequent, little needs to be known about a change except what it is, who did it, and where it is. In deployment and baselining, changes must be prioritized, and the impact of a change upon all customers must be considered. A change control board (CCB) is the governing body for modifications after implementation.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>How Can Software Configuration Be Implemented in Your Organization?</b><br />
We used to say, &#8220;Make a plan and stick with it—never waffle,&#8221; and &#8220;Requirements must be frozen—how else will we know what to code?&#8221; Now, we say, &#8220;Plans are living documents—they will be in a continual state of change as project knowledge increases.&#8221; We now know that requirements are never frozen—they merge, morph, and evolve and become expanded, enhanced, and extended. As long as artifacts of software development can undergo change, we will need some method of managing the change.<br />
Because SCM is such a key tool in improving the quality of delivered products, understanding it and how to implement it in your organization and on your projects is a critical success factor. This chapter will review SCM plan templates and provide you with a composite SCM plan template for use in any of your projects. We will cover the issues and basics for a sound software project CM system, including these:</span></span></p>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM principles </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">The four basic requirements for an SCM system </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Planning and organizing for SCM </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM tools </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Benefits of SCM </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Path to SCM implementation </span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> </span></span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/">What Is Software Configuration Management, its importance &#038; how to implement it?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>The symptoms of our software development malaise</title>
		<link>https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/</link>
					<comments>https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:29:44 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Control]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Indications]]></category>
		<category><![CDATA[Lacking]]></category>
		<category><![CDATA[malaise]]></category>
		<category><![CDATA[Missing]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[SCM Auditing Benefits]]></category>
		<category><![CDATA[SCM Identification Benefits]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[SCM Status Accounting Benefits]]></category>
		<category><![CDATA[signs]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[software development malaise]]></category>
		<category><![CDATA[symptoms]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/the-symptoms-of-our-software-development-malaise/</guid>

					<description><![CDATA[<p style="text-align: justify;" mce_style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software development has traditionally suffered from producing end products with a definite lack of inherent quality. The symptoms of this quality lack are listed here:</span></span></p>
<ul style="text-align: justify;" mce_style="text-align: justify;">
<li><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software development projects are often delivered late and over budget.</span></span></li>
<li><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Often the delivered product does not meet customer requirements and is never used.</span></span></li>
<li><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software products simply do not work right.</span></span></li>
</ul>
<p style="text-align: justify;" mce_style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">As we look into the symptoms of our software development malaise, five principal issues related to software development arise.<br /></span></span></p>
<p style="text-align: justify;" mce_style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"><b>Lack of Visibility </b><br />Software is conceptual in nature. Unlike a bridge, a building, or another physical structure, it is not easy to look at software and assess how close it is to completion. Without strong project management, "software is 90% complete 90% of the time." Through the adoption of SCM policy and the definition of the configuration management model of the software under development, all CIs, components, and subcomponents are immediately visible for versions, releases, and product families.</span></span></p>
<p style="text-align: justify;" mce_style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/">The symptoms of our software development malaise</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3967 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/symptoms-of-our-software-de.png" alt="software-development-malaise" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/symptoms-of-our-software-de.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/symptoms-of-our-software-de-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software development has traditionally suffered from producing end products with a definite lack of inherent quality. The symptoms of this quality lack are listed here:</span></span></p>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software development projects are often delivered late and over budget.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Often the delivered product does not meet customer requirements and is never used.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software products simply do not work right.</span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">As we look into the symptoms of our software development malaise, five principal issues related to software development arise.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Lack of Visibility </b><br />
Software is conceptual in nature. Unlike a bridge, a building, or another physical structure, it is not easy to look at software and assess how close it is to completion. Without strong project management, &#8220;software is 90% complete 90% of the time.&#8221; Through the adoption of SCM policy and the definition of the configuration management model of the software under development, all CIs, components, and subcomponents are immediately visible for versions, releases, and product families.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Lack of Control </b><br />
Because software is inherently intangible, it is also more difficult to control. Without an accurate assessment of progress, schedules slip and budgets are overrun. It is hard to assess what has been accomplished and what remains to be done. SCM provides the mechanism for controlling the project through measuring the amount of effort compared to the project management plan and estimating the future effort based on past work.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Lack of Traceability </b><br />
A lack of linkage between project events contributes to project failures. The main benefit of SCM is providing the traceability among versions, releases, and product families. The value of this traceability is enormous when a problem arises in one release or product family that impacts other client releases and products. Making one change and promoting that through the entire product software base is an incredible cost savings in time, money, and client good will. A lack of linkage between project events contributes to project failures where solving one problem either exacerbates a problem in another area or fails to fix the same problem elsewhere. A traceability thread allows management to examine the chain of events that caused a project to encounter difficulty as an integral process within the auditing capability of SCM. A project becomes a year late one day at a time unless the effort reported on the schedule maps to the actual work being done and traced within the software configuration management system.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Lack of Monitoring </b><br />
Without traceability and visibility, monitoring of software development projects becomes extremely difficult. Management cannot make informed decisions, and thus schedules slip further and costs continue to exceed budget.<br />
There is no way to monitor a project when the project manager has no tools to look into the actual product development within the project. SCM provides the tools that open up the process to external monitoring. With SCM in place and a policy of traceability and visibility accepted, monitoring of software development projects becomes a simple part of the overall project management task. Management makes informed decisions avoiding schedule slips and budget excesses through the monitoring available with SCM tools and the integral workings of the CCB.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Uncontrolled Change </b><br />
Software is very malleable; it is idea-stuff, and customers constantly have new ideas for it. People would rarely ask a bridge constructor to make the kinds of changes midproject that software customers tend to request. The impact of such changes can be just as great. All SCM tools, along with the CCB, support a mechanism for appropriate change control.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>SCM Interacts with Verification and Validation</b><br />
SCM is most important, and most often neglected, during V&amp;V activities, which include software testing. It is employed in tracking which module versions are included in a particular system build, as well as which tests have been run. The results of the tests are tied directly to the modules or subcomponents being tested. Many times there are &#8220;action items&#8221; resulting from the tests. SCM tracks the action item status, so overall system status can be assessed well before final builds and releases are done.<br />
Verification and validation testing are supported through the four basic SCM processes: identification, control, auditing, and status accounting. Let&#8217;s look at examples of V&amp;V testing in the context of each of these components. </span></span></p>
<h4 style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM Identification Benefits to V&amp;V</span></span></h4>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Automatic preparation of release notes</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">List of changed software modules</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Definition of development baseline</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Generation of incident reports</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Definition of operational baseline</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Control of the configuration item identification</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Management of CCB meetings</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Prioritization of test and incident issues</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Establishment of turnover dates</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Approval of audit and test reports</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Approval of incident report resolutions</span></span></li>
</ul>
<h4 style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM Auditing Benefits to V&amp;V</span></span></h4>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Comparison of new baseline to previous baseline</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Assurance that standards have been met</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Audit trail of the testing process (verification, validation, and acceptance) of the software system</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Documentation of experience with technical aspects of system engineering or software engineering</span></span></li>
</ul>
<h4 style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM Status Accounting Benefits to V&amp;V</span></span></h4>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Logging and tracking of incident reports</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Publication of CCB minutes</span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">With all of these potential benefits of SCM, project managers must address real-world considerations. Management commitment is the real key to implementing SCM on a specific project in a given organization. By treating the implementation of SCM as a project, the project plan must start at the top to secure commitment to checks and balances. Now is the time to bring out the organization&#8217;s list of project disasters to draw on management experience with their previous software project difficulties. If there are no historic disasters in the organization, or if it is inappropriate to discuss them, refer to literature articles that provide accounts of project disasters (refer to the Web resources at the end of this chapter). Finally, after putting a notional return-on-investment financial argument in place, explain the intangible benefits of SCM.<br />
One of the major sources intangible benefits is auditing. Auditing can be a heavy consumer of configuration management resources, and management may question the benefit of this kind of expenditure. Auditing pays for itself through the avoidance of larger, unnecessary expenses. Savings of 100:1 (large projects) or 4–6:1 (small projects) are obtained by finding and fixing problems early in the life cycle. The auditing process in SCM uncovers the areas where a little more effort or control will result in higher-quality software products and lower overall project costs.<br />
There can be audit compromises to reduce costs. As a project manager, plan audits based on both the phases of the life cycle and the frequency of builds, versions, releases, and product families. Auditing each baseline in a project while reducing the depth of each audit maintains some traceability with loss of visibility.<br />
Eliminating one or more audits (installation baseline, for example) maintains visibility but slightly impacts traceability.</span></span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/">The symptoms of our software development malaise</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What are the minimum features for SCM tools? &#8211; SCM Tools Essential Features</title>
		<link>https://www.scmgalaxy.com/tutorials/the-minimum-features-for-scm-tools/</link>
					<comments>https://www.scmgalaxy.com/tutorials/the-minimum-features-for-scm-tools/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:28:45 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Basic Features]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Minimum features for SCM tool]]></category>
		<category><![CDATA[Must-Have Features in SCM Tools]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM tools]]></category>
		<category><![CDATA[SCM Tools Essential Features]]></category>
		<category><![CDATA[SCM Tools Features]]></category>
		<category><![CDATA[SCM Tools Minimum Features Requirements]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/the-minimum-features-for-scm-tools/</guid>

					<description><![CDATA[<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"><b>SCM Tools</b><br />The minimum features for SCM tools are closely related to the task of handling the different product deliverables produced within the project software engineering process. Tool requirements and selection criteria are based on a series of features that provide a consistent look and feel with state-of-the-art software development environments. An SCM tool must have multiuser support, an intuitive graphical user interface, conformity to the organization's development environment, scalability, flexibility in integrating other software development tools, ease of setup, modifiable models, process management, extensive support for the development phase, and management of nondevelopment objects.<br /></span></span></p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Basic selection criteria includes the following:</span></span></p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-minimum-features-for-scm-tools/">What are the minimum features for SCM tools? &#8211; SCM Tools Essential Features</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3970 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/features-for-scm-tools.png" alt="features-for-scm-tools" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/features-for-scm-tools.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/features-for-scm-tools-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>SCM Tools</b><br />
The minimum features for SCM tools are closely related to the task of handling the different product deliverables produced within the project software engineering process. Tool requirements and selection criteria are based on a series of features that provide a consistent look and feel with state-of-the-art software development environments. An SCM tool must have multiuser support, an intuitive graphical user interface, conformity to the organization&#8217;s development environment, scalability, flexibility in integrating other software development tools, ease of setup, modifiable models, process management, extensive support for the development phase, and management of nondevelopment objects.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Basic selection criteria includes the following:</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
</span></span></p>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Multiuser support</b>—Tools are to be used concurrently by several users. They have to store all acquired information in a central, shared repository, and the SCM tool has to allow controlled parallel work on the different project documents.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Intuitive GUI</b>—Because the tools will be used throughout the project and not only by developers, an intuitive, easy-to-use graphical user interface is considered very important.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Conformity to the organization&#8217;s development environment</b>—The organization must define up front the hardware and software development platforms used. For example, the project may work on a heterogeneous network of Unix-based workstations (mainly Sun Sparc stations) and PCs. The workstations may be used for some part of the development and as a file server and communication server. The PCs may be using MS Windows 2000 NT. PCs and workstations may be interconnected using the NFS protocol (especially Sun PC-NFSpro on the PCs). The tool has to be able to store its shared repositories on a workstation and has to allow PC clients as well as workstation clients supporting the operating systems and protocols.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Scalability</b>—The tool should work equally well for smaller projects as for larger ones.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Flexibility in integrating other software development tools</b>—The tool must allow the integration of all the other development tools to provide a highly homogeneous environment. Especially the tools for design, implementation, and testing will have to co-operate on the common SCM repository.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Ease of setup</b>—The SCM tool should allow an easy installation and setup, and should be able to run nearly &#8220;out of the box.&#8221; It should contain predefined, immediately usable models describing the types of items, the life cycle, and the roles of the different users. The importance of existing projects and their directory structures should be made as easy as possible.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Modifiable models</b>—Though a working set of models should be predefined, each of these should be modifiable and extensible. This is especially important because project managers and developers want to adapt these models to the software development process as defined for the company. Role models must be adapted to the roles assigned to the different employees on the project. Object-type models must be extensible to reflect different types of objects used in the environment and especially with respect to nondevelopment objects.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Process management</b>—Process management comprises efficient support of object life cycles and object promotion, together with a flexible and extensible approach to life cycle models. Based on a concept of object types, it should be possible to attach different life cycles to different types of objects.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Extensive support for the development phase</b>—During development when checkout and update of objects is frequent, the tool should aid a developer in determining the set of objects that need an update or renewed check-in. Although this requirement seems to be trivial at first, the latest version of the tool you plan to use must be evaluated with emphasis on the environment prior to the first build. These do a good job in change management once the first release has been produced.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Management of nondevelopment objects</b>—SCM tools must manage all artifacts of the project, not just code. These will mainly be documents and their versions and releases. The tool must be able to support that.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Permission management</b>—Everyone should not have access to make changes to different pieces of the software. In many situations, check-in and checkout only will not prevent integration from being broken by multiple people modifying code for their own designs and interfaces.</span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Many configuration management tools in the market promise to fulfill more or less all of the requirements. Chapter 24, &#8220;Use of Tools,&#8221; presented a general model for the selection of tools to support software development and project management. The keys to any tool selection are to know your project&#8217;s tool requirements, to understand how tools relate to the project&#8217;s success factors, and to do a current market search for tools. The following is an example of using that tool selection method for an SCM tool. This is simply an example, and it must be updated with individual key project success factors, tool requirements, and the tools available in the market based on the project&#8217;s schedule requirements.<br />
A quick search of the market in SCM tools provided the list of potential candidates for the tool as shown in Table 31–1.</span></span></p>
<h4 style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Table 31–1 SCM Tools</span></span></h4>
<table style="text-align: justify;" border="1" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Name of Tool</b></span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Description and Company</b></span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Internet Address</b></span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">AllChange 2000 SE</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">IntaSoft</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.intasoft.net/" target="new" rel="noopener">http://www.intasoft.net/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">CCC/Harvest, CCC/Manager, CCC QuikTrak</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Computer Associates (formerly Platinum)</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://ca.com/products/ccm/" target="new" rel="noopener">ca.com/products/ccm/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">ClearCase</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Rational (formerly PureAtria)</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.rational.com/products/clearcase" target="new" rel="noopener">http://www.rational.com/<br />
products/clearcase</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">CMVC, now VisualAge Team Connection</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Configuration Management and Version Control, IBM</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www-4.ibm.com/software/ad/teamcon/" target="new" rel="noopener">www-4.ibm.com/software/<br />
ad/teamcon/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Continuus</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Continuus</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.continuus.com/" target="new" rel="noopener">http://www.continuus.com/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">eChange Man</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Serena</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.serena.com/html/echange.htm" target="new" rel="noopener">http://www.serena.com/<br />
html/echange.htm</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Enabler aqua</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Softlab</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.softlab.com/technology/frm_tech00.asp" target="new" rel="noopener">http://www.softlab.com/<br />
technology/frm_tech00.asp</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Endevor</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Computer Associates</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.cai.com/products/endevor_ws.htm" target="new" rel="noopener">http://www.cai.com/products/<br />
endevor_ws.htm</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Perforce</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Perforce Software</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.perforce.com/" target="new" rel="noopener">http://www.perforce.com/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">PVCS</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">MERANT (formed by a combination of MicroFocus and Intersolv)</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.merant.com/products/pvcs/" target="new" rel="noopener">http://www.merant.com/<br />
products/pvcs/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">PVCS Dimensions</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">MERANT (formerly PCMS Dimensions from SQL Software)</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.merant.com/products/pvcs/" target="new" rel="noopener">http://www.merant.com/<br />
products/pvcs/</a><br />
<a href="http://www.pvcs.synergex.com/" target="new" rel="noopener">http://www.pvcs.synergex.com/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Razor</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Visible Software</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> </span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">RCE (VRCE)</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Revision Control Engine (Visual RCE) DuraSoft GmbH</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://wwwipd.ira.uka.de/%7ERCE/" target="new" rel="noopener">wwwipd.ira.uka.de/~RCE/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Sablime</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Lucent Technologies</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.bell-labs.com/project/sablime/" target="new" rel="noopener">http://www.bell-labs.com/<br />
project/sablime/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCCS</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Source Code Control System</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><i>Comes with most Unix distributions.</i></span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCLM</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software Configuration Library Manager, IBM</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www-3.ibm.com/software/office/bkmgr/" target="new" rel="noopener">booksrv2.raleigh.ibm.com/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Source Code Manager, UniPress Software, Inc.</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.unipress.com/cat/scm.html" target="new" rel="noopener">http://www.unipress.com/<br />
cat/scm.html</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SoftBench</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">HP</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.devresource.hp.com/softbench/sb_description.html" target="new" rel="noopener">http://www.devresource.hp.com/<br />
softbench/sb_description.html</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Source Integrity</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">MKS</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.mks.com/products/scm/si/" target="new" rel="noopener">http://www.mks.com/<br />
products/scm/si/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">StarTeam</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">StarBase</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.starbase.com/products/starteam/" target="new" rel="noopener">http://www.starbase.com/<br />
products/starteam/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">TeamSite</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Interwoven</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.interwoven.com" target="new" rel="noopener">http://www.interwoven.com</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">TRUEchange</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">McCabe and Associates</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.mccabe.com/products/truechange.htm" target="new" rel="noopener">http://www.mccabe.com/<br />
products/truechange.htm</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">TurnOver</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Soft Landing Systems</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.softlanding.com/turnover.html" target="new" rel="noopener">http://www.softlanding.com/<br />
turnover.html</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Visual Age TeamConnection</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">IBM</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www-4.ibm.com/software/ad/teamcon/" target="new" rel="noopener">www-4.ibm.com/<br />
software/ad/teamcon/</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Visual Enabler</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Soft Lab</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.softlabna.com/pages/espages/visenable.htm" target="new" rel="noopener">http://www.softlabna.com/<br />
pages/espages/visenable.htm</a><br />
</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="124">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Visual Source Safe</span></span></p>
</td>
<td valign="top" width="121">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Microsoft Corp. (PC) / Metrowerks (Macintosh)</span></span></p>
</td>
<td valign="top" width="162">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><a href="http://www.microsoft.com/ssafe/" target="new" rel="noopener">http://www.microsoft.com/ssafe/</a><br />
</span></span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">
<p>From the list, four were picked as possible commercial products that would meet the project&#8217;s requirements:</p>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">PCMS is an established product with strong all-round capability to manage the development of complex software projects over a wide range of platforms. Based on information in the public domain, PCMS has shown the greatest level of product development.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">ClearCase is the dominant commercial SCM-tool in Unix development environments and is rapidly moving into NT client/server market development environments. It has achieved this principally by providing developers with transparent tools supporting their work environment and culture. The introduction of ClearTrack extends the all-around capability of the tool set by supporting the management and documentation of changes. After the recent liaison between Rational Software Corporation and Atria Software, Inc., an interesting merge of features between the object-oriented design tool Rational Rose and ClearCase may be expected.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Continuus/CM toolset is characterized by a strong embedded support for process, and its breadth of SCM coverage. The task-based process model is an intuitive approach to the management of change. Distributed development via direct links or over the Internet is simple to set up and operate. However, working across low-grade communication networks is difficult to set up and administer.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">PVCS is the market-leading system for software configuration management by numbers sold. It is simple to use and has stood the test of time. Intersolv has gradually added functionality to Version Manager with associated products such as Tracker, Configuration Builder, and Gateway, and by integrating PVCS with many third-party tools.</span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Following an example from SEI, we formed a ranking system for comparing the tools. Table 31–2 shows the rating for the considered tools.<br />
<b>SEI Template for Ranking CM Plans.</b><br />
<i>Source: SEI, from Configuration Management Plans: The Beginning to your CM Solution</i>.<br />
The result of this first ranking allows one of the potential tools, PVCS, to be dropped. This would then leave three for the project manager and tool evaluation team to take a more in-depth look. Note that there has been no discussion of price at this time. Once the technical decision has been made, the cost decision should follow. Do not introduce price early in the evaluation. If there is discomfort with the technical capabilities and life cycle coverage of a tool, adding in a cost variable will only further confuse the decision. Many software project tools become less desirable after full life cycle cost is analyzed and estimated. Make the technical decision first.</span></span></p>
<h4 style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Comparison of Four Commercial SCM Tools</span></span></h4>
<table style="text-align: justify;" border="1" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> </span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>PCMS</b></span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>ClearCase</b></span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Continuus/CM</b></span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>PVCS</b></span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Multiuser support</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">2</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Intuitive GUI</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Environment conformity</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Scalability</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">2</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Flexibility in integrating other software development tools</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">2</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">1</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Ease of setup</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Modifiable models</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Process management</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">2</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">2</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Development phase support</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">3</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Nondevelopment objects</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">4</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Total</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">36</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">35</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">34</span></span></p>
</td>
<td valign="top" width="65">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">30</span></span></p>
</td>
</tr>
<tr>
<td colspan="5" valign="top" width="144">
<p align="center"><span style="font-size: small;"><span style="font-family: verdana,geneva;">These values are used to indicate ratings: 5 = Excellent; 4 = Good; 3 = Fair, 2 = Unsatisfactory; 1 = Unknown</span></span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">
<p>As a final note on tools, working strictly in a Microsoft development environment with Microsoft tools working under Visual InterDev, Visual Source Safe (VSS) is included as an integral part of the tool suite. VSS is an adequate SCM tool for small commercial product development that is strictly targeted to Microsoft platforms. If you&#8217;re developing on Microsoft platforms and have delivery targets on Linux or Unix, investigate the use of WinCVS. WinCVS is a shareware package that is very capable in providing large-project, multiplatform SCM. It compares favorably with most and betters some commercial SCM tools.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-minimum-features-for-scm-tools/">What are the minimum features for SCM tools? &#8211; SCM Tools Essential Features</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/the-minimum-features-for-scm-tools/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SCM Benefits the Organization in Four Major Ways &#8211; SCM Process Benefits</title>
		<link>https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/</link>
					<comments>https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:23:22 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Advantages of SCM Process]]></category>
		<category><![CDATA[Benefits]]></category>
		<category><![CDATA[Benefits of SCM Process]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[Enterprises]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[How SCM benefits Organizations]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Advantages]]></category>
		<category><![CDATA[SCM Benefits]]></category>
		<category><![CDATA[SCM Process Benefits]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Benefits]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Why SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/scm-benefits-the-organization-in-four-major-ways/</guid>

					<description><![CDATA[<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">SCM benefits an organization in four areas: control, management, cost savings, and quality. These four benefits are mapped to an organization's overall goals and objectives when the decisions are made to bring a SCM tool in-house. The features of a SCM tool further support these benefits.<br /><b>SCM Benefits the Organization in Four Major Ways</b></span></span> </p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"><br /><b>Control</b><br />Control in SCM provides the ability to review, approve, and incorporate changes into a configuration item. There must be one controlling SCM tool so that there is only one set of training, license management, installation, and user procedures. All project personnel use the tool. Inherent in the tool is a standardized, measurable process for change. Integrity maintenance of CIs is enforced throughout the product life cycle. The tool permits only controlled change to the baseline CIs, and all changes are tracked.</span></span></p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/">SCM Benefits the Organization in Four Major Ways &#8211; SCM Process Benefits</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3963 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/scm-benefits-the-organizati.png" alt="scm-benefits-organization" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/scm-benefits-the-organizati.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/scm-benefits-the-organizati-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM benefits an organization in four areas: control, management, cost savings, and quality. These four benefits are mapped to an organization&#8217;s overall goals and objectives when the decisions are made to bring a SCM tool in-house. The features of a SCM tool further support these benefits.<br />
<b>SCM Benefits the Organization in Four Major Ways</b></span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
<b>Control</b><br />
Control in SCM provides the ability to review, approve, and incorporate changes into a configuration item. There must be one controlling SCM tool so that there is only one set of training, license management, installation, and user procedures. All project personnel use the tool. Inherent in the tool is a standardized, measurable process for change. Integrity maintenance of CIs is enforced throughout the product life cycle. The tool permits only controlled change to the baseline CIs, and all changes are tracked.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
<b>Management</b><br />
Management in SCM is concerned with the automation of identifying and guiding configuration items through their life cycle to final assembly as part of product and delivery. Identification of CIs through a unique naming convention allows version, release, update, and full change tracking. Baselining of CIs with the ability to produce product deltas from the baseline satisfies requirement and schedule changes along with product family support. Rapid reviews and audits of CIs are accomplished through the analysis of historic information collected. Project status reporting is accomplished in a clear and consistent format based on SCM collected information on all CIs under configuration management.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
<b>Cost Savings</b><br />
Cost savings are realized across the entire product development life cycle with SCM. Maintaining product integrity through defined, tracked, and audited CIs provides a managed bill of materials for the product released to customers. Cost savings scale with SCM use and application across applications. This scaling is dependent on the depth of control needed for each application product release tree. Deep combinations for product families can be analyzed for risk exposure and cost savings directly impacted by the amount of configuration management applied. Side effects are reduced through controlled change by understanding the impact on all versions and releases. Accurate and repeatable release control is produced in a repeatable fashion over entire product families for all customers and users.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
<b>Quality</b><br />
Software development is a people-intensive activity, and quality must be considered at every person-to-tool interface. Ensuring a high-quality work environment must address the process of building software products in an automated fashion. This must include tracking CIs to the tools that produced them and the clients that ultimately receive the product. Measuring the end product to ensure high quality is done through tracking the changes made to a product throughout its life cycle. Repeatable management and change control in a documented and measured fashion allows accurate estimation of future efforts. Quality is an ongoing process. The lessons learned in one product must be transferred to new, related products and entire product families.</span></span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/">SCM Benefits the Organization in Four Major Ways &#8211; SCM Process Benefits</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
