Agile Software Development Life Cycle Model

The topic of the Agile SDLC model is vast enough for an entire book. However, for the purposes of this book, a summary of the Agile SDLC will suffice.

To support the dynamic nature of the market, it would be challenging for organizations to follow the traditional waterfall SDLC model to implement IT solutions. In order to provide faster, cheaper, and better products delivering high business value, organizations have to implement an optimized, diversified, agile, and cohesive IT organization model that can facilitate global and virtual environments and provide a flexible service-oriented technology platform to adopt changes in the technology and customer requirements.

The Enterprise 2.0 concept embraces the new concept of Agile SDLC. SOA-based RIAs, at the heart of which are lightweight, externalized, distributed, and loosely coupled application services, are flexible enough to support the Agile SDLC and thus the dynamic nature of the market and "time to market" principle. Figure 4-8 provides a high-level overview of the Agile SDLC.

Figure 4-8. Agile SDLCModel

Agile software development is defined as follows:

Agile Software Development methodologies generally promote a project management process that encourages frequent inspection and adaptation; a leadership philosophy that encourages team work, self-organization, and accountability; a set of engineering best practices that allow for rapid delivery of high-quality software; and a business approach that aligns development with customer needs and company goals.

As shown in the Figure 4-8, the Agile SDLC mainly follows an incremental and iterative-phased approach for software development. In the diagram, moving from left to right, the level of uncertainty and unknowns decreases. As you progress, say, from the "Proof of Concepts (PoCs) and Prototypes" phase to the "Testing" phase, the level of uncertainty and unknowns will be reduced, and the product release will be more stable and deployable.

The Agile SDLC implies working very closely and strategically with stakeholders and customers, and balancing expectations against the time line and business values to create a road map for the development of business-enabled RIAs. It is not necessary for the first release of the product to feature all requirements and meet all expectations. Instead, requirements and expectations are prioritized and delivered incrementally in a phased approach to deliver maximum business values and ROI.

Once the high-level scope of a particular release, based on prioritized requirements, is defined, the agile development model allows you to determine different iterations. Based on the quality of the requirements and understanding of those requirements and technology, the release life cycle may start with the development of different POCs and prototypes to finalize the scope of the release.

From the beginning of the product-specific release life cycle, customers, stakeholders, and quality assurance and IT governance teams are continuously involved to review product output and business process implementation and provide constructive feedback to the project team. At the

5. Wikipedia, http://en.wikipedia.org/wiki/Agile_software_development

end of every iteration, the project team will revisit and evaluate the received feedback and adjust the scope of the next iterations to incorporate them following a test-driven development (TDD) approach.

0 0

Post a comment

  • Receive news updates via email from this site