I have worked with a lot of CTOs or similar. Sometimes CTO is a title that can approve large budgets and an effective CTO is actually their direct report.
Being a CTO is less about technology and more about understanding the global technical landscape, accounting and legal implications to large budget decision making. If I, for example, choose Microsoft as a vendor will that impact our Pacific market and if so what is the cost benefit? These are not trivial choices. To an extent a lot of the job is risk mitigation, reducing liability for the company.
A good analogy would be a CEO of a shipping company not knowing how to sail. They will know costs of the voyage, costs associated with the voyage, etc. but not the day to day of how a ship operates. And they don’t need to. If anyone has worked with a micromanager they’d appreciate this.
Yeah bit of an odd request for me to send you my business contacts. It really is being in an industry long enough to build a reputation to get things done. And these are enterprise projects, there’s no sexiness here. This is webforms in .NET type of stuff. Learning to ignore that the codebase is imperfect and will never be reasonable is one of the reasons I get calls.
I’m a consultant and make a living saving bad projects. That’s literally why I get phone calls for work. Keep in mind that I work in high level modern languages, I’m sure there’s some crazy proprietary cpu running a robot in a Detroit factory.
In any case there’s never been something that I’ve run into that I’ve not figured out. It takes time, and the hard part usually is not figuring out what it does but the weird edge case of the moon aligning with Venus and then the output suddenly changes. This is why understanding the requirements is more important than the code. I don’t care if the code is bad if I can more or less write a test case against it and make sure it does that.
That said complete rewrites never happen. It usually is only rewriting portions when that is cheaper than fixing. It is the if it isn’t broke don’t fix it adage.
The only time ever I’ve been stuck was when I saw a proprietary software implantation on top of a custom software package ontop of Solr (technically ontop of the JVM) create a large object heap issue ontop of a proprietary OS (Windows). It wasn’t code related I diagnosed that it was a GC issue, but it wasn’t in any code I had source to. A Windows update ended up fixing it. And this is why working with enterprise software is hard.
Being a CTO is less about technology and more about understanding the global technical landscape, accounting and legal implications to large budget decision making. If I, for example, choose Microsoft as a vendor will that impact our Pacific market and if so what is the cost benefit? These are not trivial choices. To an extent a lot of the job is risk mitigation, reducing liability for the company.
A good analogy would be a CEO of a shipping company not knowing how to sail. They will know costs of the voyage, costs associated with the voyage, etc. but not the day to day of how a ship operates. And they don’t need to. If anyone has worked with a micromanager they’d appreciate this.