Dear software product CEOs:
Does software development feel like it's always too slow? Does it seem like the only lever you have is to put more pressure on the dev team? Do you feel out of control? Are they slacking off or what?
Wouldn't it be great if your team could deliver faster? What if you could learn from features as fast as you could think of them? And wouldn't it be amazing if you and the dev team felt aligned—collaborating even?
I can help you achieve that. By mapping out the flow of value from customer conversation to customer delight, I can identify the bottlenecks in the flow and help you eliminate them.
Did you know?
Most of the wasted time in workflows is lost to waiting? I don't mean the programmers waiting. No. It's the work just sitting there, waiting for someone to continue it. You can optimize the speed of programmers as much as you want, but it won't make wait times go away. Using queuing theory and value-stream mapping, you and I will optimize the flow so that your feature requests move through the process faster, delighting customers in record time.
So, here's the one key that underlies all of the improvement work I do: I watch the work, not the workers. This is something that the manufacturing world has been doing for years, but the idea is still not well-understood in the software world. I don't measure how efficient an individual programmer is and try to improve that.
Instead, I watch a “piece of work”—a Jira ticket, usually—as it works its way through the backlog and into production. Where does it spend most of its time? What held it up? The truth is, I usually find that it's just sitting there, waiting for someone to work on it. Every day that it sits there, it gets older and more out of date.
You may have tried to measure the throughput of your development team, probably by calculating their velocity with story points. That doesn't work. Instead, we should measure the latency. Industry research shows that optimizing lead time—that is, how long it takes for a piece of work to go through the system—is correlated with profitability and software stability. To optimize lead time, we take a big step back and look at the entire value flow, from an initial idea for a feature, all the way to when the customer can use the feature.
By optimizing away the waiting time, I've seen companies consistently get features out to customers 2x faster—sometimes as much as 10x faster. That's how much wasted time there is in the typical company's workflows. And when we do this, everyone gets happier. The programmers are under less pressure to work faster. The management feels in control. And everyone gets along better.
The truth is, in today's environment, speed of delivery is vital to profitability. You know this. How fast you can put features in the hands of customers—and get data on how they use them—can make or break your company. You wonder why things are taking so long. But you rarely look at the whole workflow. Most of the work is invisible or intangible. I can give you a picture of your workflow—which by itself could blow your mind. Then I'll work with you and your team to systematically address the biggest time wasters.
I am available to work with software companies (5-20 engineers) looking to improve their speed. Please fill out this form to set up a free call to discuss how I can help you.
About me
- I tend to focus on business value as a technologist and systems thinker.
- Over 10 years experience running my own business.
- Deep study of technology's impact on humanity, including Marshall McLuhan, Alan Kay, and Cory Doctorow.
- A fascination with lean manufacturing, theory of constraints, and flow management.
- You might find me multiplying team capacity through coaching, community building, and communication.
- Over 10 years experience teaching Clojure, functional programming, and software design.
- A popular book on functional programming selling over 14,000 copies.
- A successful monthly FP meetup for seven years.
- A popular technical blog since 2007 and weekly newsletter since 2012.
- I love to apply my deep technical expertise in software engineering, functional programming, and software design.
- Over 20 years of professional experience in software engineering.
- Renowned expertise in Clojure, functional programming, and software design.
- A Master's Degree in Machine Learning.
Please see my LinkedIn profile for an overview of my impact during consulting and full-time engagements over my career.