I looked at my calendar the other day and up popped a reminder about a software development life cycle (SDLC) meeting. That reminder gave me the opportunity to think about how the SDLC affects my team and how we document compliance with it.
I left that meeting convinced that the Definition of Done is where a Scrum Team can document its compliance with the company’s SDLC.
What is SDLC?
SDLC is a process followed for software projects within an organization. It’s a detailed plan describing required steps to follow to develop, maintain, replace, alter, or enhance software. The life cycle defines a method for improving the quality of software and the overall development process.
Why document the SDLC in the Definition of Done?
We can’t talk about the Definition of Done without talking about acceptance criteria. For this conversation, let’s think of them in with regard to who owns them.
Acceptance criteria are the product owner’s conditions of acceptance. They are a list of criteria that a product increment or user story must meet to be accepted by the product owner. Accordingly, the product owner owns the acceptance criteria.
The Definition of Done is the Scrum Team’s conditions of acceptance. It is a list of criteria that a product increment or user story must meet to be accepted by the Scrum Team — it’s when we know it’s done. Hence, the Scrum Team owns the Definition of Done.
A typical Definition of Done might look like this:
- Approved by the product owner
- Code complete
- Test complete
- Unit tests written and executed
- Integration tested
- Performance tested
Think of the definition of done like a pilot’s preflight checklist
A preflight planning checklist is a list of tasks that should be performed by pilots and aircrew prior to takeoff. Its purpose is to improve flight safety by ensuring that no important tasks are forgotten.
After a user story is signed off or accepted, we put it through the “Definition of Done checklist” to ensure that the user story is done and that no important tasks are forgotten. We do this by asking a few simple questions:
- Was the user story approved by the product owner?
- Is the code complete?
- Is all testing complete?
- Were unit tests written and executed?
- Was it integration tested?
- Was it performance tested?
- Is the user story documented?
So how does the SDLC apply?
If we consider the SDLC to be the IT department’s Definition of Done, and if we consider the Scrum Team to be a member of IT, then it makes sense to incorporate the SDLC into the Definition of Done.
Just add what’s missing
When comparing your Definition of Done to the company’s SDLC, you may find that your team’s Definition of Done already includes most of the SDLC anyway — just add what’s missing. Since the Scrum Team owns the Definition of Done, it is the perfect place to incorporate and document compliance with your SDLC.