Tuesday, December 4, 2012

Agile Methodologies

1.   Extreme Programming (XP)
Extreme Programming teams use a simple form of planning and tracking to decide what should be done next and to predict when the project will be done. Focused on business value, the team produces the software in a series of small fully-integrated releases that pass all the tests the Customer has defined.

2.  Scrum
Scrum is a model based on multiple small teams working in an intensive and interdependent manner. It employs real-time decision-making processes based on actual events and information. The teams in the organization work together while constantly focusing on their common interests.
Scrum involves:
·         Initial appointment of a project manager called the "scrum master."
·         Definition and prioritization of tasks to be done.
·         Planning sessions for each task.
·         Daily meetings among teams.
·         Identification and evaluation of potential project risks and process pitfalls.
·         Execution of projects in brief, high-intensity, frequent work sessions.
·         Reviews of progress and evaluations of completed projects.
·         Openness to constructive criticism and ideas for improvement.

3.   Lean Software Development
Lean software development is a translation of Lean manufacturing and Lean IT principles and practices to the software development domain. Adapted from the Toyota Production System, a pro-lean subculture is emerging from within the Agile community.
LSD is mainly focused on
·         Build only what is needed
·         Eliminate anything which does not add value
·         Stop if something goes wrong

4.    Feature-Driven Development Feature-Driven Development (FDD) is a client-centric, architecture-centric, and pragmatic software process.  The term “client” in FDD is used to represent what Agile Modeling (AM) refers to as project stakeholders or eXtreme Programming (XP) calls customers.
Feature-Driven Development (FDD) is one of the agile processes not talked or written about very much. However, if you need to apply agile to larger projects and teams, FDD is best.

5.   Agile Unified Process Agile Unified Process (AUP) is a simplified version of the IBM Rational Unified Process (RUP). It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. Unlike the RUP, the AUP has only seven disciplines namely Model, Implementation, Test, Deployment, Configuration Management, Project Management, Environment.
AUP is based on
·         Your staff knows what they're doing
·         Simplicity
·         Agility
·         Focus on high-value activities
·         Tool independence

6.  Crystal Crystal is a "Family" of methodologies that share a common "Genetic Pool". At it's core it is an agile methodology and as such follows the principles of frequent delivery, iterations, user involvement, responding to change. However it does so in a very different way to other methodologies. It's a process for small teams.
It is focussed on
·         Frequent Delivery of usable code to customers
·         Reflective improvement of the processes - how can we make this suit us better?
·         Osmotic (overhearing) or direct communication preferably by being co-located

7.    Dynamic systems Development Model (DSDM) Dynamic Systems Development Method (DSDM) is a framework based originally around Rapid Application Development (RAD), supported by its continuous user involvement in an iterative development and incremental approach which is responsive to changing requirements, in order to develop a system that meets the business needs on time and on budget. It is one of a number of Agile methods for developing software and forms part of the Agile Alliance. The following nine principles form the cornerstones of development using DSDM.
      There are 9 underlying principles of DSDM consisting of four foundations and five starting-points for the structure of the method.
·         User involvement is the main key in running an efficient and effective project, where both users and developers share a workplace, so that the decisions can be made accurately.
·         The project team must be empowered to make decisions that are important to the progress of the project, without waiting for higher-level approval.
·         DSDM focuses on frequent delivery of products, with assumption that to deliver something "good enough" earlier is always better than to deliver everything "perfectly" in the end. By delivering product frequently from an early stage of the project, the product can be tested and reviewed where the test record and review document can be taken into account at the next iteration or phase.
·         The main criteria for acceptance of deliverable in DSDM is on delivering a system that addresses the current business needs. It is not so much directed at delivering a perfect system addressing all possible business needs, but focuses its efforts on critical functionality.
·         Development is iterative and incremental, driven by users’ feedback to converge on an effective business solution.
·         All changes during the development are reversible.
·         The high level scope and requirements should be base-lined before the project starts.
·         Testing is carried out throughout the project life-cycle.
·         Communication and cooperation among all project stakeholders is required to be efficient and effective.

No comments: