Let’s try to understand about Agile Development Methodology and User Stories. In general, a development methodology is nothing but the process followed to develop a software in a step-by-step manner. Agile itself is just a newer, best-of-breed collection of methodologies used to develop and maintain software. The Agile movement proposes alternatives to traditional project management. Agile approaches are typically used in software development to help businesses respond to unpredictability. Figure 1.1 explains the typical life cycle of Agile Development Methodology.
To understand the differences between traditional ‘Code and Fix’ or big-bang approach of software development and Agile Development let’s compare it with a traditional waterfall development method.(Ambler & Holitza, 2012)
Agile development provides opportunities to assess the direction throughout the development life-cycle(Ambler & Holitza, 2012). This is achieved through regular cadences of work, known as Sprints or iterations, at the end of which teams must present a potentially ready to release product increment. By focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology is described as “iterative” and “incremental.” The waterfall method assumes that every requirement can be identified before any design or coding occurs. Hence, in the waterfall model, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited. When a team stops and re-evaluates the direction of a project every two weeks, there’s time to steer it in another direction. This “inspect-and-adapt” approach to development greatly reduces development costs and time to market.(Ambler & Holitza, 2012)
Agile methodology can be applied to develop many kinds of systems, including web-based applications, mobile applications, business intelligence (BI) systems, life-critical systems, and embedded software (Wikipedia, 2014). Organizations, including financial companies, retailers, healthcare organizations, manufacturers, and government agencies have adopted agile approaches.(Smith, 2010)
My Experience with Agile and User Stories
I am working on a encryption project and the team I am working with uses Agile methodology, As I studied Agile as a part of my CS200W course, it helped me lot to execute Agile methodologies while working on a real time project. We converted the requirements from customer into user stories. User stories, as explained below, precisely state what the business needs to do. As the requirements are precisely defined, the overhead associated with rework for changed requirement substantially decreases. I have personally experience this while working on encryption project. Let me quote example user story. As a user of encryption project
- I want to store the information on my disk drive securely
- I want the encryption to complete within maximum of 60 second window, irrespective of volume of data
- I want to be able to encrypt the data on secondary disk and/or removable disk
What are User Stories?
A User Story is nothing but one or more sentences in everyday or business language, which will define what a user does or needs to do as part of his or her job function.User stories are used with Agile software development methodologies as the basis for defining the functions a business system must provide, and to facilitate the management of requirements. It captures the ‘who’, ‘what’ and ‘why’ of a requirement in a simple, concise way, often limited in detail by what can be hand-written on a small piece of paper. Here are some examples of User Stories. (Smith, 2010)
As a user of banking software I want to
- Check my account balance
- Transfer money across continents
- Pay my telephone bills online
As a user of Vehicle Insurance software I want to
- Check my insurance claim history
- Add a driver to my insurance
- Pay my insurance bills
As shown in figure 1.2, a user story is used for planning and developing the software. Acceptance test is performed at each stage in development. Iteration Planning can easily be done with the help of user stories.
Agile Methodology Blog(2011). Agile Methodology. Retrieved from http://bit.ly/1gGB5dE
Wikipedia(2014). Agile Software Development. Retrieved from http://bit.ly/1eV8cZ5
Smith (2010). Garren Smith Blog. Retrieved from http://bit.ly/1pFNdmq
Ambler & Holitza (2012). Agile For Dummies®, IBM Limited Edition. Hoboken, NJ : John Wiley & Sons, Inc.