THE TRANSFORMATION FROM WATERFALL PRACTICES TO AGILE METHODS

Part 1: Our Methodology

Waterfall practices, a project management approach that emphasizes a linear progression from beginning to end of a project, are a tried-and-true approach implemented by many different organizations and teams. This approach is based on a series of dependent phases that start with up front extensive requirements gathering and completed through design, development, testing, and release based on those specified requirements. However, this type of approach doesn't work as well for more complex or less defined projects, which typically can contain a lot of unknown variables.

The traditional waterfall methodology is predictive by design and is very much grounded in processes and tools, whereas the Agile methodology values the individual and interactions more so than processes and tools. The table below provides a snapshot of some pros and cons of each software development approach with regards to functionality. Our team has successfully utilized both approaches for different software development projects and was still able to successfully meet customer expectations.

Functionality Waterfall Agile
Project Lifecycle Linear and highly structured Cyclical and iterative
Documentation Comprehensive Limited
Customer Engagement Close and continuous collaboration Relatively Limited
Processes Process-driven, reality easy to understand

 

Value-drive
Product Feedback Ongoing feedback loop Key deliverables only
Change Management Typically costly and difficult if development varies from the initial planning Flexible evolution to meet changing requirements
Risk Management High risk if planning factors were incorrect and/or if major changes are needed Flexibility can lead to project overruns
Estimates Clearly defined time (schedule) and costs More collaborative teams and continous development cycles, but less defined level of efforts

 

In keeping with the original Manifesto for Agile Software Development (2001), we strive to implement those core values in all our software development efforts:

- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan

By doing so, JANUS has successfully transitioned programs from a waterfall methodology to an Agile one by following a prescriptive phased process of migrating from a classic waterfall development process to a hybrid approach where the phases of waterfall are replaced with an iterative process providing the development team and customer an opportunity to become practiced with Agile, to finally migrating to an agile development cycle. Agile transformations require patience, flexibility, and openness to feedback throughout the process maximize collaboration and drive improvement.

JANUS begins by using the Agile process, tools, and methods to develop the same artifacts previously used in the classical waterfall method, allowing all stakeholders to be involved in the process and become familiar with the cadence to build trust in the news software development life cycle (SDLC). Once team(s) can deliver artifacts within this framework, we begin to move away from traditional waterfall phases and towards minimum viable products (MVP) as the result of multiple sprint iterations. After customer acceptance of two consecutive software releases, JANUS then transitions to the Agile process for the customer. Now the classic waterfall phases occur within sprints changing the paradigm and delivering completed software every sprint. As the program progresses, testing and deployment events shift so they are occurring every sprint completing the migration to a more mature process.

Key Takeaways:

- Our process provides detailed guidance for improvements across a project leading to lower costs, improved quality, and on-time delivery of products
- Our consistent customer feedback loop ensures we comply with the product owner's direction and feedback
- Our backlog grooming and refinement optimizes software quality and reduces waste, making sure the development team is working on the highest priority tasks

Part 2: Our Approach

As we continue to operate in a VUCA environment, JANUS is focused on long-term Agile organizational transformation. Based on the ever-changing technological changes and ever-changing requirements to better meet customer requirements software development projects continue to evolve. Based on known and unknown variables, they have morphed from the complicated spaces (i.e., Waterfall) to an even higher level of complex space (i.e., Scrum, Design Thinking) which then entails different approaches to developing products. As such, JANUS is not just adopting Agile processes so we can provide outstanding quality software products, but we're continuously adapting to provide relevant and timely solutions to our customers.

Our proven software development lifecycle approach provides distinct value-added benefits to our customers:

- Customer involvement and engagement (iterative approach)
- Development team engagement, alignment, and collaboration
- Upfront planning (i.e. product roadmap), but decentralized execution (i.e. sprint planning)
- Design what we need when we need it (reduces technical debt)

One unique distinction in our approach is that we function equally as well in both a typical waterfall environment as well as an agile environment. This capability is based on our proven performance as well as our documented processes and procedures. Our logic is the more ways we can approach a problem, then the more ways we may have provide viable solutions to solve them. Center to our approach is our quality management system, which is integrated from the very beginning of the software development cycle, through user acceptance testing (UAT) and ultimately to production/deployment.

DevSecOps | JANUS Research Group

Another distinction of our agile approach to software development is it helps us to minimize project risks and maximize opportunities. Based on our experience this is accomplished through consistent and candid communication both horizontally as well as vertically. Our team is intentional about their collaboration and interactions to ensure we focus on providing value to our customers while delivering timely software releases. Examples of our risk management approach include the following:

- Requirements approval and traceability throughout the development cycle
- Open team communication (i.e. Daily Stand-ups, Sprint Panning, Sprint Reviews and Retrospectives, Status Reports)
- Stakeholder engagement for release reviews and approval
- Customer involvement with product test and evaluation

An added distinction to our approach is that we adapt our methodology to accommodate the strengths of both the waterfall and agile approaches into an effective hybrid solution. We spend extra time during the planning and requirements phase ensuring we have adequate documentation. Then as we move into the design and development phases, we transition to an iterative approach to release incremental products to the customer quicker.

Key Takeaways:

- Focus on the customer's needs and requirements
- Continuous and open communication
- Develop and deliver incrementally
- Foster collaboration
- Don't compromise on quality

Part 3: CMMI-DEV Maturity Level 3

The Capability Maturity Model Integration (CMMI) helps organizations streamline process improvement, encouraging a productive, efficient culture that decreases risks in software, product, and service development.

The CMMI-Development (DEV) model is used for process improvement in organizations that develop products. CMMI for development contains practices that cover project management, process management, systems engineering, hardware engineering, software engineering, and other supporting processes used in development and maintenance. This capability provides us guidance for managing, measuring, and monitoring our software development processes.

JANUS is a CMMI-DEV Maturity Level 3 (ML 3) organization with a fully defined and vetted software development process. Which means that we were appraised and have been trained, assessed, and appraised in the areas of product and software development. We have a collection of documented best practices that is used as our process improvement maturity model for the development of software products.

CMMI Dev 3 | JANUS Research Group

As part of the JANUS continued commitment to providing quality products, we are also a CMMI-Services (SVC) ML 3 organization. This capability provides guidance for delivering a wide range of services to both our internal as well as our external customers. The CMMI-Dev and CMMI-SVC symbiotic relationship enables us to provide essential infrastructure support to the development teams, so they focus primarily on meeting customer requirements and expectations.

Our teams strive to be proactive with their development efforts by developing and implementing a product road map that is used to help keep them oriented and forward thinking. These road maps capture capability, functionality, and features of the various software releases and ultimately drive the final software deployment.

As part of our CMMI-DEV ML 3 processes, JANUS uses component of the Atlassian tools suite to organize, manage, and document our software development efforts as well to generate the associated artifacts. These artifacts in turn help the team to track their trends (positive and/or negative) so they look for non-conformance, opportunities for improvement, and strengths. This introspection is an integral component of our culture of continuous improvement and the team's way of working.

Key Takeaways:

- Our process improvement initiatives help to improve & enhance customer satisfaction
- Our performance improvement metrics helps to drive continuously better quality
- Our team's standardization and stability help to make realistic schedules
- Our process maturity and traceability help to reduce the cost of development

Author

Scott Byers

Looking to join our team? Visit our Employment Opportunities page to get more information.

Join Our Team

ISO 20000 ISO 9001 NCS logo CMMI CMMI Development