Advertisment

Creating A New Business Paradigm

author-image
DQI Bureau
New Update

Today, in an environment where application development is increasingly getting more complex, software configuration management (SCM) has become an imperative.

As companies move

their applications from mainframes to client server LANs, develop

for the Web, and move

on to N-tier computing environments-or integrate them all in a heterogeneous enterprise, SCM becomes the key to cope with the growing complexity.

Advertisment

SCM not only automates and manages key project aspects but at the same time also reduces error and supports parallel and concurrent development.

SCM is the process of identifying, organizing and managing changes to software being built by a team of programmers working on parallel, concurrent and distributed projects. The tools range from basic version control for smaller teams to sophisticated support for distributed team development across the enterprise, including version and revision control, build management, issue management and automated process management.

Saves time

Advertisment

Software assets today represent the team efforts of programmers, platform specialists and managers. SCM is essential to this team's success. It automates development project coordination tasks, supports repeatable processes, manages changes and issues and automates software builds. Similarly, where projects are too diverse and involve more team members than ever before, SCM helps manage the complexity.

Studies show that less than 30% of a developer's time is spent on programming new software. Most is taken up by existing codes. Even for new applications, such as the web, as much as 50% of developer time is spent on changes, instead of creating new content.

Another portion of non-programming time is spent handling and supporting documentation, tracking user requirements and change requests, and creating analysis and application design diagrams. These are all necessary parts of a development project but they can waste a precious resource-the coding talents of a company's best developers.

Advertisment

Today, millions of lines of evolving, multi-version code are no longer an exception, but have become a norm. Platform proliferation adds further complexity, as enterprises work to link a plethora of platforms, databases and protocols into a smooth, seamless information machine.

Benefits for project managers

Team development is a practical necessity today. However, from a management perspective, team development introduces a coordination challenge. And, the larger or more dispersed the team, the greater is the chance of miscommunication. People lose track of who's responsible for what and who's already done what. Notes, emails and team meetings go only so far toward keeping a project on track.

SCM can ease the coordination headache for managers in specific ways by addressing the following concerns:

  • Accounting for and reporting the progress of development efforts

  • Tracking software changes throughout the development process

  • Preventing unauthorized access to software and protecting assets

  • Ensuring compliance with ISO 9000, CMM, SEI and other quality and process criteria

  • Controlling access to archives and protecting components of applications

  • Organizing a life-cycle promotion strategy that accurately reflects the way software is developed

  • Assuring controlled, accountable transfer from development to production

  • Ensuring that the development team is finding and using all the current components when building an application.

  • Ensuring that SCM tools work with all development environments, current as well as future, and on all platforms

    Developer gains



    Typically, developers working in a team setting have concerns that are different from those of management. SCM also plays a crucial role in managing and answering the following problems faced by developers in their day-to-day functions:



    What happened to this piece of code? It worked yesterday!



    I thought there was a bug in this code, but now I can't reproduce it.



    What happened to the fix I added to this code last week?



    Did the right changes go into the release?



    What release version is this? Is it the latest one?



    There may be concerns that imposing SCM stifles the creative process of writing code. However, the opposite may be true. SCM products, take on the time-consuming and non-creative tasks of version and revision tracking, leaving developers free to concentrate on code. In the end, it also leads to better quality software, so developers-and the companies they work for-spend fewer resources on maintenance duties.



    Business gains



    Executive management may have another set of concerns regarding development projects. For software publishers, top issues are time to market and product quality-both essential to remain competitive and profitable. Within corporations, applications are not developed for their own sake, but must help a business work better and faster. SCM benefits business's bottomline by solving the following challenges:



    How to handle concurrent, cross-platform and web development



    How to develop an integrated approach to managing version changes, issues, builds and testing



    How to make project schedules more reliable

    l How to speed development and get to market faster



    Improving code accuracy to ensure happier customers and reduce support calls



    Reducing time spent on fixing the old code and the number of change requests and bug fixes

    l Making the most of existing software assets



    Making it safer and easier to re-use code



    Are SCM tools for everyone?



    If a business relies entirely on mainframes, where applications are single-tier and monolithic, SCM is easy to impose as a centralized function. It is already a given within this closed environment, and its tools and techniques are well established and accepted as a standard.



    In such environments, the 'glass house' has always managed software configuration, and it has generally required little additional intervention from business management. If a company has only a mainframe, no need for fast or complex development, and has a straightforward line of business, it may not need to invest in a complete SCM infrastructure.

    In a smaller business, it is likely that the development teams already have a home-grown SCM system of sorts.



    These may work fine with smaller teams, in single-vendor environments, all Unix or all Windows, and in businesses that don't need fast changes or multiple versions of releases.

    However, when larger, computer-intensive businesses move to a client server architecture, the complexity of the development environment increases dramatically. To aid team development, SCM should embrace multiple hardware platforms, operating systems and development environments.



    It has to work with distributed teams, remote contributors, and support a variety of different development tools.

    Any business with such a heterogeneous environment should make an early and informed decision to bring SCM into its development process. It cannot be taken for granted, as it was in a closed, single-vendor system. It is imperative for success.



    DAVID PARKER,





    Director (Asia), PVCS.

Advertisment