Tuesday, January 26, 2010

Startup CTO or Developer

I’ve been having discussions with several people recently about the role of the CTO (Chief Technology Officer) in very early stage companies.  In December 2007, I described how I commonly take on an Acting CTO Role in a Start-up.  I used an image from Roger Smith that describes the varying roles of a CTO as the company matures.


However, I’ve now begun questioning how and what an early-stage / startup CTO should be.  Most often at the earliest point in the life of a startup, the dominant need is certainly to produce product to get something in the market, get funding, etc.  That’s why Roger Smith puts the focus of the CTO on programming for the earliest stage.

What worries me a bit is how often I read that startups should hire a developer / hands-on lead developer.  I understand the desire for hiring someone who is going to product product.  But often the result of a Founder hiring a developer or lead developer or even a VP engineering is a gap created between the founders and the developers.  I’ll address the specifics of what this Founder Developer Gap looks like below.

Part-Time Startup CTO is the Answer

By the way, I’m not suggesting that startups should hire a full-time Startup CTO who is not hands-on.  Rather they should get a part-time Acting CTO who can help close the gap.   I recently read a post that called this a Consulting CTO and suggested:

Founders of startups use a consulting CTO when they have business vision but limited knowledge of the technology needed to launch their company.

That same post said that finding part-time, consulting CTOs is fairly hard.  I disagree with that and certainly see lots of shapes and sizes of these kinds of engagements.  Of course, I have an advantage because I organize the LA CTO Forum.

Bottom line – if as you recognize this gap, then reach out to get a slice of a CTO who can help bridge the gap.

Founder Developer Gap

I’m assuming that the founders understand what they generally want to do with the business and where the product should be going.  I provided a whole set of questions that I go through with founders before Startup Software Development – Do Your Homework Before You Develop Anything.  These questions are critical background for any developer at any level. 

You know you have a pretty big gap if you are not hearing those questions from your developer.

Of course, since you know those questions, you can just collect up the answers and provide them to your developers.  Gap closed, right?

Probably not.  Here are a bunch of other kinds of questions that get addressed by Startup CTOs.  A good Startup CTO will naturally address these.  Are you hearing these questions and feel you are getting good answers?

  • How much will it cost to build what we need to build?  How can I control costs but effectively get stuff developed?
  • How can we phase development to balance cost, features, risk, etc?
  • What options do we have?  How do we balance those options?  What makes the most sense for us?
  • Given likely market changes, how will we design and build so that the systems can respond to marketplace changes?
  • How do we need to structure the systems to get ahead and stay ahead of the competition?
  • What are the biggest areas of technical risk?  How can we address this risk?
  • What technology research is required?
  • What technologies will we use?  What existing systems will we leverage, what programming languages, software development methodologies, web application frameworks, revision control systems, etc.?
  • What other kinds of systems will we likely need?  Accounting?  Reporting?
  • What are the important security considerations?  How do we balance concerns vs. cost?
  • Where are the likely future integration points with other systems?
  • What areas of the application are likely sources of scalability issues?  What kinds of spikes in traffic could we have?  How will we address these without significant cost?
  • How are we going to manage the product roadmap?  Make sure we make short-term progress, but not at the expense of longer-term objectives?
  • What do we build in-house or outsource?  What parts might we do off-shore, on-shore, in-house?  What does the staff need to look like over time?  When will key hires come on?
  • What other kinds of capabilities such as graphic design, user interaction, product manager, QA will we need?  Who will do that?  Who’s responsible for what portions?
  • How will we find and interview developers? 
  • How do we motivate and manage developers?
  • What do we need to do to make sure we can survive technical due diligence by investors and partners?
  • What specific technical innovations might make sense?
  • What can we build that might be protectable?
  • What metrics are going to be the key startup metrics and how do we get those metrics without too much cost?
  • Where and how will we host the systems?  What’s our purchase, licensing, SaaS strategy?
  • What other CTOs can I ask about complex questions to see how they’ve addressed these issues?

Some of these questions are high-level, complex, inherently fuzzy and hard to answer.  In fact, they interact with each other to greatly increase complexity.  Technologies you use, how much will it cost, future capabilities, scalability, in-house vs. outsourced all intersect.  It makes this early stage challenging.

Many developers do not ask or answer these questions.  In fact, if you go out and find a developer, they will often default to the technologies they know, they are going to build it in-house, and it’s going to cost whatever they estimate based on their particular time.  Of course, they could use new technologies that they are not familiar with, but is that really what you want?  And they are going to be doing the development because that’s who you’ve hired – is it fair to ask them about other models?

By the way, it could be that the developer does lead you down a great path.  But I would argue that you don’t want to just default to those answers when there are a lot of other possibilities to consider.

Beyond the fuzzy, high-level questions, there are often a lot of very specific questions like do we Use Facebook Connect – Twitter Oauth – Google Friend Connect for Authentication?  This is a classic kind of combined product / technology question.  Some developers will be really good at navigating these kinds of questions.  Others will not.  This is probably less of the issue for most startups, but it’s still a likely Founder Developer Gap.

