| The 
      Agile MethodologyThe sequence of the development phases, as shown in Figure 1 
      earlier, are essentially the same. However, Agile is an iterative, team-based 
      approach to development. This approach emphasizes the rapid delivery of an application 
      in complete functional components. Rather than creating tasks and schedules, all 
      time is "time-boxed" into phases called "sprints." Each sprint has a defined duration 
      (usually in weeks) with a running list of deliverables, planned at the start of 
      the sprint. Deliverables are prioritized by business value as determined by the 
      customer. If all planned work for the sprint cannot be completed, work is reprioritized 
      and the information is used for future sprint planning. As work is completed, 
      it can be reviewed and evaluated by the project team and customer, through daily 
      builds and end-of-sprint demos. Agile relies on a very high level of customer 
      involvement throughout the project, but especially during these reviews.  Some 
      advantages of the Agile approach:[7]   
  The customer has frequent and early opportunities to see the work being delivered, 
    and to make decisions and changes throughout the development project.The 
      customer gains a strong sense of ownership by working extensively and directly 
      with the project team throughout the project.If time to market for a 
        specific application is a greater concern than releasing a full feature set at 
        initial launch, Agile can more quickly produce a basic version of working software 
        which can be built upon in successive iterations.Development is often 
          more user-focused, likely a result of more and frequent direction from the customer. Some 
      disadvantages of the Agile approach:  
      The very high degree of customer 
        involvement, while great for the project, may present problems for some customers 
        who simply may not have the experience, time or interest for this type of participation.Agile 
          works best when development team members are fully dedicated to the project.Because 
            Agile focuses on time-boxed delivery and frequent reprioritization, it is possible 
            that some items set for delivery will not be completed within the allotted timeframe. 
            Additional sprints (beyond those initially planned) may be needed, adding to the 
            project cost. In addition, customer involvement often leads to additional features 
            requested throughout the project. Again, this can add to the overall time and 
            cost of the project as compared to its business case.The close working 
              relationships required in an Agile project are more easily managed when the team 
              members are located in the same physical space. This is not always possible, but 
              there are a variety of ways to handle this issue, such as webcams, collaboration 
              tools, etc.The iterative nature of Agile development may lead to a frequent 
                refactoring if the full scope of the system is not considered in the initial architecture 
                and design. Without this refactoring, the system can suffer from a reduction in 
                overall quality. This becomes more pronounced in larger-scale implementations, 
                or with systems that include a high level of integration. 7. 
For more Agile Development benefits, please see 8 
Benefits of Agile Software Development
 
 |