Tuesday, May 3, 2016

Agile Methodologies

Agile has 6 methodology and they are XP, Scrum, ASD, Crystal, DSDM and FDD

Documentation

AGILE advocates to minimize documentation task and invest more time on core development activity, however the degree of documentation differ in different approaches. –
  • XP (Xtreme Programming), Scrum, ASD (Agile software development) & Crystal don’t put a lot of emphasis on documentation and minimum documents are created
  • Teams following FDD spend sufficient amount of time in documentation.
  • DSDM requires some documents to be created & degree of documentation is less than that of FDD and more than that of XP

End user involvement

Another significant difference of AGILE with that of traditional methods is that Agile advocates involvement of end user in the software development process. However the involvement of end-users in different formats is different. Eg., –
  • End-user is actively involved in XP
  • Product owners represent end-users in Scrum
  • In ASD, DSDM and Crystal end-users participate in all of the incremental releases
  • In FDD, end-users participate through reports

Team meetings

Extensive communication is also a core principle of Agile and the level of communication differs in the different approaches.
  • Informal daily stand up meetings happen in Scrum & XP
  • Information sharing is through documents in FDD and DSDM
  • Face-to-face meetings happen in Crystal and ASD

Size of projects

The size of projects and the teams also differ as you move from one method to another.
  • While Scrum, DSDM, FDD and Crystal can be followed for projects of any size, methods like ASD and XP are only followed for smaller projects

Sprint Cycle

The iteration time period also differ in the different methods. Here is how they differ –
  • DSDM advocates producing 80% of the solution in 20% of the time
  • XP has a sprint cycle varying from 1 week to 6 weeks
  • Scrum -> 2 to 4 weeks;
  • ASD -> 4-5 weeks
  • FDD can have a smaller sprint cycle too (2 days) and it can vary upto 2 weeks (based on project requirements)

XP (Xtreme Programming)

 Advantages: 
  1. End users (customers) are actively involved in the process of software development. Hence the product developed is very close to what the customer wants.
  2. Team feedback is also taken very seriously and there is a lot of focus on self-improvement
  3. Best practices are well-defined and religiously followed within the teams
Disadvantages:
  1. Documentation is given less emphasis and hence giving reference to an issue / instance in past (while working on projects) is a challenge
  2. At times it is difficult to bring in customer into the team since he is very distant from the development team. Hence some other team member (like sponsor / PM) plays the role of the customer. Thus lack of discipline observed at times


DSDM (Dynamic systems development method)

Advantages:
  1. Allows for efficient project management and strong control on the project lifecycle
  2. Requirement priority approach helpful in delivering most important functionalities first
Disadvantages:
  1. Documentation is complex and time consuming




Scrum

Advantages:
  1. High level of communication is observed in Scrum teams and which increases focus on problem resolution, product improvement and team improvement through feedbacks
  2. It offers certification. Hence it becomes easy for organization to know who are experts and hire people who are ‘certified’
  3. Harvard Business Review has spoken a lot about Scrum. Hence it must be something which can be taken seriously in the business

Disadvantages:
  1. Poorly documented and hence it is too easy to be abused
  2. Product owners have lose control on the project
  3. Changing requirements allow customers to get tempted to keep demanding more and more functionalities


FDD (Feature Driven Development)

Advantages:
  1. Multi-tasking is possible in case of FDD
  2. Methodology can be used in case of applications that are complex because of documentation and reports that are created
Disadvantages:
  1. Complexity is so much that there is no point in using this method for smaller projects
  2. Less communication within and out of team. Thus teams learn less from other individuals and teams



Crystal

Advantages:
  1. High risk and highly important component are delivered first
  2. Effective team communication and this facilitates learning amongst team members from each other
  3. This methodology can be adjusted as per project type and team size
Disadvantages:
  1. The planning & development are not depended on requirements, hence traceability is an issue in Crystal

No comments:

Post a Comment