SW engineering, engineering management and the business of software
One of the best tricks I’ve come across to make meaningful progress on any long term project is to start with an initial (typically long) time estimate, than play the “What Can We Do In X” game.
If you need a fancy mnemonic, use: WCWDIX (pronounced wick-widicks)
It works like this:
If you start with an initial, hypothetical estimate to build a product or feature of 5 months, ask yourself and your team: “What can we do in 1 month?”
This forces the thought process of Ruthless Prioritization. Typically, your must have features become should-haves and your should-haves become nice-to-haves. It’s important to be ruthless here. Strip the business down to the core, while still being usefull. Remember that the MVP of a car is not 4 tires on the ground (useless) but a skateboard or bike.
Follow that up with “What can we do in 1 week?”
This helps with the notion of what it takes to make a Useful Prototype. Hopefully this is mostly code/product that you can reuse over the longer journey. Importantly, you have prioritized faster and are cutting corners to get to a product point where you can put it in front of people. This builds technical debt, but it is almost always worth it because you are learning so much faster, earlier in the development process.
By now, you know what comes next: “What can we do in a day?”
In a day, you can’t build much. But you can Fake Product. Sometimes this means wireframes in a mockup app. Sometimes this means wiring together no-code SAAS apps or even a spreadsheet and tools like Zapier to simulate the guts of your business logic. Fake Product is great for customer development or even early sales calls.
Another option is Market Discovery: spend a day doing market research. This is different from customer validation which typically happens after you have a product idea or prototype. Market discovery is more about finding a market that has pain points and the ability to pay to address those pain points, and ideally a market you can reach via known sales/marketing strategies. It’s important to do this process without any preconceived notions of product/solutions. Identify the pain first!
“What can we do in an hour?”
Not much? Wrong! An hour is enough for Short Burst of Research. You can hold 2-3 customer development calls. You can setup up a landing page and blast LinkedIn, twitter and other social media sites to see if you can get any bites. You can do some google searches and look for evidence of your market hypothesis. You won’t typically get enough info here to be data, more anecdotes. But it might be enough to guide early thoughts/directions or help quickly identify a potential pivot that requires more investigation.
Lastly “What can we do in 10 minutes?”
Even ten minutes is enough for Quick Info Wins. This is kind of a mini versino of Short Burst of Research. Send off a couple emails. You can buy a small ad campaign and measure how many clicks it gets over time. Counts cohorts in LinkedIn (are you marketing to poele in X profession? go check out how many people are in that profession to get a sense of scale). Anything you can do or setup to get Information from Outside your Team is great use of early hours on a project.
As you play the WCWDIX game, each step forces you to reduce “Time to Learn” by an order of magnitude. You can hopefully shine light as early as possible on the fact that you may be building the wrong product or solution.
The suggested activities (Fake Product, Market Discovery, etc…) are just examples. If you have alternative ideas that roughly fit in the respective timeframes, go for it!
Companies don’t usually fail because they can’t build a product. They usually fail because they build the wrong product at the wrong time or they build the solution that ends up being wrong for a market that can’t or won’t bear the appropriate costs.
Always make sure to the best of your ability that you are building the right product!
As a manager you have a lot of things to worry about. It’s possible to broadly categorize into three buckets:
To me, the bulk of your job is in the third bucket. You have to be able to foster empathy, make people excel and intervene when things begin to go wrong.
This post is about that intervention point.
To the surprise of no-one but the clueless, the more “wrong” things have gotten, the faster and more forceful you should be intercede on behalf of your people.
Let’s go through them:
You need to take care of these people immediately. This is Big Red Button territory. Especially in the very rare extreme cases of physical or sexual violence. In the case of psychological safety, intervention should still be as rapidly as possible. Diminishing psychological safety is one of the inevitable ways to reduce team performance.
Find out what or who is causing feelings and resolve it to the best of your ability.
No one wants to lose employees. Obviously, we aren’t talking about people who are moving for family reasons or people who got a job with a different company (though you should understand why every employee leaves).
This is about people who are burnt out or angry or fed up or otherwise pull a surprise resignation. You may not get them to stay and even if you do, they probably won’t stay long. But it is important to understand their situation and figure out a) what you can do and b) what you could have done to have prevented this outcome.
Finally, we are out of “Big Red Button” situations and into Red Flags territory.
Underperformance doesn’t usually happen all at once. Your immediate concerns are mitigation & communication. Does the underperformer know that they aren’t meeting expectations? Oddly, the answer is that they are usually clueless. Let them know, give them a chance to succeed. Sometimes this means training, sometimes a transfer. Occassionaly you do have to let them go.
The worst possible outcome is for the employee to be unaware for an extended period of time. Long term, not dealing with underperformers tends to drive away your best people.
In various HR surveys, “Not getting along with your manager” is often at the top of reasons why people leave their jobs.
It doesn’t have to be their boss either. It could be someone who controls their work in some way, like a project manager or a peer reviewer.
If their boss is you, dear reader, it’s time for some open minded self-assessment. See if you can figure out why. What behavior changes. Potentially see if an internal transfer makes sense.
Bored people quit. Not always, but often enough that it should be a yellow flag for you. How can you challenge them? What work can be shuffled or reassigned? Can you split the boring work among multiple people?
Similar to the above, this one is a just a yellow flag. This one is often tricky to diagnose, because someone could be good at their job, but stagnating. In most circumstances you want your people to grow. Does their career seem static by choice? or due to lack of opportunity? or maybe they are jut quiet introvert who don’t know or aren’t comfortable asking for new opportunities? Figure out why. Help them get new opportunities or help them learn how to ask for new opportunities.
This is by no means an exhaustive list. There are many reasons to be concerned about your reports. The important thing is to assign the appropriate urgency. Being casual about “Big Red Button” situations means someone has to endure a terrible situation and typically results is bad outcomes. Similarly, being forceful about yellow flags often comes off as being pushy or micromanaging.
Making sure the right level of timeliness and intervention is a big part of getting better outcomes and successful employees.
I used to judge people. All the time.
“They must be a bad parents.” “He might not be good at his job.” “What a terrible driver.” “That person is definitely a mean spirited asshole.”
At some point, I realized this was not a good thing to be doing. People and their circumstances are complicated and the amount of missing information I have is huge. So I started to play a game.
What situation or context could I invent that would excuse or explain a person’s attitude or behavior?
This helped quite a bit. Instead of seeing someone take an elevator and thinking they are lazy, I would think instead: “They may be recovering from a foot or ankle injury.”
If I see someone who looks healthy parking in a handicap spot, it’s not they borrowed the tag from their grandma, rather it becomes “that person must be working hard on their rehab.”
Instead of lazy dads I started to see a single parent dealing with family health emergencies. Instead of road rage, it became someone distracted and stressed due to a divorce or death in the family.
Not every explanation had to be so dramatic. Sometimes little things, that person spilled something on their favorite pants and is late for an important meeting. Or that person’s favorite team lost an important match and of course they are a bit grumpy.
The most powerful was imaging myself in their shoes. When have I acted in a imperfect manner, what was my reasoning?
After a while, it occurred to me that not judging is a powerful form of empathy. And this kind of empathy, repeated over an over is a powerful tool in helping control my own mind. In particular it helps keep my brain from slipping into fight or flight mode. This is useful in a professional context and especially as a parent.
Rather than judge people, imaging what situations or context would make you behave in a similar way. You won’t always be right. In fact the majority of your rationalizations will probably be wrong. But at the same time, your initial negative judgements are almost always lacking enough context to me 100% correct as well.
Again, I used to judge people all the time. I do it a quite a bit less these days.