CMM Model and Waterfall Method Overview
CMM Model and Waterfall Method Overview
The Waterfall method is a linear approach where each phase must be completed before the next one begins, without going back to previous phases. This structure makes it easy to implement with minimal resources and produces comprehensive documentation at each stage, but it is inflexible if changes are needed after a phase is completed. In contrast, iterative models like the Prototyping Model allow for continuous user feedback and iterative refinement, producing a scaled-down version of the system to gauge requirements and make improvements based on user interactions. This iterative process tends to reduce risks of failure and improve user satisfaction by regularly incorporating user feedback .
At CMM Level 4, organizations establish quantitative quality goals for both software process and maintenance, enabling management to utilize precise measurements to effectively control the software development effort. By selecting and controlling subprocesses through statistical and other quantitative techniques, these goals bring about a heightened level of predictability in process performance. This quantitative approach ensures that management can adjust and adapt processes to suit specific project needs without deviating from predefined quality specifications, thereby maintaining consistent performance and quality in software processes and maintenance .
Implementing the Evolutionary Model in software development poses challenges related to process structure and client expectations. The ongoing evolution of the system can lead to quick fixes and continuous changes that may corrupt the system structure. Moreover, the process often lacks well-supported documentation, making it "invisible" and relying heavily on effective communication. Clients may perceive the initial version as near-final, leading to impatience or pressure on the development team. Moreover, the requirement for skilled resources for risk analysis and complex management needs might not align easily with client expectations of straightforward progress, leading to potential misalignments in project understanding and delivery timelines .
The JAD method enhances teamwork and decision-making efficiency by involving all critical stakeholders—users, managers, and analysts—in structured, collaborative workshops. Unlike traditional requirements-gathering methods, which may involve sequential and sometimes disconnected interviews or meetings, JAD provides a real-time, consensus-driven environment. The presence of decision-makers from various functional areas ensures that differing views are addressed immediately, which speeds up decision-making processes and reduces the time spent on follow-ups. This approach ensures that the system's design reflects user needs accurately and all assumptions are documented collectively, leading to a comprehensive understanding and reducing the likelihood of misinterpretation or underdeveloped requirements .
Although the RAD model requires significant resource allocation and client commitment to succeed, it manages to reduce overall project risk through its adaptable nature and emphasis on rapid, iterative prototyping. By engaging users in the process to clarify and refine requirements continually, RAD allows developers to adjust the design to user feedback, minimizing the risk of unmet expectations. Additionally, the short development cycles inherent in RAD enable quick delivery of functional components, providing early visibility into project direction and potential issues. This iterative approach reduces the risk of significant failures by allowing for adjustments before systemic integration .
A critical distinction between CMM Level 4 and Level 5 lies in how each level addresses process variation and improves processes. Level 4 focuses on controlling processes using precise measurements and statistical techniques to manage special causes of process variation, ensuring statistical predictability of outcomes. However, while the processes at this level produce predictable results, they may not suffice to fully achieve the established objectives. In contrast, Level 5 targets common causes of process variation and shifts the mean of process performance to achieve continuous and measurable improvements, aligning closely with organizational objectives. This involves the empowered workforce and innovative process changes capable of adapting to changing business goals .
The Waterfall model offers advantages in documentation and testing processes by ensuring comprehensive documentation at every development stage. Each stage produces specific deliverables that detail the progression and development, facilitating clear communication and alignment of expectations. Testing in the Waterfall model occurs after every major coding phase, ensuring that only fully developed functionalities are tested, compared to iterative approaches where testing is ongoing. This structured approach can provide clear, distinct phases with defined criteria for success before moving forward, which can be beneficial in environments where stringent oversight and documentation are prioritized over flexibility .
The primary drawbacks of the Prototyping Model include its potential high costs if the prototype significantly deviates from final requirements, as the initial model often becomes a "throw-away." The process can be slow due to frequent iterations and client involvement, which might not always be desired by developers due to potential disruptions. Additionally, too many changes can disturb the development team's rhythm, increasing the complexity of the process management and possibly leading to issues in meeting project timelines and requirements if not carefully managed. These factors can increase the risk of delayed or costlier project outcomes .
The Evolutionary Model, also known as the incremental model, is more suitable for large and mission-critical projects due to its ability to deliver an initial version of the system early in the development process, allowing for customer evaluation and feedback. This iterative process supports changing requirements and better risk analysis, which are crucial in large projects where requirements can evolve significantly over time. Although the model involves more complexity and demands highly skilled resources for effective risk analysis, its capacity to manage and adapt to change makes it less appropriate for smaller projects where such resources and iterative work structures may not be as feasible or cost-effective .
The JAD approach enhances quality by involving users, managers, and analysts in a series of structured meetings throughout the development process. This collaborative environment ensures that system requirements are continually reviewed and aligned with user needs, promoting designs that reflect the customer's perspective. By having decision-makers present and addressing differing views promptly, JAD improves clarity and reduces misunderstandings. As errors are caught early in the Analysis and Design stages, the costs associated with later stage fixes are minimized. Additionally, this approach promotes teamwork and reduces the development and maintenance costs, as issues are resolved quickly, and assumptions are documented and understood .