I will present some Agile terms & explanations in this post. Before getting into explanation, let us review couple of important questions.
Question: I know all tools, processes & familiar with practices of Agile methods. Can I go ahead and follow Agile in my Project today?
Answer: Nope. Agile is more than just mere practices & terminologies. Agile is a mindset. It requires a change in work culture which boils down to organization culture. Agile advocates bringing people together in single platform (by a shift in the mindset) than just following the defined processes.
Agile Manifesto’s first statement says “Individuals and interactions over processes and tools”
Agile is flexible in terms of processes, tools and you are free to customize/tailor-made them based on your project need. But it is requires constant interaction & collaboration between people with mindset to deliver value to customer through developing usable working software. That is the complex part everyone forgets to appreciate in early stages of Agile adaption & struggle with failures later on.
Question:Why Agile is a great phenomenon you should follow in current economic trend?
You can consider following Agile methodology due to following reasons:
1. Even if you fail, you will fail faster & fail cheaper
2. Providing value to customer by providing important features fast so ROI will be better
3. Will get faster feedback which is good to take corrective steps well ahead before it becomes blunder later on
“Daily Scrum” is a short (approx. 10 – 15 minute), daily recurring, stand up, status meeting conducted mandatorily during the sprint & everyone expected to attend including Scrum Master. Scrum team need to answer 3 questions –
- What happened yesterday?
- What is the work plan for today?
- What are the obstacles exist?
All answers should focus on status based user story and no general discussions.
“User Story” is Scrum term for user requirements. It has short descriptions of user/customer valued functionality that is used for planning & act as reminders to have conversations with customers.
A user story generally has 3 sections: <Who>, <What>, <Why> of a functionality.
Example: As a <Who:Manager> I need to <What:view orders submitted to me> So that <Why:I can take action on those very fast>.
(I)ndependent – No dependency with other stories so that it can be executed in any order & can be prioritized based on value to the organization.
(N)egotiable – User stories are functional requirements in business terms but they are not contractual agreements. Details can be negotiated & modified in a dialogue between customer and dev team.
(V)aluable– Understanding value of a functionality is useful in prioritizing & delivering top features during initial iterations. Value of user story captured insection.(E)stimatable – Developers need to come up with time to complete each user story, so it should be estimatable.(S)mall – User story needs to be small enough so that it can be accommodated in an iteration. Big user stories are called ‘Epics’ that may contain a 1) complex user story 2) compound (multiple) user story. Epics can be divided into multiple smaller independent user stories.(T)estable – User stories should contain information with which test cases can be generated without much confusion & decision of done can be arrived.
1. The user cannot decompose a story into more end-to-end stories, meaning stories that touch all the layers of the application.
2. The team can derive tasks, ranging from 4 to 8 hours, to start their development work.
3. It’s possible to estimate the “point” of the story. 
(C)onsistent: A consistent requirement does not conflict with another requirement.
(U)nambiguous:The reviewers of a requirement statement should be able to draw only one interpretation of it, regardless of their role.(T)estable: We should be able to create test cases for a requirement. If a requirement is not testable, trying to determine whether it is correctly implemented is a matter of opinion.(F)easible: It must be possible to implement each requirement within the known capabilities and limitations of the system environment.(I)ndependent: No “user story” should be dependent on another “user story”.(T)raceable: You should be able to link each requirement to a user and to his goals.
“Sprint” is Scrum iteration time length(typically 1 – 4 weeks) in which development team work on certain prioritized set of backlog items and produce some tangible value to the customer. Sprints are time-boxed & should have same length throughout till the final product delivery. Generally, no scope change is allowed within a sprint but modification user story can be prioritized and included in subsequent sprints.
Each concept in Agile Scrum has one or more benefits (of course any item in this world also have drawbacks too!!!). Here are few benefits behind timeboxing of sprint –
* As Agile focuses on delivering value to customer, timeboxing compels prioritization of work that in turn increases focus.
* Whatever be the status of user stories, sprint comes to end exactly on timeboxed end date, so team focuses on completing all user stories planned for the sprint otherwise it will be added to next sprint.
* As number of items taken in hand (# of user stories) are limited in a sprint so items under development status will also be in limited number.
User stories are planned either by number of days or story points. If total product backlog measured as 150 story points & each Sprint length is determined as 30 story points (based on team’s comfort-ability in delivering the potentially shippable product increment), then there will be 5 Sprints/iterations (5 Sprints * 30 story points) for product completion. User stories that add up to 30 story points can only be planned in one sprint. At the end of each sprint, goal set for the sprint is achieved based on agreed definition of done.
One can give a day long lecture about “Product Backlog” as it is the heart of the Scrum framework. Let me put concise explanation about it.
The product backlog is a prioritized list of desired product functionality. It is a highly visible artifact that is accessible to all project stakeholders. A PB item can be a feature, change in existing
(D)etailed Appropriately:User stories on the product backlog that will be done soon need to be sufficiently well understood that they can be completed in the coming sprint. Stories that will not be developed for a while should be described with less detail.(E)stimated: The product backlog is more than a list of all work to be done; it is also a useful planning tool. Because items further down the backlog are not as well understood (yet), the estimates associated with them will be less precise than estimates given items at the top.
(E)mergent: A product backlog is not static. It will change over time. As more is learned, user stories on the product backlog will be added, removed, or re-prioritized.
(P)rioritized: The product backlog should be sorted with the most valuable items at the top and the least valuable at the bottom. By always working in priority order, the team is able to maximize the value of the product or system being developed.
Defining & documenting product backlog item is called Grooming. Amount of work in a product backlog is executed in multiple iterations called Sprint & sprint backlog is created with subset of high-priority items in the product backlog. At the end of a sprint, in case any item is still pending or new items found they will be inserted into product backlog in the correct order to be worked on in a future iteration.
- Essential Scrum: A Practical Guide to the Most Popular Agile Process By: Kenneth S. Rubin, 2012
- Becoming Agile: … in an imperfect world By: Greg Smith; Ahmed Sidky, 2009
- Scrum® in Action: Agile Software Project Management and Development By: Andrew Pham, 2011