Software may be eating the world, but the process of developing it is devouring the souls of everyone involved.
Tell me if any of these sound familiar:
- You wait days for PRs to be reviewed
- You’re completing a lot of work but not shipping much
- The last 20% of your work taking 80% of the time
- You release product, but your customers reaction is, ah, subdued
- Technical debt is piling up
- Leadership is getting more frustrated and taking a more “hands on” approach to management
- Customers are frustrated with how long it takes for change requests to ship
It doesn’t have to be this way
What you’re experiencing is an absence of Flow (and by that we don’t mean the type library). Flow is how work progresses through a system, and high levels of Flow are correlated with outlandish sounding stats. For example, teams with high Flow have*:
- 200x faster code and change deployment lead time
- 60x higher change success in production deployments
- 168x faster mean time to restore service
- 2x more likely to exceed productivity, market share, and profitability goals
- 50% higher market capitalization growth over three years
- 50% less time spent remediating security issues
(*These are actual results captured and studied in the 2013 through 2016 as part of Puppet Labs’ State of DevOps Report)
Would you prefer to be on a team like that?
You can have a team that ships high-quality product reguarly
Hi, I’m Ethan…
…and I help teams overcome the above challenges. I’ve helped teams:
- Go from deploying once a quarter to several times per day
- Habitually complete and ship work rather than pile up inventory of incomplete work
- Build trust and understanding through making work visible
- Consistently deliver high-quality product
- Rescue failing, high-profile efforts
But it’s probably not (just) a technology change that you need to make
Most places I’ve helped engaged with me because I have expertise in autonomous, microservices-based architecture and development. In fact, I wrote the book on building autonomous, event-sourced systems:
Your technology is the result of your people systems
These tools are good, but you typically have the technical reality you have because of your people systems.
Make no mistake, technical excellence is the table stakes to consistent, customer-delighting delivery. But to get from where you are to where you could be is going to involve more than changing programming languages or web frameworks.
If you want to change your results, you’ll have to change your culture.
I can help you with that
I don’t have secret methods. I study and apply Lean and DevOps principles, building relationships with those involved in the work. In fact, with enough time, you could do this all on your own.
If you’d like to go faster though, let’s talk.
Specifically, I can help you:
- Understand why work stalls and get it flowing
- Train your team in microservices architecture and development
- Diagnose architectural problems
- Develop your systems and provide technical oversight
You can find me in various places
Conference Talks
- Establishing Flow - UtahJS 2022 - 29:55 - An appeal as to why you would care about Flow. Explanation of how microservices fit in. A hands-on activity with the crowd, the fabled “envelope game” used in Lean training.
- Why You Had a Bad Time With Microservices - EmpireJS 2018 - 22:41 - Common anti-patterns with microservices
- Microservices, Monoliths, and Event Stores - Utah Node.js Meetup 18 Sep 2020 - 1:15:49 - More high-level why with some how
- Idempotence: Build Mission Critical Systems and Keep Your Job - UtahJS Conf 2019 - 24:43 - Idempotence is a countermeasure against unreliable networks, and this talk gets into it in a pure HTTP context as well as in a message-based services context
- Choreography vs. Orchestration - UtahJS Conf 2018 - 37:33 - What do the words mean, and how do they differ in a pub/sub world?
- Building UIs for Microservices - wroclov.rb 1019 - 38:42 - Considerations for UI in an eventually-consistent system
Utah Microservices Meetup
I run a meetup that leans heavily into the technical aspects but also treats the people systems aspects from time to time.