What is Agile ?
Agile is one of the biggest IT buzz words today. Putting it in simpler words , Agile is a methodology for software development process which follows a incremental approach.Agile methodology has become more popular and success than any other software development methodology today.To understand why agile has become very popular we have to understand other old software development methodologies. One of the first among those software development methodologies are (Ambler & Holitza,2012,page 4)
- Code-and-fix/Big Bang development : In this method the code was written and then later fixed the bugs as they were found.The software was all delivered at once and it became more complicated as the amount the of the code grew
- Waterfall : To overcome the problems of Code-and-fix model , the waterfall model has come up with specific stages as Requirements ,design , development , integration , testing and deployment.This is a sequential process and going back to the previous stage is not possible and the software development process has to started all over again . One of its problems are its risky to implement a waterfall model for a long project which business needs change . Its limited flexibility and reduced customer involvement makes it not so preferred methodology for software development process.
- The Spiral model : The Spiral model is both incremental and iterative and this archetype followed something closer to the Waterfall model
In February of 2001 , a group of developers developed a lightweight development methodology which is known as agile.
The Agile Manifesto :
The Agile manifesto can be better understood from the following figure which simply stresses four values :
We implemented the following principles in our project : (“Principles Behind the”,2001).
1. The highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity — the art of maximizing the amount of work not done — 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 and then tunes and adjusts its behavior accordingly.
The main participants or the roles under the agile methodology are Stakeholder , Product Owner ,Team member, Team lead, Architecture Owner, Agile mentor.
Agile Planning :
Five levels of Agile planning can be described and understood as below :
Now lets try to understand about Creating user Stories :
A user story is a simple description of a product requirement in terms of what that requirement must accomplish for whom. Your user story needs to have, at a minimum, the following parts:(Layton ,2010,para 2).
✓ Title: <a name for the user story>
✓ As a <user or persona>
✓ I want to <take this action>
✓ So that <I get this benefit>
A very simple example of an agile story is ” As a mom , I want to take and share pictures and videos of my kids so that i can share important moments with grandparents, aunts , uncles & other friends. Where as a typical user story for a software design might look like this :(Ewel,2011,para 3).
The above example best describes what a user story is . Good user stories can also be used for writing test documentation and user documentation.
- Jalali,S.Wohlin,C.(2010).Agile Practices in Global Software Engineering – A Systematic Map. International Conference on Global Software Engineering (ICGSE). New Jersey,NJ: Princeton.
- Ewel,J.(2011,November 16).User stories in agile marketing Part 2.Agile Marketing. Retrieved from http://www.agilemarketing.net/user-stories-agile-marketing-part-2/
- Writing user stories for agile projects. (2009,20 May).Breathingtech.com. Retrieved from http://breathingtech.com/2009/writing-user-stories-for-agile-scrum-projects/
- Principles behind the agile manifesto.(2001). Retrieved from http://agilemanifesto.org/principles.html
- Layton,M.C.(2010).The four components of an agile user story.Retrieved from http://www.dummies.com/how-to/content/the-four-components-of-an-agile-user-story.html
- Ambler,S.W. & Holitza,Matthew.(2012) Agile for Dummies,IBM limited Edition.New Jersey,NJ: Wiley.