Software Development: Study Tactics and Logistics. Forget Strategy.
Herein, I shall commit heresy.
I'm going to suggest that "Software Strategy" is useless: Enabling success involves the very large, and the very small, leaving "Strategy" in the useless middle.
Who am I to say this? I've been in software for 18 years, and I've been in a leadership role for the last 8. I've spent innumerable hours in "Strategy" meetings. I've had just about enough of that and I'd like to suggest a better way.
I'm going to suggest that "Software Strategy" is useless: Enabling success involves the very large, and the very small, leaving "Strategy" in the useless middle.
Who am I to say this? I've been in software for 18 years, and I've been in a leadership role for the last 8. I've spent innumerable hours in "Strategy" meetings. I've had just about enough of that and I'd like to suggest a better way.
What I'm Not Saying
I'm not saying that "Business Strategy" is useless. Knowing what your business is and (more importantly) what it is not is a key to success.
I'm not saying that perfecting your tactics and logistics will lead to success. I said they "enable" success. That being said, I shall try to show that concerning just strategy without caring for tactics or logistics will lead to failure no matter how good the strategy.
Definitions
So, some working definitions:
- Tactics as in the military sense are "the art of disposing armed forces in order of battle and of organizing operations, especially during contact with an enemy." Tactics are what you do when you're doing the "thing". This is how you actually develop the software: What language you use, what processes your organization follows, and your general principles. Armies drill until they perform automatically under . Your development teams should, too.
- Strategy is bigger than tactics: "A plan for military operations and movements during a war." One battle has tactics. A whole war has strategy. Grant's "Anaconda Plan" was a strategy. In the software context, strategies are like "Move fast and break things," "Fast follow," or "You never get fired for choosing ______."
- Logistics is the biggest of them all. "the organization of moving, housing, and supplying troops and equipment." Sans logistics your army will starve to death. (Yes, Xenophon and Sherman, blah, blah, blah. Outliers!) In the software context, this is the supply of people (hiring), development sites (facilities), and deploying them in the right place at the right time.
Briefly, on Tactics and Logistics
I've written at length on both these topics, but to summarize: You must cover these bases.
If you haven't tactics, you can't execute. You can't "Do the thing." Do all your teams know how to decompose, design, write, build, deploy, and sustain That Thing you Do?
If not, stop reading and get them there. Be that bastard George McClellan in 1862 when he whipped the Army of the Potomac into shape. No considerations beyond that matter. Whether you have a team of 5 or 5000, they must *all* be competent in all phases, or else you're vulnerable. Sun-Tzu shame on you, because you knew better and you didn't take the time to do it.
Taking it to the other extreme, let's say your whole team quits tomorrow. Have you any hope of replacing them? Do you have a pipeline of talent and expertise coming your way? I pose the question that way because I assume your team is entirely mortal, so in some time they'll all either die, quit, or you'll let them go. Think of your best developer and imagine he just doesn't come in tomorrow. How boned are you?
So Why the Hate for Strategy?
It gets old, and it turns into a game for Middle Managers.
Look, let's peel back the curtain for a minute. The reason "Strategy" occupies so much time for middle and upper managers is: "This is how we're going to spend our money." Assuming you work for any company above 10 or so people, you'll have a separation between what you can do and what you can afford to do. This has many second- and third-order effects.
At the tail end of that is the government agency or the cost-center organization. For those unlucky schmucks (of which I was one for 17 years), "strategy" time means: "We need to justify our existence for another year." What follows is the boring budget process where some middle manager has to count on his hands the number of "Bob" and "Sue" individual he'll need to let go to make his budget.
At the front end is the "Tiger Team," those golden boys and girls who get (seemingly) unlimited budgets and ridiculous deadlines to hit, usually because ParentCompany is embarrassed and needs to catch-up to a competitor. I've been on these. They're great: Money is coming from everywhere, ad funding requires a stroke of a pen. Strategy is bad here because the leader of said group is usually empire-building and loves the attention s/he is getting.
In the middle is the regular line-of-business org, doing both delivery and operations for something that makes a significant amount of money. One needs to figure out how to maximize the profit from what their activities.
What's bad about that? Well, nothing except:
- It takes a fricking long time.
- It takes everyone's eye off the ball.
Let me show you...
Strategy Funnel Hell
I worked at a middle-sized multinational corporation.
The division president was an former salesman, and he loved things in a "funnel," with broad ideas at the top and polished, actionable things at the bottom. It looked like a sales funnel to him, so it was comfortable and rational. Things either moved down or out of the funnel.
So far, so good. In concept, there's nothing wrong with it.
Here's the catch: The funnel began in JANUARY and ended roughly in AUGUST. That's right, in any given year, the "strat cycle" occupied 2/3rd of the year. Gaze at your navel for 8 months and see if you compete effectively, huh?
It gets worse. Let's say a great idea pops up in May or June. Too bad, wait for next year. Actually it was worse than that. Out the end of the funnel would pop a project that R&D would be tasked with developing for delivering sometime the next year. Worse case scenario: we got an idea in 2010, we executed on it in 2011, and the soonest it would see the light of day was 2012.
Lastly, there was absolutely no incentive for anyone in that structure to rock that boat. Managers' bonuses depended upon delivering what came out of that funnel, customers be damned.
Whole career were built on faithfully executing on funnel ideas while sabotaging others who did things to satisfy customers while missing arbitrary dates coming out of the Strat Cycle.
That's why I loathe that sort of ivory tower strategy: It's a transparent game of middle-management looking for power and prestige, and it affects both the regular employees and the customers.
A Better Way
What's better, then, smartypants?
Logistics and tactics, of course.
- Logistics: Place your people in ready-made strategic organizations, aligned around big goals. Those organizations have clear mandate that doesn't change year-to-year. You might go harder at one customer need or another, but you avoid treating any group as a fungible "developer pool". Get a pipeline of hiring and personnel development going within those organizations, and then allow people to move to another org if they want.
- Tactics: I can't say it any way better than my current employer does: Insist on the highest standards. Code, code reviews, procedures, quality, sustaining engineering. They have to be top-notch, and they need to be freaking muscle memory.
I think you'll find if you think big, you fix many of the problems of funnel hell.
- You get months of your leadership time back. You're not arguing about $$ in the guise of "strategy".
- The customer is satisfied, and that goes straight to your bottom line.
- The "court politics" reduces to a manageable level.
- Retention gets better because you're serving peoples' need for purpose. They either believe in your org or they don't. If they don't, they move.
Comments
Post a Comment