One of the leading causes of delays in software development projects is simply the state of being not-ready. I see it all the time. A team member tries to work on something and runs right smack into a wall of missing information. Or a someone tries to hand-off a work item to another team member and hits a bottleneck. It’s ubiquitous.
Being not-ready can manifest itself in a variety of ways. In every case, the end result is the same — delays, scrambling and frustration.
Here are some ways that not-ready shows itself in development projects:
- A user story isn’t complete. Some information is missing. Questions need to be answered before work can begin.
- A user story lacks acceptance criteria. There are details yet to be worked out.
- There are differences of opinion as to how a business requirement should be met. The requirement hasn’t been fully reviewed and approved.
- A support group hasn’t been notified that their assistance is needed on the project. They do not have anyone available to assist.
- Equipment isn’t available for developers and/or testers to use. Someone forgot to plan ahead.
- Sample data hasn’t been generated for development or testing. The code is written but has nothing to operate on.
- End users haven’t been alerted about an imminent release. They aren’t available to help.
The most frustrating aspect of this for me is the realization that a little extra planning and just a bit more communication can avoid many of these situations. Kanban can really help identify many of these weak points. Work should flow through the development process. The flow will never be perfect. There will always be imbalances. The challenge is to avoid major problems that result in work getting blocked.
Here are some things you can do to avoid these blockages.
- Be sure user stories are ready to be implemented. A formal “definition of ready” can help.
- Review the “definition of done” before beginning to implement a user story. Can the story get to the done state?
- Communicate. Everyone needs to know what stories are in progress and when they will be done in order to plan appropriately.