Thursday, November 13, 2014

Configuration Management

25.10 Describe five factors that should be taken into account by engineers during the process of building a release of a large software system.

The main factors that should be considered are prioritized needs, version control, external libraries + dependencies, documentation and package.

1. In change management there is a process of prioritizing and organizing needs by analyzing costs and benefits. The goal is to ensure that the system evolution is a managed process and not just allowed to grow in random ways.By keeping the requirements organized engineers can ensure that the work flow is well documented and organized.

2. Version management holds the most interest to me, and is very important. It is a wholly under appreciated skill to learn that, when mastered, can completely and vastly improve one's coding work flow. Branching is especially important, as you can hold stable code in one (usually master) branch, while you can test and break your code in separate branches (usually test or development). This removes the fear of losing or breaking your code, as you can always go back to a stable or older version. In addition if you commit regularly and have good commit messages then you can view a complete change log of code which can assist in rolling back any changes, or simply analyzing your work flow. If version control is done well then it can be integrated seamlessly with the final build and keep everyone better organized.
(Side note: After learning to use SVN I still maintain that git is much better to work with!)

3. External libraries and dependencies are becoming increasingly popular in their integration with systems. Especially with the increased use of open-source code there is a declining need to re-write processes or libraries, because there is always something out there that will do the same thing. In addition that open-source library will have a support system, documentation and a community behind it. Because of their use however, one must ensure that their system works well with those dependencies. If there are version or integration issues then it's quite bad.

4. Documentation is very important. It must be complete enough to allow anyone to construct the system, preferably it will be automatically generated at every step during the development process.

5. The package is a conglomeration of the previous four elements. At this point it is important to check that everything is functioning, versions and dependencies are working correctly together. The package should be generated properly with no errors.

0 comments:

Post a Comment

Powered by Blogger.
 
 
Copyright © Software Engineering
Theme by BloggerThemes. Design by Diovo.com. Edited by Laura Barber.