Can the Right Lead Developer Address This?

Theoretically a great lead developer can address all of these issues.  But my experience is that they often are not addressed and the result can be fairly painful.  I’m not claiming my list of questions is unknown – heck it’s right there.  Of course, it’s never complete.  Each situation will have different questions.  But still, even if you prompt a good lead developer to address these issues, you likely will still have a bit of a gap.  The lead developer will often be:

  • Limited by experience and breadth of knowledge – may or may not be aware of other systems.
  • Most interested (and rewarded for) diving in to build things.
  • Challenged to pull together a good team.
  • Naturally motivated short-term because that’s the focus of development.
  • Tired at the end of a long day of development and probably not interested in thinking longer term.
  • Uninterested in or unable to add much value to investor presentations, business proposals, new business meetings.

Again, I wouldn’t claim that it can’t be done.  But it’s just really hard for everyone involved.  And you don’t want to be in the meeting when the investor just found out about some technology and asks your lead developer why they didn’t use it.  I’ve been on the other end of that when I’m doing due diligence and the company spent a bunch of time building something they didn’t need to build.  Or going down a very questionable technology path.  It’s not comfortable on either side of the table.

More on the Role of the Startup CTO

I actually had a fairly hard time finding good resources that describe this issue.  I’d appreciate any pointers that people know about.  Here were a few…

Fabian Schonholz, a startup CTO several times over, has a great post on the Business of Technology that points to a lot of these issues:

Time to market is very much a concern that we all have, but what is the point on rushing to market with a half baked product that then our competition can pick apart and improve upon it, while we burnt our brand? Or worse yet, what is the point of rushing to market a product that will be obsolete in 6 months? Specially in a startup, where resources are always scarce, plotting the right strategy, not “rushing”, coming up with a flexible product roadmap and priorities will get a company closer to success with less headaches and technologies and products can be easily reused and repurposed.

Eric Ries, a great resource, What Does a Startup CTO actually do?

Specific skills:

  • Platform selection and technical design
  • Seeing the big picture (in graphic detail)
  • Provide options
  • Find the 80/20
  • Grow technical leaders
  • Own the development methodology

Charlie O'Donnell, an EIR at First Round Capital -

Some links that are less Startup CTO and CTO more generally:

Again, I’d love to get more resources on this topic.  Please point me there.


Peter said...

Great post and indeed an issue not often addressed. I agree that lead developers often lack the "big picture" (or the interest in the big picture) and must say that the thought of a parttime CTO hadn't even occurred to me until now.

I've done some consultancy jobs for established business and have always sold it as: "translating technology to business lingo".

Because, I guess that is what it boils down to?

Tony Karrer said...

Peter - that's a good high level way to frame it. However, I think that's also a bit of what a product manager would say as well.

Glad to spark the idea around part time CTO.

Joe P. Said said...

This is an awesome post.

I'm the type that works on feel and intuition. Mostly because the resources and structures are vague or don't really know what they are talking about. This puts many things I've struggled with tech startups into the light.

I've taken the CTO role before and hope to again in the future. I'm exclusively a startup guy and I've had the trouble of seeing the transition from pre-launch to post launch and beyond. I now believe strongly that a pre-launch needs an acting CTO and one that isn't the lead dev. CTO's get equity, devs don't (unless you don't have money).

Anyway .. I have many thoughts now that I need to write down .. and a lot more to read.

Thanks for the first class post! (they are rare)

Tony Karrer said...

Joe P. - thanks for the comment. I've been following you on twitter, so nice to connect this way as well.

Look forward to your thoughts on this!

gammill said...

Excellent post Tony. This is extremely helpful for me as a non-technical startup guy. I'm thinking I should draft a post on the other side of the coin - CxO (the broad business guy - the one focused on customer development). Thanks for so much detail and specificity in your post!

BigAl said...

Thanks for this great post. I'm doing something even more strange in that I'm an expat living in Colombia and am setting up a new software development firm and want a CTO from the states (or Europe). This would be a part-time CTO who we'd fly to Colombia periodically, but who, we feel, can spend most of his/her time in the states where we are looking to get most of our work (more interesting projects in social media, mobile and gaming).
Can you give me any further advice or comments related to what I want to do? http://ow.ly/2C6T0

Tony Karrer said...

Hi BigAl,

Most offshore firms have a CTO who is local to the development team. I'm not quite sure I get the model you are going for. I could see where a local CTO would define the plan and then a Senior technical person offshore would implement. But it doesn't sound like that either.

Shams said...

Gr8 post Tony,
Being a CTO at startup I know it’s really a challenging stuff sometime you need to wear multiple hats with different responsibilities from developer to debugger.

ralph said...

Werner Vogels blog post is now at: http://www.allthingsdistributed.com/2007/07/the_different_cto_roles.html

Shruti Kapoor said...

This is an extremely useful post. As a CEO of a very early stage startup with limited funding I am struggling to find the right people to join our team. The suggestion of a part-time CTO is excellent and very valuable. Like i said we have very limited funding, how does one motivate and attract good people to join our team when the cash component is low?