Is Code Written To Be Read?

The other day I attended a tech talk hosted by Facebook. Their internal platform team was talking about how they manage the Facebook framework and code base.

The presentation was titled “Code Is Written To Be Read”.

Immediately my gag reflex kicked in. Code is written to be read??? Really??? I literally can’t remember the last time I sat there and thought “hmmm, how readable is this code, I wonder if so and so will be able to understand this”. Having said that, I think I was the only person from a startup in attendance, most were from Google, Zynga, and other larger tech firms. So perhaps I was the wrong audience for this topic.

Whatever their problem is, it is not mine. In my world I have one reason to write code – TO SHIP.

“Code is Written for Users to Use It” (i.e. just ship or shipping is a feature) – that is the startup equivalent mission statement.

And this is where all the “maintainability” coding trolls come in and leave comments like “yeah, but it’ll be huge advantage if we can iterate quickly and get a v2 out and so on and so forth, thus we need code thats easy to maintain”.

No.

Here’s the reality – your product is likely going to fail, so if you wasted time and money making fancy abstractions, doing code golf, and focusing on elite coding craftsmanship… you blew it. You failed. You should have finished it 2-4 weeks earlier instead.

You have to EARN maintenance as a problem. You have to EARN v2. You have to EARN the right to practice expert craftsmanship. If you get there, if you really get to the point where maintaining your code base is a problem for you where many other developers are reading your code… congrats! You’ve succeeded. Go nuts, rewrite everything. You deserve it!! Forget every word I am writing, and go attend the Facebook tech talk and take diligent notes.

But for most of us, we are not going to earn that right. We are going to fail or pivot or leave or get acqui-hired or whatever. That code is going to get thrown in the trash never to be touched again. So how’s that clever FactoryOfTaskFactories abstraction feel now?

And that’s why you probably don’t want to hire Facebook or Google engineers for your startup. And more so, if you are a new grad engineer who aspires to be a startup founder one day, that’s why you don’t want to join Facebook or Google.

Look, it’s not that there is something wrong with those developers. I’m sure working at Facebook or Google is fantastic. It is the closest thing to a tenured prof position you can get in this field. The problem is that they operate under significantly different operating conditions than you do (unlimited money, unlimited time, lots of technical resources, working across massive teams, etc + MASSIVE scale problems, huge performance requirements,petabytes of data, etc). They learn a very different craft than you do.

Your craft, the startup developer craft, is simple – “get things done”. The other parts of the craft, you have to earn.

(caveat – if you are building a startup focused on platform or tools being used by other developers, your craftsmanship should be excellent)
(disclaimer – I have nothing against facebook or google, they are full of friends of mine and other wonderful and smart ppl)

We can’t all be founders

CC-BY-NC-20  Some rights reserved by Swamibu
AttributionNoncommercial Some rights reserved by Swamibu

“We can’t all be heroes because somebody has to sit on the curb and clap as they go by.” – Will Rogers

It’s true now even more than when Joe Kraus (@jkrauswrote in 2005 (original post), “it’s a great time to be an entrepreneur” (see Mark Suster’s brillant post on the startup explosion and on changes in the software industry). But is there too much of a good thing? Mark Evans asks if there “are too many startups?”. I think the question that Mark is really asking is not are there too many startups, but is it too easy to become a founder.

We put a lot of focus on the founders of early stage ventures. But let’s face it, not everyone is or should be a founder (See: Founders versus Early Employees). We need to start and grow companies. This is more than just a whole bunch of 1 and 2 person pre-seed startups. We need people to want to cut their chops at Wattpad, Wave Accounting, Well.ca, Lightspeed Retail, Fixmo, Shopify, Kik, Hootsuite and other startups. People that can grow a company to 500 million users and beyond.

“Being an early hire at a startup gives an individual the ability to make tremendous impact on an organization as it grows – and both the founders and those hires should know it.” David Beisel

We need to create companies that create opportunities for employees to become their Chamath Palihapitiya and Andy Johns or Adam Nash. There are a number of Canadian startups that are poised to break out. All they need is a few key people to make a huge difference. I tried to highlight a mix of founders and the people behind the scenes on the Hot Sh!t List (2011, 2012). There are the founders that we always talk about, but there are people behind the scenes that are driving.

“Cross-pollination among companies is what drives so much of innovation, so I would not project a lot onto this event” – Brett Taylor (@btaylor)

We’ve seen a number of young founders build brillant products and then move to new roles. Josh Davey (@joshdaveyLinkedIn) founded BurstN and is now killing it at Chango. Daniel Patricio (LinkedIn, @danielparticio) founded Pinpoint Social and is building products at Jet Cooper. Ben Yoskovitz (LinkedIn, @byosko) founded StandoutJobs and NextMontreal, is now the VP Product at GoInstant. There are lots of opportunities at Canadian startups for entrepreneurial employees to make a huge impact!

Looking for a gig at a Canadian startup? Check out the StartupNorth Job board which features jobs like:

More reading on starting your own vs joining a startup:

 

Round13 Capital puts founders first

Scott Pelton, Bruce Croxon and John Eckert - Round13 Capital

Round 13 CapitalWhat’s interesting about the Round13 Capital announcement today isn’t the size of the fund – they are targeting $100MM. It isn’t the people who are involved – they are amazing. It isn’t the LPs – they are different. The team, Bruce Croxon, John Eckert and Scott Pelton, are bringing together a group of entrepreneurs to serve as mentors. This is not uncommon in the US with a number of funds like SoftTech VCFelicis Ventures, Founders Fund and similar to Founder Collective (if you are interested read the Kauffman Foundation’s Do Entrepreneurs Make Good VCs? [PDF]).

“Venture capital firms with a greater fraction of entrepreneur VCs have better firm performance. The positive relation between entrepreneur VCs and performance is stronger for venture capital firms specializing in high-tech industries and in early-stage investment.”
— Do Entrepreneurs Make Good VCs – Entrepreneurial Finance and Innovation Conference – The Kauffman Foundation

The Round13 Capital team has done an amazing job of bring together founders with exits as both LPs in the fund, and more importantly as mentors for their portfolio companies. This is a critical differentiator for Canadian entrepreneurs. Hopefully the Round13 fund will close and they can start funding Canadian entrepreneurs soon.

Round13 Investors/Founders

This is great new for Canadian entrepreneurs!