Specializing in Journeys
There are plenty of generalist software devs on the market. And we’re told, that’s not such a great idea.
“You should specialize. You should clarify your positioning.”
And so these software devs start to specialize. “I specialize in domain modelling.”
But there are still a lot of people specializing in domain modelling.
“I specialize in domain modelling for Rails apps.”
“I specialize in domain modelling for large Rails apps.”
That’s a lot better, right?
“I specialize in domain modelling for large Rails apps that hurt in this specific way.”
Now we’re talking. This new bit at the end of the specialization, it turns out it’s pretty juicy. We introduced the idea of a specific hurt.
—
A client might look at your specialization in domain modelling and say “but has he ever come across our problem before?”
All they can think of is the specific language of their problem. They don’t think in abstract terms, they think in hurting terms.
“We’ve made a mess.”
“We’ve tried migrations that required maintenance downtimes, and it didn’t go well.”
“We’re stuck using a bunch of service objects that slows our team’s productivity. We keep having to come up with new service object names for slightly different use cases.”
“We’re using a lot of imprecise terms that we constantly have to translate when talking with the business.”
“For a while we pushed off a rewrite of our domain model rewrite we didn’t want to be too idealistic. But now, it’s really hurting us.”
And they might have ideas about what to do next. Deep down, they could also talk in terms of a future that they hope to get to.
“It would be great if we could migrate all our models over without a full rewrite.”
“We heard of other places that have clever migration strategies.”
“If only we could afford having our whole database in Tool X, we could split our rewrite over many months, bit by bit.”
“We searched for solutions that do this, but came up short.”
—
The thing about these kinds of statements is that they’re rich in describing a journey. What they want to move away from (in detail), and what they want to move towards (in detail).
Far too few of us use our websites to show that we’re specialists in our customer’s journey.
“I specialize in helping you move your Rails app away from a domain modelling mess. You’ve tried migrations that took your app offline and that crossed a line for you and your team. Never again. You’re hoping for a future where your models match the language of the business so you can clean things up. Here’s how I take you from here to there.”
If you specialize in their journey, they won’t care what tools you used to help them get “from here to there”. Do that, then generalize what you want.