Developing and maintaining your company’s applications is a Herculean undertaking. Just one complex application consists of hundreds, if not thousands, of individual software programs and components. These components must be tied together into a precise configuration for the application to work correctly. Further complicating the environment is the fact that development work is usually done in teams. The larger and more complex the application, the more team members will be involved.

At any given time, developers may be enhancing existing components, building new components, and fixing components that are not working correctly. While it might be possible to manage some aspects of source code manually, effective management requires the use of a source-code management tool.

Such a tool provides a structured environment to store the multitude of components needed for an application and manages the components to ensure that they are secure, protected, and organized. The components are stored in a library or repository and are tracked from the time they are created until they are deleted or archived.

Order is needed
Assuming that you develop and support your applications internally, think about the problems that can arise in this type of environment. First of all, in a complex environment, it’s likely that components will be stored in the wrong place and will be hard to find when needed by the application or by developers.

Components can also be lost or deleted accidentally. For example, it would be easy for two people to be working on the same component simultaneously, resulting in one person’s changes being overridden when the second set of changes are placed into production. If problems arise in an application, it would also be difficult to determine exactly what changes had been made in the time since the program was running trouble-free.

Benefits of a management tool
A source-code management tool uses versioning to track component updates, and it saves the changes in case you have a problem and need to revert to a prior version. The tool also provides a check-out/check-in function to ensure that only one valid copy of the component can be worked on at any given time. In addition, the tool keeps track of whether a component is in production, test, development, or archived status. All of these features help make the software components secure and stable. The cost of purchasing and using the tool is more than offset by the gains in productivity associated with ensuring that the development components are available and recoverable.

Next steps
So how do you go about employing such a tool in your organization? First, find out whether it already has a comprehensive source-code management tool. If so, ensure that it is being used fully. A tool that is being “worked around” may provide a false sense of security. If your company doesn’t have a tool, find out why—there may be a good reason.

You will find a multitude of tools on the market, depending on the types of components you need to protect, what platform you are using, and how much you want to pay. A product evaluation can help determine what package(s) are right for your organization.

Points to remember

  • Your business applications are usually made up of hundreds or thousands of individual components.
  • Your development organization needs to have a tool to ensure that components are tracked and managed throughout their life.
  • If you have a source-code management tool in place, make sure that developers are using it and not working around it. If they are working around the tool, your company is at risk.
  • If you are doing internal development and do not have a source-code management tool, your company is at risk.