The Zen of Source Code

Olivier Pichon
Jan 17, 2020 · 5 min read

This is the first article in a series where I discuss key software concepts that a non-tech manager should know. Next articles will focus on deliverables, technical debt, MVP, the role of a CTO.

Source code is nothing. Source code is everything. Source code is worth nothing. Source code is worth… well, something.

Source code is the stuff developers produce every day, all day long. If you look over a dev’s shoulder, you might see things that makes no sense to you, but you might recognize a few quasi-english words here and there: if... else..., foreach, class, function, etc. That’s source code.

Image for post
Image for post
Photo by Markus Spiske on Unsplash

Source code is irrelevant

As a non-tech manager, it’s very easy for you to ignore source code, and in fact there are many reasons why you should.

It’s meaningless gobbledygook to you. You can’t contribute anything of value by looking at it. In fact, you may break it if you touch it.

Your users care even less than you about it. In fact, they will never even see it. Users care about what they can do with your software product that is either useful or fun, in other words, functionality.

It is not a valuable criteria to evaluate your developers’ performance (at least its quantity; quality is a slightly different matter — see below). You don’t hire developers to write lines of code, but to produce functionality (ie what users care about). Developers should primarily be evaluated on their ability to produce features that add measurable value to your users.

Source code is not a barrier to entry. You may think you’ve done something extraordinary, but to a developer your source code is likely to be fairly bread-and-butter. If you have truly innovated, then apply for a patent; but then the patent is the barrier to entry, and then only once approved. Also, however much time and money you spent, assume a competitor can do the same in 2/3 or half the time. Maybe less if they have deep pockets and can assign a decent budget to it.

Source code is not even software. Software is the stuff that runs on your servers, or on your users computers and phones. Software is the result of a more or less complex process (generally called “build”), of which the source code is the raw material. This process may include compilation, obfuscation, compression, packaging, etc.

Source code is precious

Despite all this, your source code is precious. First, there is no software without source code. Source code may be the raw material of software, but it’s pretty much irreplaceable. (Yes, “no code” and “low code” solutions are emerging, but they are still a long way from fulfulling all your software development needs).

Even to modify the software, developers need to modify the source code (some exceptions may apply through the use of configuration settings which may be changed outside of the source code, but that is limited).

The quality of your source code is directly responsible for the performance of your software: whether it is sluggish of fast; bug-ridden or bug-free; easy to maintain or not; whether it is easy to onboard a new developer in the team and how long it will take before she is productive; whether the software is easily extensible, and new features can be added fast.

More crucially, whether your MVP is scalable. There is nothing worse than not being able to follow through on a successful launch because the software cannot scale appropriately (contrary to what you might think, it is not a nice problem to have).

The reverse is also true. An over-engineered source code — correction: an unnecessarily over-engineered code — will drain your cash and waste valuable time to market.

Source code is an asset

Your source code is an asset. In fact, it’s likely to be the only asset your startup has. Transfer of IP in software refers mainly to ownership of the source code.

To protect it, you first need to ensure you have all IP rights to it. Check the employment contract for your in-house developers; check the service agreement with any outside provider. Outside providers may impose a reserve clause where IP rights vest only upon full payment of their invoices. Avoid this if you can; offer to pay in advance. I recommend monthly payments to reduce risk on both sides. But in any case, the risk of losing a deposit is nothing compared to the risk of scaring investors away because of a dispute over IP rights with a third party.

Possession being nine tenths of the law, you should own your source code. Source code is stored in specialized servers called Version Control Systems(VCS). There are 3 main providers who offer this as a service, and it’s free: github, bitbucket, and gitlab. Open an account in the name of the company, and invite your developers to join.

The first question I ask when doing a tech audit is “Where is your source code?” Surprisingly, 90% of startup founders either cannot answer this question, or give the wrong answer (eg “on our dev’s laptop”). The correct answer to this question is one of github, gitlab or bitbucket.

You must also demand from your developers that the source code they write each day is saved to your VCS account at the end of the day at the latest. Source code that exists only on a developer’s computer has zero value, and you should refuse to pay for it. It also defeats the purpose of storing your source code on your own VCS account, and prevents collaboration beetween devs. You want all your source code as soon as possible on your account.

Source code has zero intrinsic value

Unfortunately, as an asset, source code has an intrinsic value of zero. In some countries, like France, accounting rules create a strong incentive to capitalize source code at cost (salaries or outsourcing fees). Do it if you have to, but don’t believe that number. Most investors will recalculate your balance sheet anyway and take it out.

The true value of your source code is its replacement value

On the other hand, source code is like your old car, which has no market value, but would cost you some serious money to replace if it broke down. If you had to rewrite your source code from scratch, it would cost you a significant amount (it always costs less than the first time round, but still).

This is not an outlandish scenario, by the way. It happens far too frequently that source code is held hostage by a software shop wanting to be paid before they release it, sometoimes asking for far more than was originally agreed. In most cases, this is a death sentence to the startup.

dzango

tech accelerator

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store