The Application Development Life Cycle
This section is intended to be a primer or a basic roadmap that could be used as a development life cycle. As with any process, this is intended to be a starting point and is only one of many that could be utilized to manage a project. In fact, most companies do implement and utilize a structured approach to application development. Be sure to check with your software organization to see if there are specific processes and procedures you should be following. Otherwise, if no such processes exist, this section can be used as a guide or possibly even as a starting point in implementing a formal process in your organization.
A solid, structured application development life cycle is a key aspect to the development of any software application, regardless of the software language, operating system platform, or underlying technology. The development life cycle is the foundation for capturing requirements, managing design changes, developing the software, deploying the application, and providing support after the software is in production. In short, it's a disciplined approach to the development and support of an application. It defines the overall processes, phases, activities, tasks, and milestones required to implement the project.
Having a documented process is the first and most important step to developing an application. Everyone involved with the project should know and understand the development life cycle. This sets expectations and, essentially, lets everyone know the rules of the game. The purpose of the development life cycle is to identify and describe the generally accepted processes used to manage the development of applications. Furthermore, having these processes and procedures documented helps to significantly reduce the risk of ambiguity or confusion about the process.
For example, a development life cycle typically has several key components (see Figure 7.1). First, someone, usually the project sponsor, initiates the project based on a business need. Second, team members and application stakeholders gather information and begin planning for the project. After the project's objectives, plan, and schedule are in place, you execute the project plan and manage the project deliverables. Finally, the product is built, delivered, and implemented.
Figure 7.1. Typical project phases
By definition, a project has a definite beginning and end. However, it's the steps in between that are usually more fluid. The development life cycle often contains processes that overlap and interact as the project progresses. This is normal and should not be a deterrent for the project. Moreover, understanding what to expect will help with the design, development, and management of the application. Figure 7.2 illustrates how some of the process may occur for any particular project.
Figure 7.2. Overlap in project phases