The Unified Process Elaboration Phase: Best Practices in Implementing the UP

What is a software process? A software process is a set of project phases, stages, methods, techniques, and practices that people employ to develop and maintain software and its associated artifacts (plans, documents, models, code, test cases, manuals, etc.). Consider the hunting process of Figure 1.1. Although I m sure the X-Files will eventually provide an explanation as to why the Neanderthals became extinct, my theory is that the implementation of an inappropriate process such as the one presented is a likely candidate to explain their downfall. The point is that not only do you need a software process, you need one that is proven to work in practice, a software process tailored to meet your exact needs.
Why do you need a software process? An effective software process will enable your organization to increase its productivity when developing software. First, by understanding the fundamentals of how software is developed you can make intelligent decisions, such as knowing to stay away from SnakeOil v2.0 the wonder tool that claims to automate fundamental portions of the software process. Second, it enables you to standardize your efforts, promoting reuse and consistency between project teams. Third, it provides an opportunity for you to introduce industry best practices such as code inspections, configuration management, change control, and architectural modeling to your software organization.
An effective software process will also improve your organization s maintenance and support...