Why Agile?


Agile Development Methodology

Before we move into discuss why we should select Agile, we need to consider on predictive models such as waterfall model. In waterfall we have to be in the prediction where the requirements are not going to change. That they are accurate. Also the translation is going to be perfect.

But what really happen in the industry is, in most of the projects requirements are not easy to identify. Specially clients are not aware of the exact requirements. Due to the intangible nature of the software it is very difficult to predict the requirements in early stage.

Sometimes even if we could identify requirements correctly, by the time we deploy the system, it may be 12 months or more. In such cases market may have been shifted by the time we deploy the system, therefore the original thought that was needed in the market is, no longer needed, which means user needs may have been changed.  

Also in the sense of practicality, translation is also not going to be perfect. Because whatever written in the requirements, designers may find it bit differently. So the real outcome is not what the client may need. For an example assume that you find an issue in a software, in waterfall model it happen in later stages. In such cases due to the cost of change, the later we find the problem, the costlier it is going to be.

Therefore, even if the waterfall approach is valuable sometimes it becomes unpractical which results in failure of the projects.

This is why Agile methodology appear.   The main idea of selecting Agile Methodology is to reduce learning cycle by delivering in short iteration (and adapt what to build based on what they learned.) and to keep the cost of change down by following engineering practices and close collaboration. 

There are 4 agile values and 12 principles in agile manifesto.

4 values
  • Individual interactions over process and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contact negotiation
  • Responding to change over following a plan
12 principles
  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity–the art of maximizing the amount of work not done–is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Applying these values and principles for your project is important because,

Agile methodology is keeping all the stakeholders (client, project manager, development team, testing team etc.) together and all of them have clear visibility in the project. Also another important thing is that team is actively involved and thus make the working environment enjoyable with their collaboration. Next thing is speed to market. Due to incremental and iterative approaches agile can brings the product out to the market soon. Product quality is guaranteed. In waterfall method testing happen after the development process in which the detection of errors is hard and late. In agile, inspection happen throughout development process. This allows the product owner to make any necessary adjustments and aware product team of any quality issues. 

How agile works


Agile Frameworks

SCRUM
XP (extreme programming)
Kanban
Lean



Comments

Post a Comment

Popular Posts