User Stories are part of an Agile approach that helps shift the focus from writing about requirements to talking about them. All Agile User Stories include a written sentence or two and, more importantly, a series of conversations about the desired functionality.
User Stories provide a light-weight approach to managing requirements for a system. User Stories are short, simple descriptions of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system. They typically follow a simple template:
As a <type of user>, I want <some goal> so that <some reason>.
User Stories are often written on index cards or sticky notes, stored in a shoe box, and arranged on walls or tables to facilitate planning and discussion. As such, they strongly shift the focus from writing about features to discussing them. In fact, these discussions are more important than whatever text is written.
Read More »
The Development Team is made up of the professionals who do the work of delivering the Product Increment. They self-organize to accomplish the work. Development Team members are expected to be available to the project full time.
Traditional software development approaches define various job types, such as architect, programmer, tester, database administrator, UI designer, and so on. Scrum defines the role of Development Team, which is simply a cross-functional collection of these types of people. The Development Team’s members, collectively, have the skills required to deliver the business value requested by the Product Owner. Whenever you can, you should create cross-functional teams. Parcelling the work out to different role-specific teams is suspect and is likely a serious impediment to the successful use of Scrum.
At the beginning of each Sprint, the Development Team participates in Sprint Planning. In collaboration with the Product Owner and with facilitation from the Scrum Master, the Development Team helps to establish the goal for the next sprint.
Read More »
At the end of each Sprint, the Scrum Team meets for the Sprint Retrospective. The purpose is to review how things went with respect to the process, the relationships among people, and the tools. The team identifies what went well and not so well, and identifies potential improvements.
The Sprint Retrospective is one of the most important and least appreciated practices in the Scrum framework. It is important because it gives teams the chance to customize Scrum to their unique circumstances. It is under-appreciated because some people have a misguided view that it takes time away from doing “real” design, build, and test work.
The Sprint Retrospective is a crucial contributor to the continuous improvement that Scrum offers. Scrum teams hold Retrospectives each and every sprint, allowing teams to take advantage of insights and data before they are lost. Because a Scrum Team meets at the end of each Sprint to inspect and adapt its Scrum process, it can apply early and incremental learning throughout the development process and thereby significantly affect the outcome of the project.
Read More »
Near the end of the Sprint, the team conducts two important inspect-and-adapt activities: the Sprint Review and the Sprint Retrospective. The Sprint Review focuses on the product itself. The Sprint Retrospective, on the other hand, looks at the process the team is using to build the product.
During Sprint Planning we plan the work. During Sprint Execution we do the work. During Sprint Review we inspect (and adapt) the result of the work – the Potentially
Shippable Product Increment. The Sprint Review occurs near the end of each Sprint cycle, just after Sprint Execution and just before – or occasionally after – the Sprint Retrospective.
The Sprint Review gives everyone with input to the product development effort an opportunity to inspect and adapt what has been built so far. The Sprint Review provides a transparent look at the current state of the product, including any inconvenient truths. It is the time to ask questions, make observations or suggestions, and have discussions about how to best move forward given current realities.
Demonstrates what was achieved in the Sprint and collect feedback
Whole team participates
Invite anyone and everyone
Read More »
The Daily Scrum is a critical, daily inspect-and-adapt activity to help the team achieve faster, more flexible flow towards the solution. All Scrum meetings are time boxed. The Daily Scrum is a fifteen minutes activity that takes place once every 24 hours. The Daily Scrum serves as an inspection, synchronization, and daily adaptive planning activity that helps a self-organizing team do its job better. The Daily Scrum is a core Scrum practice. If you don’t do it, you aren’t doing Scrum.
The goal of the Daily Scrum is for people who are focused on meeting the Sprint Goal to get together and share the big picture of what is happening so that they can collectively understand how much to work on, which items to start working on, and how to best organize the work among the team members. The Daily Scrum also helps avoid waiting. If there is an issue that is blocking flow, the team would never have to wait more than a day to discuss it. Imagine if the team members got together only once a week—they would deny themselves the benefits of fast feedback.
Read More »
In Scrum, work is confined to a regular, repeatable work cycle, known as a Sprint or Iteration. Scrum Sprints are fixed intervals, ranging from one week to one month with preference to shorter periods. Working within the boundaries of such an accelerated time-frame, the team would only be able to build the most essential functionality.
A Release is typically composed of multiple Sprints, each of which delivers customer or user value. Every Sprint begins with Sprint Planning, a time when the Scrum Team gathers to agree on a Sprint Goal and determine what it can deliver during the forthcoming Sprint.
Sprint Execution accounts for the majority of time during a Sprint. It begins after Sprint Planning and ends when the Sprint Review starts. On a two-week-long Sprint, Sprint Execution might account for about eight out of the ten days.
Sprint Execution is the work the Scrum Team performs to meet the Sprint Goal. During the Sprint, the Development Team self-organizes to produce a Product Increment in accord with the Sprint Backlog, as determined during Sprint Planning. Self-organizing means that the team responsibly produces the Product Increment in accord with all the organization’s standards, according to the Definition of Done, and that the Development Team determines just how to go about that.
The Scrum Master participates as the coach, facilitator, and impediment remover, doing whatever is possible to help the team be successful. The Scrum Master doesn’t assign work to the team or tell the team how to do the work. A self-organizing team figures these things out for itself.
The Product Owner must be available during sprint execution to answer clarifying questions, to review intermediate work and provide feedback to the team, to discuss adjustments to the Sprint Goal if conditions warrant, and to verify that the acceptance criteria of Product Backlog Items have been met.
Read More »
The Product Owner is the empowered central point of product leadership. It is one of the three collaborating roles that constitute every Scrum Team (the others being the Scrum Master and the Development Team).
The Product Owner needs to look in at least two directions simultaneously. On one hand, the Product Owner must understand the needs and priorities of the organizational stakeholders, the customers, and the users well enough to act as their voice. In this respect the Product Owner acts as a product manager, ensuring that the right solution is developed. On the other hand, the product owner must communicate to the Development Team what to build and the order in which to build it. The product owner must also ensure that the criteria for accepting features are specified and the tests that verify those criteria are later run to determine whether the features are complete. The product owner doesn’t write detail-level tests but ensures that the high-level ones are written so that the team can determine when the product owner will consider the feature complete. In these respects the product owner is part business analyst and part tester.
Read More »
The Scrum Master is one of the three roles that constitute every Scrum Team (the others being the Product Owner and the Development Team). While the Product Owner is focused on building the right product and the Development Team is focused on building the product right, the Scrum Master is focused on helping everyone understand and embrace the Scrum Values, principles, and practices. The Scrum Master acts as a coach to both the Development Team and the Product Owner. A Scrum Master also provides process leadership, helping the Scrum Team and the rest of the organization develop their own high-performance, organization-specific Scrum approach.
The Scrum Master is a servant leader, helping the rest of the Scrum Team follow their process. The Scrum Master must have a good understanding of the Scrum framework and the ability to train others in its subtleties.
The Scrum Master works with the Product Owner to help the Product Owner understand how to create and maintain the Product Backlog. He works with the Development Team to find and implement the technical practices that will allow them to get the job done at the end of each Sprint. He works with the whole Scrum Team to evolve the Definition of Done. The Scrum Master continuously helps the Scrum Team improve the process, whenever possible, to maximize delivered business value.
Read More »
Each Sprint begins with a time boxed meeting called Sprint Planning. In this meeting the Scrum Team collaborates to select and understand the work to be done in the upcoming Sprint.
The entire team attends the Sprint Planning meeting. Working from the ordered Product Backlog, The Product Owner and the Development Team members discuss each item and come to a shared understanding of that item and what is required to complete it consistent with the current Definition of Done.
In Scrum, the Sprint Planning meeting is described as having two parts.
Choose Goal: the Team and the Product Owner collaborate to decide how much of the prioritized backlog can be turned into potentially shippable functionality.
Create Sprint Backlog: the Team defines the tasks required to build that functionality during the next Sprint, including estimates to achieve the Definition of Done.
Read More »
Product Backlog is a prioritized list of desired product functionality.
The Product Backlog provides a centralized and shared understanding of what to build and the order in which to build it. It is a highly visible artifact at the heart of the Scrum framework that is accessible to all project participants. It is the single source from which all requirements flow. This means that all the work the Development Team does comes from the Product Backlog.
Read More »
All work performed in Scrum needs a set of values as the foundation for the team’s processes and interactions. And by embracing these five values, the team makes them even more instrumental to its health and success.
Read More »
Scrum is an Agile framework for developing innovative products and services, for organizing and managing work. Scrum begins when some stakeholders need a product. The Scrum framework is based on a set of values, principles, and practices that provide the foundation to which your organization will add its unique implementation of relevant engineering practices and your specific approaches for realizing the Scrum practices. The result will be a version of Scrum that is uniquely yours. Scrum is a refreshingly simple, people-centric framework based on the values of honesty, openness, courage, respect, focus, trust, empowerment, and collaboration. The Scrum practices themselves are embodied in specific roles, activities, artifacts, and their associated rules. Read More »
Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.
The term of ‘Agile’ was coined in 2001 when 17 practitioners of lighter software development methods met at a ski resort in Snowbird, Utah to discuss better ways of delivering. They produced the Agile Manifesto to describe the key differences between the Agile way of working in comparison to more traditional ways of working.
Read More »