Hunting Tech Debt via Org Charts
bellmar.medium.com
bellmar.medium.com
If the economy goes into recession or worse, do those playing hot potato get stuck out in the cold?
If you look at trends over an arbitrary period, they may look useful.
If you look at the similar trends over a larger period, they look different.
Therefore, the smaller periods are just random variations relative to the larger periods.
For example, sometimes it rains, and sometimes the sun shines. Is the weather cyclical? Depends on the place, time, and time-scale you're considering.
Maybe a better example is roulette. If you watch the "cycles" of red and black, you might imagine you could make predictions. Gamblers are often fooled by this randomness.
But you could suppose that business cycles are caused by a build-up of bad debt. Things to well, debts can be paid, collateral gets worth more, more investment, etc. This can't go on forever and the reverse cycle then occurs, often as rates come up. Soros store about this and called it reflexivity.
Of course I'm not saying business cycles are definitely caused by this, there's probably more to it than that. But it's a common explanation.
Why does it build up? A generalized autoregressive model explains that just as well as an oscillator does. The key difference is how predictable the periods are. The more waves you're composing to force the oscillator model to fit, the less likely it's appropriate.
You might have heard of Fourier transforms. Any time-series can be transformed into its sinusoidal components, even if a composition of waves is not a good model.
It's possible, and in my opinion more likely, that the business cycle is not a cycle at all.
Consider my mind blown - thank you !
However, it's also difficult to find unskilled labor so the only alternative is automation. Just look at all the companies that won't answer a phone anymore and force you to do everything through an app.
So IMO tech wages will remain high for quite some time.
Take the risk or don’t
Several of us exited a toxic company semi-recently.
For what it's worth, it was common for people to take minor cuts to total compensation. The old, toxic company had evolved to pay well because it was the only way they could retain people (however briefly) through the obvious toxicity. We just didn't talk about it publicly much.
But it didn't matter. Huge quality of life improvement and I don't really miss the extra money.
The people who have only been on the job a couple months are probably not truly onboarded themselves, hard for them to document what they don’t know.
It takes a loooong time to learn a system when you have this dynamic.
Viewing organizations and software engineering through this lens has been a game changer for me personally. As an individual contributor I now appreciate horrendous technical debt and glacially slow development as systematic organizational issues, rather than blaming burnt out or lazy engineers.
Now I’m much more aware and critical of technical and executive leadership. “A fish rots from the head” is one of those quotes that resonates with me more and more everyday.
Another good quote is "a cow with 2 owners gives no milk and eats no grain" (castilian proverb)
Each owner steals the other's grain intended for the cow and the cow dies and gives no milk?
It's like the human-scale version of socializing the costs/risks and privatizing the gains.
In other words: when everyone is responsible for getting something done, nobody is.
See also: Directly Responsible Individuals (DRIs) https://about.gitlab.com/handbook/people-group/directly-resp...
If you had asked me, I'd probably say that tech debt is mostly systems that do generate value but are built poorly or in a rushed manner. Deadlines creep up, devs crunch, they ship a "working" product but it has design flaws that manifest as technical debt.
But now that I think of it, I've definitely also experienced what you're mentioning (I think). I've worked on projects with questionable motives that ultimately end up cancelled or abandoned. The leftover code remains and continues to confuse newcomers.
If it stays there for too long, it will complicate the design of the underlying system because it has to be kept alive for daily business to go on. Such features are sometimes hiding in plain sight, and are actually causing a lot of pain or cause long-term risks, but we are too shy or spread too thin to address the issue. And why should we? After all, it works at the moment.
They are trying to emulate an orchestra, by rearranging the seats, in the hope that the right seating will make make them sound good. But the orchestra cannot play for the lack of individual skills and lack of the leadership.
I saw in enterprises, they are buying all possible software licenses, but nobody knows how to use them. So the management is constantly shuffling people and churning technologies, in the hope something sticks.
Engineers prioritizing making systems easier and more consistent end up with overly complex, difficult to operate systems
Product managers prioritize shipping features and end up making the software development process slower
Security prioritizes minimizing risk of change and ends up maximizing the risk of out-of-date software.
Flat organizations prioritize open communication and end up with cliques and internal politics.
Know of any good books on this aspect of sales?
I mean it is because it’s a thing that engineers worry about mainly because of ego and pride. I know that’s triggering but let me explain…
As humans we all have ego and want our work to be important which is why tech debt is important to engineers who have a myopic view of their value and what businesses can actually bear.
- I have seen companies with loads of tech debt lose 60% of their engineering staff in a year with no impact to business.
- I have seen companies with loads of tech debt cause production deployment slow to a snails pace AND still have rapid consumer growth.
Engineering is important when it’s important but once product-market fit and a great moat has been achieved that value diminishes considerably.
Companies have plenty of real debt, but still grow. Accumulation of tech debt might be a necessary cost much like servicing financial debt.
Now the question really is - what is the interest rate of your tech debt? And that's harder to know.
The whole idea behind the concept is that it _can_ be a good business decision to reduce spending (i.e. new features) and focus on paying off your (technical) debt for a while. It might as well be more important to make progress in the short term, no matter the cost. But the important point is that it's not a technical decision, it's a business decision. And the whole metaphor of technical debt is just one way of moving the conversation to that level.
For example, I’ve seen companies where tech debt has made them unable to meet the moment and fail, whereas if they could’ve delivered something better, quicker, they might have had a lot of success.
"Well, who could have seen this coming?"
"Uh, me. 20 years ago."
As a counterpoint I've been part of a company that "failed" due to overwhelming tech debt. I was one of the "lucky" few that was kept on after the redundancies in what was a shell of the former company (50 employees down to 10).
I should have left with everyone else but I had only just started at the company 3 months prior and didn't want to look like a job hopper.
I have experienced products of which the development has ground to a halt due to the system having such complex interconnections that every change required everyone in every meeting to assess the impact of a change. The root cause was constantly churning out MVPs with no thought of architecture and no overall management of the product or teams. I was the architect hired to clean up the mess.
In some cases, tech debt is as small a threat to business continuity as IT security is. That is, it isn't a problem till it's suddenly a massive problem. In other cases, it causes development cost to slowly increase over time, at which point it depends whether the organisation/cash flow can bear it. Your proverbial moat, or perhaps corporate momentum.
I would question whether incurring tech debt is generally really part of a greater strategy at the organisational level. It's a symptom of myopia. In any place I've worked, it wasn't a balancing act, but rather being willfully ignorant about the application lifecycle, technology, security implications and knock-on effects. No one said "let's move fast and fix 'er up later". At least not in earnest.
this makes me wonder who "us" means.
i make the educated guess it's "managers", which were dead weight in the Apple engineering scheme I joined, which functioned super efficiently without them, as it was emphasized how flat was a feature, not a bug, for getting things done.
Flat organizations also end up building the same thing 4 or 5 times because nobody talks to eachother. As a consultant, I love flat orgs — it means we’ll be there for a while because nobody can really tell us to leave.
> Like Google or Facebook these are organizations where engineering trumps everything else. If you’re not in engineering, your pathway to promotion is limited.
Just browsing Facebook's board...
MZ-dropout SS-MBA Mckinsey etc PA-Accounting and Business studies NK- economics & management, Mckinsey again RK - lawyer PT- lawyer
Not being engineers sure held them back!
https://investor.fb.com/leadership-and-governance/default.as...
The idea that non-engineers are sidelined is wrong.
> Engineering wins by producing beautiful and scalable systems, in pursuing that they sometimes build too complex too quickly. Product, on the other hand, wins by putting new stuff in front of customers as often as possible.
2) not true in this case. Two of the people on my list are execs
1) Founder/cofounders 2) investors 3) people who do not work at the company and are not investors that people in groups 1 and 2 think will be on their side during important votes
Facebook has been an investor led organisation from the beginning.
The fact this structure can still produce good software is neither here nor there.
Speaking as a DS who knows a lot of FB people, this is totally true. If you have a product team deliver something cool, the engineers on that team will normally (modulo variability) be rewarded a lot more than the DS people. Sometimes PM's get some of that, if the product is very successful, but the variability is lower and the mean is higher for engineers at that company (apparently).