,DanaInfo=7bsp1018.wikispaces.com+,DanaInfo=7bsp1018.wikispaces.com+,DanaInfo=7bsp1018.wikispaces.com+Group+1+Foundation+of+Agile+Methods

toc

__**1.0 Introduction**__
Agile Methods (AMs) are a set of development techniques designed to address some problems of Modern software development which are over-budgeting and behind-schedule **(**Sillitti and Succi, 2007). The aim of these methods is to reduce cost and increase the quality of product. This can be achieved by reducing wastes in project processes and helping developers to focus on the objective by delivering the required product or service that has a value for the customer.

Major agile methods are Scrum, Xtreme Programming (XP), Feature Driven Development (FDD), and Dynamic Systems Development Method (DSDM) (Schwaber et al, 2007 ). Scrum and XP are most popular agile processes in practice. Some organizations introduced their own agile methods which have been proven in the field and now known as a type of agile methodology like Kanban. Lean Management also provides very similar concepts and practices like agile.

**__1.1 Agile Methods Aims and Purpose__**
Agile methods were developed to overcome the shortcomings of the traditional development approaches ( waterfall, Spiral, Iterative etc) which is characterized by high level of planning to reduce risk and uncertainty. The biggest difference between iterative methods and Agile is that Agile helps to deliver an integrated system functionality after each iteration. Agile methods not only helps in the project management but to the customers as well. These methods help the customers to describe as well as prioritize their requirements (Sillitti and Succi, 2007). The enhanced collaboration among development team, management and customers in Agile methods makes the process efficient for delivery of a better product. According to Agile Manifesto (2012), customer satisfaction has the highest precedence in Agile methods assured by early and continuous delivery of valuable software.

AMs acknowledge the difficulty of defining detailed requirements and plans at the beginning of a project and include the support to changes into the development process. In this way, new requirements are collected and discussed with the customer in each iteration and development is performed iteratively to ship the product or service to the customer at the end of every iteration (spanning from 2 weeks to 2 months).

__**1.1.1 Distinctive Features of Agile Methods**__
Agile methods are very different than ordinary or traditional iterative processes. Forrester Report (2007) terms some principles which makes this difference visible as following;


 * 1) Ordinary iterative method's iteration ends with additional functionality limited to some part of the actually required working product after that iteration. In contrast, agile iterations deliver fully developed, tested and ready to become part of the production stage which is exposed to the users in real world. Customer's approval makes this iteration's outcome part of the production without requiring any extra effort. So, agile methods deliver some business value part at the end of its each iteration which would be fully complete in all aspects of its development or testing and would be ready for the end users.
 * 2) Adopting agile methods does not mean to make the iterations resembling to mini-waterfalls in which a small portion of requirement and its related planning, design, development and testing is achieved. This Approach usually leads to considerable problems at time of integration because of ignoring testing of previous functionality while performing quick or little testing on new functionality. Adopting agile methods means eliminating such phases boundaries in one iteration and making them parallel to make the development robust and efficient. By doing so, complete design, development and testing (on both; new as well as integration testing) is done in each iteration than accumulating the load at later stages.
 * 3) Continuous integration of newly added functionality with the existing code base is a major feature of agile. Agile teams should maintain the quality of work throughout the iteration and follow the agile processes to avoid any later problems. Specific practices like test-driven development, continuous integration or pair programming are very helpful in this aspect.
 * 4) Self-managing teams is a major feature of agile methods. This feature boosts the morale of team and encourages the teams members to interact with business customer and then plan the strategy to achieve the requirement for a specific iteration. In this way, team members commit the delivery of iteration functionality according to their planning and then put their enhanced effort to fulfil their commitment.
 * 5) Increasing efficiency by eliminating the wastage is nothing but same as killing two birds with one fire. On one side, time and efforts are saved and concurrently on the other side, efficiency is increased by doing what is required than polishing the auxiliary things. Agile methods focus on this aspect gravely. Lean processes and agile methods have common attributes to eliminate the waste wherever and whenever possible.

__**1.1.2 Advantages of Agile Methods**__
According to the Forrester Report (2007), following are advantages that agile methods have over traditional approach;


 * 1) Extensive team collaborations, quick customer feedback, effective customer involvement and quality practices makes the agile methods to produce the product or services not only rapidly but with less time to market as each iteration ends with delivery of working software.
 * 2) Agile methods ensure product quality because of quality focus not only by the team but by agile practices and techniques throughout each iteration.
 * 3) One of the major theme of agile is to reduce waste, these can be achieve by reducing the lengthy time in planning and also teams members are always finding ways to improve their efficiency. Closer interaction with customers means that work is tailored towards their needs and satisfaction and code produce are able to meet their needs thereby avoiding waste in producing work that does not satisfy customers need.
 * 4) Development via agile methods provides greater visibility of the work in progress than any other method. Every requirement is transformed to user story having some numerical defining its complexity. Reports like burn-down charts or burn-up charts help to understand the real time progress towards delivery.
 * 5) Self managing teams concept improve morale of the team members in overall. Team commitment over the delivery polish their professional career in a systematic and effective way.

2.0 References
Agile Manifesto,. [Accessed: 16 Febuary,2012].Available at retrieve from []

Schwaber C.,Leganza, G., & D’Silva, D.(2007)The Truth About Agile Processes Frank Answers To Frequently Asked Questions. Forrester Report, August 28, 2007

Sillitti, A.and Succi,G. (2007) Foundation of Agile Method. England: John Wiley and Sons Ltd.

West, D. and Grant, T. (2010) Agile Development: Mainstream Adoption Has Changed Agility . for Application Development & Program Management Professional : Forrester Research , January 20, 2010

Highsmith J., Orr K., Cockburn A., “Extreme programming”, in: E-Business Application Delivery, Feb. 2000, pp. 4–17. Available: [].