Over the years, I have struggled to describe the frustration of building on top of systems full of technical debt to my non technical friends. I have never cared for drawing comparisons between building, say, a bridge and software. I'll give it a try for once with someone more personal than a bridge: your living room.
No one sets out to build an unusable living room. It just happens. We find ourselves with an inexperienced builder, or a builder who usually builds tree houses, or two builders who disagree with each other and we eventually find ourselves in a living room with problems. The floor looks as though it's designer was attempting to pay homage to Picasso and Pollack at the same time. Rather than floor joists on standard centers covered with OSB, there's a bizarre pattern of joists held up by columns in the basement and some areas are not covered with flooring at all: gaping holes straight to the basement.
Now the painters show up and they complain. They can't put the ladders just anywhere (since there are holes in the floor) but they lay down some boards and they get the living room painted. Next the carpet company shows up. After complaining to the general contractor (who tells them to find a solution, not complain) they grudgingly stretch carpet over the gaps in the flooring.
Here's where the real fun begins. Some children can walk across the floor no problem, but adults sink in and trip.
Occupancy is granted and the owners arrive. They try to place their couch and their nice modern LCD TV stand in the most natural places. Things fall over. The TV gets a crack in it. The builder, having detailed knowledge of how the floor looks underneath, shows them precisely where they can place the couch and the TV stand. Things are stable, as long as the owners stop changing the living room layout. It's really hard to never change the living room, though. When you have some friends over to watch The Sportsball Game, you have to sheepishly inform your guests that depending on where everyone sits and stands, the experience may be less than ideal.
Technical people will understand the frustration of the painters and the carpet layers. You show up hoping to do good work, and you just can not. There's no easy way to re-do the floor while also allowing people to use the living room either. You obviously can't go back in time and make the floor builders plot a new course.
My heart goes out to the poor owners. They had no say in how the floor was built. I suspect and I hope that no one would claim that efforts to fix the floor were inspired by the ego and the laziness of the carpet layer. Sure, the carpet layer does want to do good work, but it's the suckers who have to live in the house who really have it bad.
And yet I can't overstate the frequency with which I encounter this in businesses. The users are suffering. The business has a huge support team. Sometimes the support team has to help fix an obscure issue caused by the latest Windows 10 update, but more often they have to help perform rudimentary tasks for the users because the system just doesn't work. The business has to budget a painful amount of the development team to help support, creating a drag on forward progress. Releases are not predictable because it's really difficult to build on top of the mysterious living room floor. Releases are difficult to test and impossible to roll back. Engineers leave the team for green field projects. They'd like to do their best work and they hope to get in on new construction before someone decides to build the floor out of rope and glue.
With tangible and quantifiable evidence of the cost of difficult to maintain software all around, the business will often tell a developer something along the lines of "I'm not paying to rewrite that piece just so your life can be easier." Well, I'm sorry that's how you see it. My advice is to never re-arrange the living room again, but if you do it's going to cost you.
"Culture eats strategy for lunch"
I was sitting in a meeting and could not recall the commonly understood academic reasoning behind this famous quote, so I had to improvise and talk about what I know.
Many people interested in real self defense will find themselves training at a traditional TaeKwonDo/Hapkido academy, where the Americanized Hapkido portion focuses on situational street self defense tactics. The situations play out like so:
- The attacker will swing a knife at you like this (Overhand, over the top downward strike)
- You will block forearm to forearm like so, take the knife, and sweep the attacker to the ground like so
For visual demonstrations of what I'm talking about, I recommend my good friends over at Technique Tuesday
. I have trained and memorized a few hundred of these situational exercises. When the instructor leaves to take a phone call or purposefully lets go of the reigns, we start to see issues. People get hurt when practicing with full speed and strength. More often than not, slight variations in how the techniques are performed when you start trying to use them for real turns what was beautiful orchestration into a hot mess. The two opponents are on the ground wrestling and all the amazing techniques can't address the situation*. This is strategy and tactics at work. Our rules, processes, and tools fail to address violent reality.
Training Brazilian JiuJitsu, though, is different. There are certainly techniques to learn, but the focus in most academies is on:
- Training at full speed, full resistance from day one.
- Learning about angles, leverage, weight, and space.
With these fundamental principles, the BJJ practitioner, even at fairly novice levels, is not necessarily a fish out of water when a new situation is encountered**. I can fight a wrestler or a Judoka and not be completely bewildered: I know when I need more space and when I need to close space. I know where to put my weight to "be heavy" and what my opponent might be trying to do based on where their weight is.
When your team understands and has internalized the fundamental values of the business, you don't need a rule for every possible situation. When the business goes off the rails, your teams can make appropriate decisions by returning to the fundamentals: what is the right outcome in this situation, and how do I use the "weight, angles, leverage, and space" of the organization to reach that outcome? This is culture at work, your organizational Brazilian JiuJitsu.
Culture eats strategy for lunch.
* To be fair, some people get incredibly good at this and can decisively lock out an opponent. Very few practitioners will ever reach this level of muscle memory with the hundreds of techniques needed to handle common situations.
Last year at Edgenet
, we switched from PTO to DTO. Under Discretionary Time Off you don't accrue a certain promised amount of vacation. You and your manager work out what you need with no set limit. This seemed like a progressive move to me but I got a lot of negative feedback. The reservations were:
- If I quit or get fired, I no longer have a cushion of PTO to help me transition.
- I don't like the fact that a new employee has the same vacation as me, since I've been here for X years and now accrue at a higher rate.
I don't necessarily have a great answer for issue #1, things like terminating someone is handled on a case by case basis. Issue #2 seems to betray a lack of trust in management: Damon will hire someone fresh out of college and let them take six weeks their first year. There are a couple of reasons why I like this policy.
While Edgenet has a codified list of our Values, when people ask me about our my management style I usually start with a very basic elevator speech: I strive to focus on the things that are important and ignore the things that aren't. Whatever vacation quotient The Almighty HR Gods came up with doesn't mean as much to me as whether or not you are meeting your commitments. I have long seen good managers unofficially throw extra vacation at someone who's been going the extra mile, and this just makes that my official policy.
This also gives me a unique way to take care of people. While I will argue that workaholics are bad for your culture, some people just can't help it. Maybe they are not truly committed workaholics, but they suffer from the notion that they are such a Lynchpin that Bad Things™ will happen if they take rest.
Someone may also be looking at a calendar year and budgeting their vacation. "Ok, I have X days for this trip during the summer, X days around Thanksgiving, X days after Christmas, so I really can't take this 4 day weekend..." With DTO I'm able to force someone to take the mental health days they may need. I have actually threatened to turn off someone's access fob and VPN for a few days if they don't voluntarily take some time for themselves to rejuvenate.
What do you think? A good tool or a trendy bit of nonsense?