The Scrum Framework :
- The Scrum Framework consists of Scrum Teams and their associated events, artifacts, and roles as defined in the Scrum Guide.
- According to the Scrum Guide, mandatory rules and principles of Scrum are Scrum Roles, Scrum Events, Sprint Goal, Product Backlog, Sprint Backlog, Increment, Definition of Done, and Monitoring progress in Sprint and Project levels. Other things are practices that can be employed in the Scrum framework and are up to the team and project and are not mandatory.
The Scrum roles :
- Product Owner
- Development Team (Developers)
- Scrum Master
The Scrum artifacts :
- Artifacts represent work or value to provide transparency and opportunities for inspection and adaption.
- Artifacts are defined by Scrum and designed to maximize transparency of key information so that everybody has the same understanding.
- Product Backlog
- Sprint backlog
The Scrum events :
- Sprint Planning
- Daily Scrum
- Sprint Review
- Sprint Retrospective
- The Sprint is the container for all events
- According to the Scrum Guide, mandatory rules and principles of Scrum are Scrum Roles, Scrum Events, Sprint Goal, Product Backlog, Sprint Backlog, Increment, Definition of Done, and Monitoring progress in Sprint and Project levels. Other things are practices that could employ in the Scrum framework and are up to the team and project and are not mandatory.
- Increment is a piece of working software that adds to previously created Increments, where the sum of all Increments – as a whole- form a product.
- Increment is a body of inspectable, done work that supports empiricism at the end of a Sprint.
- Each Increment is additive to all prior Increments and thoroughly tested, ensuring that all increments work together.
- Increment is a fully functional piece of working software, that adds value to previously created increments.
- Increment is typically the result of a sprint.
- Increment is a potentially delivery of product in ‘done’ segment in order to ensure a potentially useful version of the product always available.
- The product increment should be usable and potentially releasable at the end of every Sprint, but it does not have to be necessary “released” by the Product Owner.
Incremental approach :
- Delivery of “Done” insures that there is always a useful version of working product available.
- The Development Team tries to produce a done usable and potentially shippable and releasable Increment and piece of working software at the end of each Sprint.
- On the other hand, finishing their tasks does not necessarily mean they will create a releasable Increment because they may miss some tasks for converting the selected Product Backlog Items into a done Increment.
Definition of Done (DoD) :
- The Definition of Done is the commitment for the Increment.
Definition of Done purpose :
- At the end of a Sprint an increment MUST be done and usable meeting the Scrum Teams Definition of Done.
Definition of Done concept :
- Definition od Done is a shared understanding of expectations that software must live up to in order to be releasable into production.
- Definition of Done is a concept with a set of requirements that should be applied to a feature in order to be called as complete. On the other hand, Acceptance Criteria or Conditions of Satisfaction contains a list of scenarios that should be passed to ensure that the feature is working as expected. The difference is that there is one Definition of Done for the product and is common for all features but there is a separate and specific Acceptance Criteria for each feature. Passing Acceptance Criteria would be an item of the Definition of Done.
- Definition of Done is a fundamental concept of Scrum which creates a common understanding of when work is complete, helps developers understand how many Product Backlog items they can select for each Sprint, and increase transparency. In addition, it can be considered as a development process and can be contained many things such as quality criteria, metrics, non-functional requirements, etc.
- The definition of done is a shared understanding of what done means and guides the Development Team in knowing how many Product Backlog items it can select during a Sprint Planning. Note that satisfactory tests for each PBI are named acceptance criteria that passing it could be one part of the definition of done.
Definition of Done benefits :
- A Good Definition of Done provides:
· Guidance on the specific Patterns to be implemented in Code.
. Communicates to the Development Team about the Quality Standard needed.
- A shippable Increment is created by the end of the Sprint
- A Good Definition of Done guides the developers:
a way to express the coding standards to address and proven technical debt
clear understanding of the quality expectations of the team
The Definition of “done” helps guide the Development Team in knowing how many PBIs it can select during Sprint Planning.
Definition of Done creation :
- If the Definition of “Done” for an increment is part of the conventions, standards, or guidelines of the development organization then all Scrum Teams must follow it as a minimum.
- If the Definition of “Done” for an increment is NOT part of the conventions of the development organization then the Dev Team of an Increment must define the Definition of “Done.”
- If there are multiple Scrum Teams working on the system or product release, the Development Teams on all Scrum Teams must mutually define the Definition of “Done”.
- When multiple Development Teams are working on the same product they could (not should) have one Definition of Done for all Teams or each Team could have its own one or something between these two extremes. The rule here is that their outputs should combine and integrate continuously and at the end of the Sprint they should deliver just one integrated Increment as all Teams’ output so all Definition of Done should not violate each other.
Definition of Done evolution :
- As Scrum Teams mature they expand to include stringent criteria for higher quality in the Definitions of “Done”.
- The definition of “Done” describes the work that must be completed for every Product Backlog item (PBI) before it can be deemed potentially releasable. If during a sprint, the Development Team finds out that a problem outside of their control blocks impacts them from doing all of it work, they immediately raise the issue to the Scrum Master as an impediment.
Definition of Done practice :
- Feature’s done or completeness can be explained through the following statements: – When everything is done based on the Definition of Done – When there is nothing more to do before it can be used by the end users – When it is potentially releasable and shippable – The Item is usable by the end user.
- Finishing Product Backlog Items is an important concept in Scrum. It emphasizes that all team members should have a common understanding of done. Therefore, the Definition of Done is introduced as part of the Scrum and defines all required work that should be completed before the end user can use the product and nothing else remain before its release. The Development Team agreement is not enough about an Item’s completeness because they may forget doing some tasks for having a usable and releasable feature.
Definition of Done example :
- A Few Good Criteria to include in the Definition of Done are:
· Unit tests passed.
· Code reviewed Completed.
· Acceptance criteria met / Acceptance test passed.
· Functional tests passed
· Non-Functional requirements met.
· Integrated into a clean build
· Automated regression tests pass
· Feature level functional tests passed
. Meets compliance requirements
Definition of Done responsibility :
- Who is responsible for creation of the Definition of “Done”? The expected answer is the Development Team.
- But, some Scrum materials declare that the Scrum Team creates DoD, what is the correct answer?
- The Scrum Guide says the Development Team of the Scrum Team must define a definition of “done” appropriate for the product.” So, the correct answer is the Development Team.
- From my point of view, Development Team owns DoD on behalf of the whole Scrum Team. So, it is possible to say “Scrum Team creates DoD”, however “Development Team creates DoD” is more precise.
More informations for the Scrum PSD certification here.