Tuesday, January 21, 2014

Agile Methodology

As indicated in Williams (2007) this is a collection of iterative and evolutionary methods which are based on iterative enhancement and opportunistic development processes. According to Agile methodology (2008) agile methodology as approaches are designed to respond to unpredictability in a software development project.

The Agile manifesto looks at the project from a very different aspect than the other methods. It looks at the Individuals in the project and interactions over the processes and the tolls that are used . As stated in Agilemanifesto (2014) the agile method it looks at working software without giving too much importance to comprehensive documentation. It gives more importance to customer collaboration more than the contract negotiation and finely it is more oriented on how to respond to change more than following a set plan.

The 12 principles of the agile Manifesto according to Agilemanifesto (2014):
1.      Satisfy the customer through early and continuous delivery of valuable software.
2.      Always include the changing requirements. Agile processes harness change for the customer's competitive advantage.
3.      Deliver working software frequently with a preference to the short timescale like a week/month.
4.      Business people and developers must work together daily throughout the project.
5.      Provide a supportive environment and have motivated individuals throughout the project.
6.      Development team should have face-to-face conversation to convey information
7.      Working software is the primary measure of progress.
8.      The sponsors, developers, and users should be able to maintain a constant pace indefinitely in order to have a sustainable development.
9.      Continuous attention to technical excellence and good design enhances agility.
10.  Simplicity 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.
Agile has many methodologies. A few of them are:
·         Extreme programming
·         Crystal
·         Scrum
·         Feature driven development
Extreme Programming (XP)
As indicated in Williams (2007) this methodology is suitable for object-oriented projects where the project team consist of a dozen or fewer programmers in one location. This is based on 5 underlying values.
·         Communication: The communication value is based on the observation that most project difficulties occur because there is lack of communication. The roles involved are project manager, Coach, tracker, programmer, tester and customer.
·         Simplicity : make it simple and design and code what is in the current requirements
·         Feedback: Get customer’s feedback at the end of each iteration and external release.
·         Courage: Have courage in its actions and decision making
·         Respect: Care about project and Each other in the team.
According to Williams (2007) the documents and artifacts used in this methodology are:
·         User story cards
·         Take list
·         Customer Relationship collaboration cards
·         Customer acceptance test
·         Visible wall graph
Crystal
This is similar to the RUP. As indicated in Williams (2007) this methodology was developed to address the variability of the environment and the specific characteristics of the project. However, RUP generally starts with a plan-driven base methodology conversely in Crystal methodology doesn't give much importance to being plan-driven. Since the project and the people evolve over time, the methodology also tuned and evolved during the course of the project. The different methods used in crystal are assigned colors arranged in ascending opacity; the most agile version is Crystal Clear, followed by Crystal Yellow, Crystal Orange, and Crystal Red.
As stated in Williams (2007) all the Crystal Methods emphasize the importance of people in developing software, interaction, community, skills, talents, and communication.
Examples for crystal method
Method
Documents and artifact
Roles
Process
Crystal Clear
Release plan, schedule of reviews,
informal/low-ceremony use cases, design sketches, running code, common object
model, test cases, and user manual
project sponsor/customer, senior designer-programmer,
and user
Incremental delivery, releases less than two to three months, automated testing, direct user involvement, two user reviews per release,
and methodology-tuning
Crystal Orange
Requirements document, release plan,
schedule, status reports, UI design document, inter-team specs, running code,
common object model, test cases, migration code, and user manual
project sponsor, business expert, usage expert, technical facilitator,
business analyst, project manager, architect, design mentor, lead
designer-programmer, UI designer, reuse point, writer, and tester
Incremental delivery, releases less than three to four months, automated testing, direct user involvement, two user reviews per release,
Methodology-tuning.
Table 4: Crystal methods
Source: (Williams, 2007)


Scrum
This is the most widely used method of Agile. As stated in Agilemethodology (2008) scrum emphasizes empirical feedback, team self-management, and striving to build properly tested product increments within short iterations. There 3 roles in Scrum methodology. They are Product Owner, Scrum Master and Team/Developer. 
·         Product Owner according to Williams (2007) is the person who is responsible for creating and prioritizing the Product Backlog. For example choosing what will be included in the next iteration.
·         Scrum Master according to Williams (2007) is the person who should know and reinforces the product iteration and goals and the Scrum values and practices some of the responsibilities by conducting daily Scrum Meetings and  iteration demonstrations.
·         Developer is a member of the Scrum team.
As indicated in Williams (2007) there are three main artifacts produced by the Scrum teams and all of these are openly accessible and intentionally visible to the Scrum Team members .
·         Product Backlog
·         Sprint Backlog
Sprint Burn down chart. 

The scrum process:
According to Williams (2007) a Sprint Planning meeting is held with the development team, management, and the Product Owner. During a Sprint, code is integrated and regression tested daily. Short, 15-minute Scrum Meetings are held daily. While others (such as managers) attend to the Sprint Meeting, only the team members and the Scrum Master can speak. Each team member answers the following questions:
·         What have you done since the last Scrum?
·         What will you do between now and the next Scrum?
·         What got in your way of doing your work?
As indicated in Williams (2007) at the end of a Sprint, a Sprint Review takes place to review progress, and demonstrate the latest version of the product to the product owner and other interested stakeholders. The cycle continues with a Sprint Planning meeting taking place to choose the features for the next Sprint.



No comments:

Post a Comment