Tuesday, December 25, 2012

Learning Agile

People often think the goal of testing should be to simply find all the bugs. Well, that’s not entirely realistic. Actually, it’s impossible.  Despite the title of “quality assurance” testers can never truly assure quality, nor can they be expected to find every bug. The real goal of testing should be to improve the software. This is a widely held view of testing in the Agile world. Agile is totally based on well known Agile Manifesto. Here is the summary of the fundamental principle of Agile Manifesto:

                                        Individuals and interactions over processes and tools
                             Working software over comprehensive documentation
                             Customer collaboration over contract negotiation
                             Responding to change over following a scheduled plan
 
In Agile functionality are released in smaller cycles, and work is performed in highly collaborative manner by self organizing teams that embrace and adapt changes to ensure that customers need are truely met. The Agile team adapt to the dynamic changing conditions by breaking a release into smaller short cycles of 1-6 weeks,each cycle is known as iteration or Sprint and is like a miniature software project. Agile methodology emphasizes real time communication preferably face to face. The most broadly acceptable techniques introduced by the agile process is to express product requirements in the form of user stories. Each user story has various fields including an actor, a goal or task they need to perform, an explanation of why it is needed and associated value and corresponding priority.
 
Let us define SCRUM, it is a project management methodology to facilitate agile software development and enable the creation of self organizing agile teams. A Scrum Master is like a traditional project manager in the sense in the sense that he/she oversees the centralization of team communication, requirement, schedules and projects. Unlike the traditional Project Manager ScrumMaster does not direct the team, because the Agile team is based on the philosophy of team member is commited to other team member and not the management authority.
Phases of Agile Project using SCRUM:
 
1. KickOff Meeting:  Everybody in the team  should review the product backlog (master list of requirements that the individual product owner has drafted in the form of user stories). The KickOff Meeting is more of an story writing workshop in which stories are selected and then decomposed into programmable task along with the time estimates for its completion.
 
2. SPRINT/Iteration Planning: Team collectively decides sprint goal and sprint backlog. The ScrumMaster role is to maintain the backlog list based on the team feedback and consensus and building personal commitment among the team members.
 
3. Scrum Meetings: The scrum meetings last usually less than 30 mins and the main objective of the meeting is to answer three questions: what have I accomplished since the last meeting,what am I working on and what are the future road blocks.
 
4. Final Acceptance Meeting: Presenting a demo to the customer/client what the team has accomplished.
 
5. Sprint Retero Meeting: Similar to the postmortem meeting of the traditional projects so that team gets together to what works well and what are the improvement area for the future projects.

No comments:

Post a Comment