TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

What it really means to be a CTO

89 pointsby wdaherover 14 years ago

12 comments

imajesover 14 years ago
I sorta disagree. Sometimes being CTO is about instituting technical leadership from scratch. There have been a couple times where i've worked with a company (as a contractor) and helped them in a CTO role. This has ended up with a need to scrap everything and start again.<p>That decision was acceptable because of the complete lack of any technical experience in house (100% outsourced, multiple vendors) who had very different patterns of development. Couple this with no tests, no process and no patterns, you're stuck trying to work against something that's unpredictable.<p>The way forward then is to hire a team (even if it's just one guy) internally who can have ownership of code. Then instituting good practice and a sensible method of rebuild and rediscovery. Obviously this hinges on having enough runway to get into it properly.<p>tl;dr: sometimes it's ok to scrap it all and start again when your goal isn't about preserving code but instead is about building a better product and technical culture inside a company.<p>Getting downvotes - I wanted to add something: There's a real risk of making problems worse when you don't have any ability to stop and change. Working with existing code is great but when you have existing customers running into bugs on a daily basis, and fixing them would change the business logic that others are relying on, you either choose to build more technical debt or you swallow it and start again. Obviously this depends on runway, position, etc.<p>There are many times when companies go through their proto and raise seed only to find that their original hypotheses aren't working, and to change requires a significant re-architecture. Bolting this on to existing codebases can end up with code so complex that it won't stay up, and you end up spending six months in pure fire-fighting ops mode to keep the thing alive. Knowing when to recognize this and acting accordingly is the right approach, even if that sometimes means calling it a day on the existing code and starting again.
评论 #1907889 未加载
mathgladiatorover 14 years ago
It also means having root access.<p>All kidding aside, that is the central question of being a start-up CTO. All non-business building aesthetics and measurements are out the window until you have customer #1. After that, the goal is to support the customer as best as you can. If ugly code is making modifications difficult, then you rewrite only then. If it is working, then for all that is holy leave it alone. If the code is beautiful and a change will make it ugly, then it will be ugly.<p>One of the lessons I wrote about goes core to this. There is more value (to a company) in learning how to navigate, manipulate, and fix large bodies of ugly/shit code than trying to rewrite it in a perfect way.
netaustinover 14 years ago
Broadening the idea of a CTO from startups to companies with long track records, I've always thought of ideal CTOs as those who can balance risk and stability, growth and retention. They are elastic enough to handle being stretched between the business/product/finance goals of the organization and the engineering required to make the product actually go.<p>Good CTOs know about all the shiny new things but have the good taste to apply them only when appropriate, can manage the finances of an engineering team, and aren't afraid to hire developers who might be smarter and better than themselves.
rickmbover 14 years ago
The role of the CTO depends on the context. Sometimes you lead, sometimes you just facilitate. Sometimes you focus on technical quality, sometimes you focus on business objectives. It all depends on the balance within the company and the companies objectives.<p>Bottom line is that you base your strategy on what the company needs, not on some abstract notion of a good CTO. The only consistent objective is to make yourself as superfluous as possible by creating a balance between engineering quality and business objectives that maintains itself without constant management interference.
blantonlover 14 years ago
What it means to be a CTO at a startup is significantly different than what is means to be a CTO at a Fortune 500 company.<p>I realize the audience here on HN - but that's a very important distinction to make.
brianwillisover 14 years ago
This reminds me of Joel Spolsky's Things You Should Never Do (<a href="http://www.joelonsoftware.com/articles/fog0000000069.html" rel="nofollow">http://www.joelonsoftware.com/articles/fog0000000069.html</a>). It's old advice, but still as relevant as ever.
评论 #1908118 未加载
dansingermanover 14 years ago
"one of Seattle’s most impressive companies, I Can Has Cheezburger? " - Really? Does that say more about Seattle, or the Web at large?<p>(Or was this just a joke and I missed the point?)
评论 #1908166 未加载
评论 #1907979 未加载
elliottcarlsonover 14 years ago
I was brought in to a company a while back and took on the leadership role for a while (then brought in a friend to actually be the CTO as I wanted to be pure hands-on). When I arrived at the company, the original code base was a mess - originally outsourced to India, then given to a company in China and then a developer in the Czech Republic. The code was using amazing code like "$sourceboy = $sourceboy;" and tons of other gems.<p>Anyhow, the decision was quite clear a rewrite was in order. The original code base received a little love here and there to make it work, but in the end we replaced it all and the company ended up selling for a little shy of 8 digits.<p>While you may not be able to just scrap it all, there is no reason you can't do things the right way behind the scenes and then relaunch the right way over time. I think a good CTO or leader should recognize what will be better for the company, and perhaps at times that does indeed involve maintaining what you have - but if it is indeed broke; it's also in your best interest (as well as the company's) to fix it.
alanstormover 14 years ago
You can tell a lot about the culture of an organization by comparing the official and unofficial duties of the CTO vs. the COO. One of the better things I've seen written about what a CTO is came from this Rands quote<p>"There are two classes of Free Electrons. Sr. Electrons and Jr. Electrons. Both have similarly productivity yields, but the Senior versions have become politically aware. In technology savvy organizations, most CTOs fall into this category."<p><a href="http://www.randsinrepose.com/archives/2005/03/20/free_electron.html" rel="nofollow">http://www.randsinrepose.com/archives/2005/03/20/free_electr...</a>
johngaltover 14 years ago
This reminds me of "you go to war with the army you have, not the one you want".<p>It's easy to think about what the perfect greenfield solution would be, but this is rarely the case. There's the "best" solution, and the "most applicable" solution.<p>In my conversations with non-technical managers I spend much more time arguing against the "best" solution, and for what best fits our situation. If I can't reach them I will break out this line:<p>"Nothing would make me happier than to spend more money and time on new technology, but I think we can meet your needs with X."
melvinramover 14 years ago
A lot of comments here seem to be missing what the post was intending to communicate (IMO.)<p>It's not about whether starting from scratch is okay or not. It's not about whether mixing various technologies to get to something that works is okay or not.<p>It's about aligning business needs with the execution plan and the resources available.
DanielRibeiroover 14 years ago
The point it makes is one aspect that Mike Cohn's chapter on Financial Prioritization really gives great insight (<a href="http://my.safaribooksonline.com/9780137126347/ch10" rel="nofollow">http://my.safaribooksonline.com/9780137126347/ch10</a>). In the end, such issues are a business decision, and making it can be very detailed and complex or very concise and simple, depending on things like project size and how agile must you be. But they are business ones. Looking into them through any other lens risks a series of possibly very bad decisions.