Being a skeptic by nature, I say “true” because it’s easy to increase apparent velocity without really getting more done.
There’s an old saying: “Time, Quality, Scope — Choose any two.” An easy way to reduce coding time is to minimize testing. But lowering quality leads to defects, and defects increase rework. If we slash scope and oversimplify a feature, many customers won’t be able to use it. A feature that most people can’t use is mostly useless.
In practice, there are three well-worn paths to increasing true velocity: (1) Optimize scope, (2) Enhance infrastructure, and (3) Reduce rework.
- To optimize scope, carefully select just the right set of requirements that will allow customers to use the feature, easily and effectively. No more. No less.
- To enhance infrastructure, leverage technology and processes to reduce the human effort needed to take a feature from conception to production.
- To reduce rework, collaborate with stakeholders to ensure the correct features are implemented correctly.
Here are twelve key checkpoints that can help your team step forward, without taking two steps backward:
Control Scope
- Are we surveying customers to determine must-have threshold features?
- Are we implementing only the threshold features first?
- Are we documenting the acceptance tests before we write the code?
- Are we implementing the simplest thing that can possibly pass the acceptance tests?
Improve Infrastructure
- Is our unit-test and integration-test scaffolding as helpful as it can possibly be?
- Is our continuous integration automation as streamlined as it can possibly be?
- Is our software development lifecycle process transparent and clearly understood?
- Is our team using the best tools for the job?
Reduce Rework
- Are we getting feedback from customers as early as possible (preferably by providing access to a beta version)?
- Are we re-running all acceptances tests against the final release candidate before a major release?
- Are we writing tests to prove bugs exist before we fix them?
- Are we documenting support case solutions in a knowledge base for future reference?
Have you found other ways to increase velocity on your own team? If so, post a comment, and lets start the conversation!