While I plan our actions to improve or add new functionality I always refer back to my “map” on where we are, where we need to go. It helps me see the terrain, the problems, challenges, obstacles, opportunities, possibilities in the grand scheme of what I call in big words my strategy & doctrine. Sometimes it’s big in time, complexity or budget and sometimes it’s a small target of opportunity that has both immediate & long term benefits. On of those targets of opportunity is to make sure that every upgrade/migration of Hyper-V workloads lands on a generation 2 virtual machines running on Windows Server 2016 Hyper-V. Seemingly unimportant, yet … when you understand how tech debt happens you’ll see it does make a difference when done with a plan.
How tech debt happens
I have witnessed tens of millions wasted over the years by organizations that fell into every tech debt trap there is. Never forget that it’s not just bad because of failed goals and added costs but also due to being stuck and missing out on opportunities. It’s astonishing to see how bad it can become. Even at organizations that like to act and profile themselves at being modern, agile and in full digital transformation mode. Look, buzz words & glossy brochure like pictures on an “infomercial” website don’t make you the real deal. Yet while I spend many words on illustrating how tech debt happens, it’s easy to sum up.
Technical debt exists because people don’t realize what it is, how it materializes and how badly it effects the organization. And for the record, not every legacy is debt just like not all redundancy is bad.
Avoiding Tech Debt
So how do you avoid getting tech debt? Well by understanding you get into it and doing something about it! The lack of process or understanding (even worse, I rather have no process but with understanding) to the real nature, causes and effects of technical debt. This leads to decisions void of any consideration of the implications. There’s a ton of individual reasons all across the board that will create tech debt.
One of them is “business” pressure, the need to be seen as in charge and get things done. This “can do” attitude is a killer of improvement and competence. It leads to an environment where what sucks can’t be pin pointed because people focus on showing how good they are instead of finding and fixing what’s broken. They have to or they cant constantly answer “Can do” to every request. In short a 100% can do culture will make you fail.
The results are many. let’s look at some of them. Having ITIL and a change board that is so ridiculously heavy in overhead because it’s the blind leading the blind and serves only to have the checkbox ticked. After some time the process is simplified and automated (send in docs that no one reads but it does lead to an approval e-mail) and over a longer period of time it’s ignored. This leads to a constant barrage of last minute specification changes without a clue as to their impact.
Scope creep & scope dumping
Scope creep: non-managed changes or perhaps better worded and more realistically, changes by people with no technical clue but a lot of pressure and a desire to please other people of server other needs. There’s also the opposite, scope dumping: Ill considered scope reduction by people who need to make deadlines or avoid complexity they don’t want to deal with, often under business pressure.
Integration is still important
Lack of integration is another. Yes we all know we need to reduce plumbing in IT but the reality is that good, necessary plumbing avoids a truck load of problems. If you want to avoid spending too much time keeping the lights on you’ll need to do good plumbing to avoid flooding.
Handing over the key to the kingdom
Relying too much on consulting, external advisors. Always ask your self who they work for and why. Follow the money. The money will lead you to the one paying and than you’ll find out their politics, plans and ambitions. If these are not yours, alarm bells should
Disdain for learning, testing, hands on work. Knowledge comes from understanding and that requires doing. Doing with understanding grows skills, insight an knowledge to be effective when needed. If I want to destroy a company I send in consultants and I make sure they hire the wrong employees. It’s a long term play against my enemies where they fall for the perceived short term benefits for them. When I see a CEO that makes tens of millions and year after year you see the company do down the drain you just know they are not worth the money and their presence makes no difference what so ever. You could have gotten those results way cheaper.
The right stuff
Lack of any real functional documentation and insights is also an issue. You need to have the elements to find out how things are done quickly. That doesn’t mean 100% perfect descriptions to the smalls detail. That’s just windows dressing. Quality trumps quantity. This goes for anything, processes, documentation and people. Beckwith was right when he said “I’d rather go down the river with 7 man than with a 100 shitheads”
Incompetence floats to the top
The lack of a good command & control structure due to not having competent management is also problematic along with a lack of skills, talent & knowledge. Yup, too many Peter principle people looking out for number one will catalyze all bad things. Put the right people in the right place. Hard to do when you think you can but actually can’t … or when power play and politics are way more important than effective results. This leads to lack of collaboration in an environment where everybody survives in isolation instead of thriving by working together. The results are a lack of maintenance, updates, migrations, rebuilds to improve current and support future needs.
Own the problems
Which brings us to the lack of ownership. Here you’ll often see that a PO or PM only is responsible on paper and doesn’t have a clue about the service. They don’t care about it, let alone about the effects on some other business unit. The deficiency in business and technological leadership, leads to avoiding responsibility. Problems are just thrown over the wall and any issues that appear are just assigned to the “incompetence” of the staff.
Tech Debt has many reasons and that’s why it’s hard to avoid and fix. But it can be done. But you cannot buy your way out or outsource solving the problem.