Project Management complements the SDLC when it comes to Project Quality. It provides a method of managing these unique project efforts, which increases the odds of attaining cost, schedule and quality goals. Since not all projects warrant the same level of cost, schedule and quality goals, it is important to define, as part of the project management process what these objectives are. Is the customer constraining the time of the project, do they have a limited budget, or are they looking for a "cheap" vs. "high-performance" application? These questions are critical in ensuring that the SDLC efforts are not under- or over-designing the application, which will lead to a dissatisfied customer.
The primary benefits of a good Project Management Process will:
- Provide consistency of success with regard to Time, Cost, and Quality objectives
- Ensure customer expectations are met
- Collect historical information/data for future use
- Provide a method of thought for ensuring all requirements are addressed through a comprehensive work definition process
- Reduce Risks associated with the project
- Minimize scope creep by providing a process for managing changes
As described earlier, the basic assumption of a waterfall model is that it is sequential, yet iterative. It requires a strong Change Control process, which is typically not defined directly within typical SDLC programs. One of the benefits of an effective project management process is a strong change control system, which ensures that all the SDLC documents are updated and maintained as changes are approved, further supporting the notion of improved quality through effective SDLC.
Now that we have Project & Product Quality addressed, there are still two major areas, which significantly affect the effectiveness of the software development team. First, Management commitment is critical. There have been numerous articles written discussing management’s lack of involvement in the project as one of the primary reasons for project failure. For those that have worked in previous software development projects, one thing you can count on is that change will occur, and that change may require management’s involvement and/or support.
Without strong management support, circumstances will affect our ability to satisfy the customer and meet our project and product objectives. Management that is willing to intervene, when asked to, will further increase the probability of successfully delivering a quality product.
Finally, customer involvement and their willingness to understanding and support the defined SDLC and project management processes is the final hurdle in achieving ultimate success-a satisfied customer. There is no replacement for spending time with the customer and gaining their commitment as an involved team member. The first step is to involve them in detailing the comprehensive business requirements.
The most successful software development projects are those where customers understand the value of documenting thorough requirements and work iteratively with the software vendor providing input on the progress.
In summary, an SDLC process by itself, although the basis of successful development, can’t ensure success without a clear organizational commitment from each of the "micro-climates". An SDLC process that assumes it can succeed on its own, will fail. An SDLC process that doesn’t have management and project management support to ensure product quality and project quality, will fail. An SDLC process that doesn’t allow for iterative efforts and a partnership with the customer, will fail.
- First, assess where you have control. If your control is only limited to the IT SDLC process then focus there. Set the right expectations that you will be able to deliver consistently and provide maintainable software for your customer-the critical component being the Business Requirements document.
- Second, if you don’t have a project management process in place, start by using a more formal change control process that allows the customer to identify all of their needs and collaboratively define what can be delivered at different time intervals.
- Third, if you don’t have strong project managers, work with your IT management to see if you can have a business sponsor identified for your project who can help make decisions as issues affecting time, cost & quality arise.
- Finally, don’t be afraid to talk to the client. Be prepared to communicate how your SDLC process will help the customer obtain a better product. Everyone has had to live with the horrors of bad software development experiences, including your customer. Find out what their past pains were and try to relate them to the benefits the customer will gain by them supporting your processes.
The bottom line is that an effective SDLC process, by itself, will not ensure success, but you can use it to your advantage to ensure your customer is Delighted