Remember Arti asked me to develop an application for her mobile. Now she is my wife… housewife… all time free. So you can imagine my condition until I complete her application.
Everyday in the morning, when I get ready to my office, she asks me how much I have completed the application. I already had committed the date but she want to be update with what I am doing. Well!! for her satisfaction and my productive work I divided the whole task in small pieces. Each piece is called 1 story.
For each story, I write what I will complete in this story. This is called acceptance criteria. I never make a story longer. During the work if I find that some more points should be added to story, I combine them and create another story. It doesn’t affect my current work.
Now I decide how many stories I can complete in a define time period, say 1 week. This period is called Sprint. After each sprint, I demo to Arti what I have done.
I have made some buckets/columns on a black board: Backlog, To Do, In progress, In Testing, Done.
Initially all stories of a sprint falls into first column ie To Do. I pick one of them and start working on that. Before this I move it to In progress column. Once I complete the story, I move it to In testing column. Arti starts testing these stories. It keeps her busy with testing and makes me relaxed to work on next story. She feels that I am busy with her application. So she disturbs me but less. But if she finds any bug with any story, she moves it to To Do bucket again and shout on me what the hell I made. Her voice pitch is in exact sync with bug size
I pick those bugs after completing current story and finish such bugs in current sprint only.
Rest stories which are not started yet and will be picked in further sprint not current one, falls to backlog column. Stories which are completed are marked as done.
Agile development says
- Break down the requirement in steps. Complete one step, test it, and switch to the next.
- Let client interact with you to know development status.
- Be ready if client remove or modify an existing requirement. Or he adds something new in previous requirement.
- Let the client give feedback on last step you completed. It’ll make your system bugfree. And you’ll require less effort on maintenance.
To follow above points;
- Management needs to be involved to interact with client.
- Client needs free time to pull your leg.
- You require more time for iterative testing.
- You are supposed to deliver the project on fix date. Otherwise the client will cut your throat.
- You can start development with rough but precise diagrams & documentation.
Have I missed something? Yes technical terms. Wiki it.
Now I hope you are ready to face interview questions related to Agile Methodology. When you’ll be practically involved in this, you’ll really enjoy it.
*It seems very similar to waterfall model. But remember in Agile development, client can call you any time even If you are on candle light dinner with your lovable.