Managing corporate software development projects can be extremely difficult, especially if results are expected almost immediately.
This challenge can be overcome by incorporating a robust SCM (software configuration management) system. Justin Arnoldi, SCM Product Manager for Bytes Business Solutions, takes a closer look at SCM and its many benefits, specifically highlighting why it is so important that software development efforts are be built on its strong and definite guidelines.
Due to increasingly complex systems and distributed development environments, software development practices have - out of necessity - changed dramatically.
Although the cost of development is difficult to quantify beyond salaries and associated technology, in the US alone, companies spend an estimated $275 billion a year on software projects.
What`s even more is that these projects often feature questionable results with 31% of them cancelled before they`re even completed and a staggering 68% running more than 50% over projected completion times.
Probably the scariest bit is that 32% of software projects miss 50% of the specified features.
This all obviously translates to huge financial loss amounting to millions of rands, depending on the magnitude of the project.
A viable solution is SCM - the most consistent method for developing high-quality solutions with minimal errors, and the shortest time to market.
SCM has become an increasingly important leverage point for enterprise-wide success.
Research group Ovum defines SCM as "the disciplined approach to managing the evolution of software development and maintenance practices, and their components as they change over time".
This is why it is so important that we look at the benefits of SCM - understanding how it can indeed enable software projects` success, cutting down on costs while improving time to market.
Reduced downtime
SCM addresses downtime in a various ways. In saying this, it can obviously not prevent a production application failing if it is truly defective.
Often, applications fail because one or more components in a run-time environment are out of sync with the other components, in the wrong location, or missing entirely.
This scenario is extremely difficult and time-consuming to control. However, a release-centric SCM system that features version control, build control, and distribution control can virtually eliminate this problem.
On the other hand, if the problem lies in the application, SCM reduces downtime by providing easy identification of the installed production release, allowing for the project component to be retrieved. SCM also allows "roll back" to a previous release.
Distribution control
Distributing the components of an application to create a viable run-time environment is important to development, testing and production control.
However, the improper distribution of an application can result in run-time problems that are extremely difficult to diagnose.
Again a release-centric SCM system coupled with distribution control, that accurately maintains the relationships between installed run-time components, eliminates this problem.
Change tracking
Defect tracking and management systems - when integrated with SCM - provide accurate visibility into the cause, action taken, and resolution of issues and defects throughout the entire development lifecycle.
This in turn enables development teams to respond to and correct problems in a more timely and effective manner, producing more stable applications, which results in the reduction of downtime and improved credibility throughout the organisation.
Increased security
Without mature SCM practices, developers are often granted access to testing and production environments as well.
This can lead to a multitude of problems that includes out of sync source code within a release, crashing a production application, or even corrupting data.
Again, SCM eliminated this problem by ensuring that any software - whether in production or testing - is wholly contained within the version control system, easily identifiable and retrievable to an isolated environment.
More importantly, SCM provides increased security to the development environment by controlling access to project`s source code files. Indeed, these files represent a company`s investment into its software assets and must, therefore, be protected against malicious or accidental damage.
So, SCM enables organisations to manage highly complex software development projects and product lifecycles, software maintenance practices, and applications as they change over time.
The benefits of SCM are realised with increased productivity throughout the development lifecycle and side-stepping the numerous problems that can hamper development efforts.
Making the development process more efficient also reduces the backlog of development projects that often plague corporate development organisations.
Lastly, and very importantly, by managing software assets and mastering the change process, you save time and money and reduce the risk of software that`s late or inadequate.
Editorial contacts

