When you’re trying to deliver software solutions quickly, it’s a good idea to frequently ask yourself these questions:
1. What should I focus on right now?
I sometimes find myself thinking about features that I think are useful but that no one has actually asked for yet. Those kinds of thoughts are fun. But if you’re not careful, they can bog down your productivity. Put most of your energy into what’s in front of you now and execute that with the right mix of perfection and delivery. Small, positive iterations on your baseline mean you’re always winning and delivering value to your customer.
2. When’s the last time I demonstrated my software to my customer?
Getting into a rhythm of continuous delivery means you’re always rolling the ball forward. There are always new features to show—so show them! Surprises are your mortal enemy in software development. A quick 15-minute demo can save countless hours wasted by going down the wrong path. Plus, your customers get to give you valuable input that you can use to prioritize your upcoming work. Remember—demonstrations can be anything, including documentation or design flows. By doing this, your customer will gain confidence and feel involved in the process.
3. Is it time to tackle technical debt?
Moving quickly in software often means a scrappy solution that works . . . with trade-offs. Without discipline, this technical debt will ultimately slow your long-term productivity and increase your frustration. Set aside the time you need to refactor or rewrite your technical land mines. Start with ensuring your test coverage is high so you can attack that technical debt with a “fear not” attitude!