One of the guiding principles of Scrum is to develop the functionality of the highest priority to the customer first. Less important features are developed in subsequent Sprints or can be left out altogether according to the customer’s requirements. This approach gives the Scrum Team the required time to focus on the quality of essential functionality. A key benefit of quality planning is the reduction of technical debt.
Technical debt—also referred to as design debt or code debt—refers to the work that teams prioritize lower, omit, or do not complete as they work toward creating the primary deliverables associated with the project’s product. Technical debt accrues and must be paid in the future. Quick-fix and building deliverables that do not comply with standards for quality, security, long-term architecture goals, and so forth.
Some of the reasons for technical debt could be:
- Lack of coordination among different team members, or different Scrum Teams as teams start working in isolation with less focus on final integration of components required to make a project or program successful.
- Poor sharing of business knowledge and process knowledge among the stakeholders and project teams.
- Too much focus on short-term project goals instead of the long-term objectives of the company. This oversight can result in poor-quality Working Deliverables that incur significant maintenance and upgrade costs.
To maintain a minimal amount of technical debt, it is important to define:
- The product required from a Sprint and the project along with the Acceptance Criteria,
- Any development methods to be followed,
- And the key responsibilities of Scrum Team members in regards to quality.
- Defining Acceptance Criteria is an important part of quality planning, and it allows for effective quality control to be carried out during the project.
The cost of changes is very high in such circumstances as problems surface in later stages of the project. Scrum framework prevents the issues related to technical debt by ensuring that Done deliverables with Acceptance Criteria are defined as part of the Sprint Backlog and key tasks including development, testing, and documentation are done as part of the same Sprint and by the same Scrum Team.
For interesting articles about Scrum and Agile, visit http://www.scrumstudy.com/blog/managing-technical-debt-in-a-scrum-project/