The most important principle of managing a software organization

During my years of consulting, I’ve run into many managers (in enterprises and startup companies alike) who just didn’t get this whole “technical debt” thing. You’ve run into those managers too, I’m sure - the kind of manager who issues pressing deadlines, marks bug reports for left-over time (which never comes), relies on VMotion or fancy SAN for high availability, refuses upgrades because of “risks” and urges you to “stop wasting your time listening to tech talks and go write features”. I’ve even heard managers tell engineers “don’t waste your time learning this framework, just write your system with it” (!!!)

I’ve often wondered - why is it so hard for them to get something that is so painfully obvious to the majority of software engineers?

How many startup engineers does it take to change a lightbulb?

2 - a technical co-founder and a business co-founder. Since they don’t have enough money for proper lightbulb they use an old socket and lightbulb they found in the garage and since they don’t fit the technical co-founder builds a makeshift adapter from duct tape and aluminum foil. This actually works as long as you don’t tilt it too much. During seed negotiations the co-founders break up and the technical co-founder leaves.