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.
Some causes of technical debt
can include the following:
· Quick-fix and
building deliverables that do not comply with standards for quality, security,
long-term architecture goals, etc.
·
Inadequate or
incomplete testing
·
Improper or
incomplete documentation
·
Lack of
coordination among different team members, or if different Scrum 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.
In Scrum projects, any
technical debt is not carried over beyond a Sprint, because there should be
clearly defined Acceptance and Done Criteria. The functionality must satisfy
these criteria to be considered Done. As the Prioritized Product Backlog is
groomed and User Stories are prioritized, the team creates Working Deliverables
regularly, preventing the accumulation of significant technical debt. The Scrum
Guidance Body may also include documentation and definition of processes which
help in decreasing technical debt.
Here is a video on managing
Technical Debt in Scrum projects: http://www.scrumstudy.com/watch.asp?vid=585
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.
Technical debt is a very big challenge with some traditional
project management techniques where development, testing, documentation, etc.
are done sequentially and often-times by different persons, with no one person
being responsible for any particular Working Deliverable. As a result,
technical debt accrues, leading to significantly higher maintenance,
integration, and product release costs in the final stages of a project’s
release. Also, 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.
No comments:
Post a Comment