Agile – Scrum Framework
As I was saying in my previous article, Scrum is an Agile Framework. In other words, a set of rules that are followed in order to implement a product in an Agile environment.
In Scrum, teams work in sprints that usually take like two to four weeks. Each sprint is preceded by a Planning Meeting that has the purpose of prioritizing backlog tasks. During development, the tasks are moved from one status to another into a Scrum Board, that is used to track the evolution of the sprint. At the end of the sprint, the finished tasks are moved into the production environment, and the unfinished ones are moved back to backlog.
Scrum is defined by three main notions: Scrum Principles, Scrum Aspects and Scrum Processes
- Empirical Process Control – emphasizes the core philosophy of Scrum based on three ideas: transparency, inspection, and adaptation.
- Self-organization – focuses on the idea that workers deliver better results when self-organized and this always translates into a happy customer
- Collaboration – focuses on the three dimensions related to collaboration: awareness, articulation, and appropriation
- Value-Based Prioritization – highlights the focus of Scrum on delivering maximum business value, as soon as possible during the Software Development Life Cycle
- Time-Boxing – describes how time is considered a limiting constraint in Scrum, being used to help manage project planning and execution in a way that best suits the project
- Iterative Development – emphasizes how to manage changes in a better way and so that we build products that are as close as possible to what the customer wants.
- Organization – Understanding the roles and responsibilities in a project project which follows the Scrum framework is crucial for a successful implementation of it.
- Business Justification – It is important that the organization performs a complete and accurate business assessment before starting any project. This helps the people in charge with making decisions to understand why there is a need for change of a product, to be aware of the justification of that change and the team capacity to accomplish this change taking into account given resources.
- Quality -In Scrum, quality is defined as the ability of a product that was developed to meet customer expectations and to accomplish the requirements defined in the business analysis phase.
- Change – Every project, regardless of its method or framework used, is prone to change. It is mandatory that the product development team clearly understands that in Scrum there is always room for change
- Risk – this is a concept defined as an uncertain event that can affect the software development process or the good functionality of a product in a good way or a bad way.
Scrum has a total of 19 processes grouped into five phases as follows:
- Create project vision – The project business case is reviewed to create a Project Vision Statement and the Product Owner is identified.
- Identify Scrum Master and Stakeholders – Based on some selection criteria, the Scrum Master is identified and assigned, as well as the stakeholders (people who are interested one way or another in the product)
- Form Scrum Team – Scrum team members are identified, usually by the product owner. Sometimes, the Scrum Master can also be involved into this process.
- Develop Epics – In this process, the Project Vision statement serves as a basis for creating the Epics (large, unrefined user stories) during what it is called User Group Meetings
- Create a Prioritized Product Backlog – Epics are refined into more specific details and prioritized according to their importance for the project. Also the ‘Done’ criteria (a set of rules that are applicable to all User Stories in a given Sprint)
- Conduct release planning – Scrum Core Team reviews the User Stories in the Prioritised Product Backlog to develop a Release Plannning Schedule.
b) Plan and Estimate
- Create User Stories – User stories and their respective Acceptance Criteria are defined and then incorporated into the Prioritized Product Backlog. User stories are usually written by the product owner and are designed to ensure that the customer requirements are very well understood.
- Approve, Estimate and Commit User Stories – In this process, the product owner approves the user stories for a sprint, and the Scrum Master and Scrum team estimate the effort required in order for the functionality to be created. The Scrum Team commits to develop the customer requirements in the form of Approved, Estimated, and Commited User Stories.
- Create Tasks – The Approved, Estimated and Commited User Stories are compiled into a Task List, usually during a Task Planning meeting.
- Estimate Tasks – The Scrum Core Team estimates the effort required to accomplish each task in the Task List, during a Task Estimation Workshop, creating an Effort Estimated Task List
- Create Sprint Backlogs – In this phase, the Scrum Core Team creates a Sprint Backlog during Sprint Planning Meetings. A sprint Backlog contains all the tasks that should be completed in the sprint.
- Create Deliverables – The Scrum Team Works on the tasks in the Sprint Backlog to create Sprint Deliverables. The progress of the work and activities are recorded into a Scrum Board. Issues encountered by the Scrum Team may be updated into an Impediment Log.
- Conduct Daily Standup – A daily meeting is conducted, having the purpose to let the other team members know about their progress and eventual impediments in finishing the tasks
- Groom Prioritized Product Backlog – The prioritized product backlog is updated and mantained during a prioritized backlog review meeting, in which any changes or updates of the backlog are discussed.
d) Review And Retrospect
- Convene Scrum of Scrums – Scrum Team representatives convene for Scrum of Scrum meetings in which they collaborate and track their respective progress, impediments and dependencies across teams. This Scrum of Scrum meeting is only relevant when there is more than one Scrum Team involved in large projects
- Demonstrate And Validate Sprint – In this process, the Scrum Team demonstrates the Sprint Deliverables to the product owner and the relevant stakeholders in a sprint review meeting. The purpose of a Review Meeting is to secure approval and acceptance of the product or service by the product owner
- Retrospect Sprint – In this process, the Scrum Master and Scrum Team meet in order to discuss lessons learned, which will be documented for further reference. The result of this phase can be some Agreed Actionable Improvements or Updated Scrum Guidance Body Recommendations.
- Ship Deliverables – Accepted Deliverables are delivered or transmitted to the relevant stakeholders. The successful completion of the sprint is documented into a formal Working Deliverables Agreement.
- Retrospect Project – In this process, organizational stakeholders and Scrum Core Team members assemble to retrospect the project, identify, document and internalize the lessons learned. The lessons might lead to documentation of Agreed Actionable Improvements to be implemented in future projects.
- Tasks Status
a) Backlog Tasks – A set of functionalities that need to be implemented, gathered into a Management Software in order to have a complete view over what is to be created. The backlog functionalities are collected into a series of tasks that have a status with the same name: backlog. These are the start point in the actual development process. I will try to explain this backlog in terms that are more understandable. Let’s suppose that you bought a house and you want to equip it with some furniture, but you do not have all the money to buy it all at once. So you make a list with items that you wish to buy, imagining how your house will look like. These are the backlog items.
b) To Do Tasks – Now, after creating that list, you want to schedule them on periods. You plan to buy the couch and the chairs in November, the table in January, the kitchen furniture in March etc. I will call these periodes as Sprints. So, the first of November comes, and you mark the November items as To Do. Meaning that you are going to buy them in the close future, but you haven’t started yet. The first sprint starts.
c) In Progress Tasks – Then, on the 15th of November you decide to start shopping, and go buy the couch. At this point, you mark “buying a couch” on your list as In Progress, because you already started searching for a couch.
d) Done Tasks – You have finally found it, and bought it, so you mark “buying a couch” on your list as “Done“.
e) Next, you want to start searching for chairs, but you realise that the couch was very expensive and there were no money left for the chairs, so you change back the status of “buying chairs” on your list to “Backlog“. So basically, this is all you could do of your November plans, meaning that the November sprint has finished, and next sprint is to start.
2. Scrum roles
In Scrum, the roles are divided into two categories:
a) Core Roles
- Product Owner – the person responsible for achieving maximum business value for the project. The Product Owner represents the Voice of the Customer
- Scrum Master – a facilitator who ensures that the Scrum Team is provided with an environment suitable for the completion of the project successfully
- Scrum Team – the group or team of people who are responsible for understanding the requirements specified by the Product Owner and creating the Deliverables of the project
b) Non-Core Roles
- Stakeholders – a collective term that includes customers, users, and sponsors who frequently interract with the Scrum Core Team, and influence the project throughout the project’s development life cycle
- Scrum Guidance Body (SGB) – an optional role, which generally consists of a set of documents and/or a group of experts who are typically involved with defining objectives related to quality, government regulations, security, and other key organizational parameters.
- Vendors – people who provide products and/or services that are not within the core competencies of the project organization
3. Scrum Artifacts
Scrum defines a series of artifacts that are useful throughout the development process:
From these artifacts, there are three that are defined as primary artifacts in a Scrum framework:
- Product Backlog – an ordered list of features that are needed as part of the end product and it is the single source of requirements for any changes to be made to the product
- Sprint Backlog – A set of Product Backlog items selected for the current Sprint, plus plans for delivering product increments for achieving Sprint goals
- Increment – The sum of all the Product Backlog items completed during a Sprint combined with the increments of all previous Sprints
Basically these are some basic information about Scrum Agile Framework. I have taken the information about Scrum processes and roles from the SBOK.
You can also use the Scrum guide as a refference for studying Scrum.
I will be back with some detailed explanation about the above terms. Till then, I wish you a magnificent week and good luck with studying Scrum. 🙂