How Software Drives Possibility
Instead of looking at your software development effort as a pipeline that turns requests into features, think of it as an engine that generates possibilities for your business. Sure, requests for features and fixes go in, and completed work comes out. But much of the value to the business depends on just how your team approaches the work.
Effective teams ship updates fast. Fast enough that business needs rarely change before they’re addressed, unlike some projects that struggle under a growing pile of features and priorities that change mid-stream. A fast software team creates momentum that propels the business forward, instead of lagging behind it trying to catch up. It lets the business focus on polishing and selling what’s already built, rather than scrambling to build what’s been sold. A fast process enables a different approach, of validating and perfecting initiatives using real-world feedback, and of exploring options to find the optimal approach.
Effective projects deliver features correctly virtually every time. They aim for a target of zero bugs, even if they don’t always quite hit it. Other teams grow accustomed to a certain frequency of defects, regressions, and misunderstood requirements, and they come to expect it as a normal part of making software. These teams often don’t realize just how much time and effort is spent sending completed work back through the whole pipeline. And even if your end users seem comfortable enough enduring a certain amount of breakage and bug reporting, they can’t help but think of your software (and your company) in a fundamentally different category from others that give them a more consistent experience.
Effective software companies create an environment where skilled and motivated people can do their best work. A culture that challenges them to improve their skills, learn the business domain, and solve problems that matter. An organization that trusts them with responsibility to make a difference, and lets them see real results from what they build. If you build a process that attracts good people and empowers them, you’ll have a stronger, more motivated team that stays better aligned with your mission and that makes smart, creative decisions even in unexpected situations.
Effective processes are able to cope well with the unexpected. They prioritize building instead of estimating as much as possible. But in situations where long-term prediction of resource usage is crucial, they find ways to approach tasks that surface unexpected complexity as soon as possible, so the business is able to adjust quickly to the kinds of situations that inevitably occur in software development, when something that’s never been built before turns out to be more expensive than expected.
If you’re measuring software development output, the needle you most want to see moving is “more business options”, not “more tasks checked off”. Use the suggestions above to streamline your team’s engine. Improve, measure and repeat. Keep what works, while finding opportunities to eliminate unnecessary steps and duplicated effort. Find the steps that are effective and refine them, and drive more possibilities for your business.