Programmers should play nicely with others


There is a stereotype of a certain kind of programmer.  It’s of a young white able-bodied man, alone in his room, creating the future through the force of his intellect.  This creation leads to widespread change and a gazillion dollars for him.  While it can be amazing to create things in code, and there are many, many people much better at developing than I am, and some people get very rich through this, it’s rare that this happens due to one person’s efforts.  Even if you have no co-workers, you’re not an army of one.  In the music world, you’re more like a member of an orchestra than a singer-songwriter.

Bournemouth Sy
Image credit

Making the next whatever

Let’s assume that this lone genius is making the next Facebook / Instagram / whatever.  (I could have picked any field like AI or big data, but I’ll go with something on the web for simplicity.)  Is this website all the work of the lone genius?

This amazing code didn’t just spring into existence by itself; it had to be typed in, compiled, tested and debugged.  That means there was an IDE, with its text editor, compiler, debugger and test framework.  Did the genius create all those on the way to creating his Insta killer?  Probably not.  They didn’t spring into existence spontaneously either; many minds and hands i.e. other people were necessary to create even the smallest toolset for our lone genius.

Expanding our view a little brings in more things.  There’s probably some web framework that the code sits on, which in turn sits on a webserver.  Depending on the language that he’s chosen, there’s probably a standard library and / or run-time system like the JVM or .Net run-time.  If the system has any kind of state then that must be stored somewhere, and flat files probably won’t cut it.  So that brings in a database or some other kind of store.  And let’s not forget the operating system – the forgotten bass player of the orchestra, that you often ignore until it goes wrong.

There are very few people who could do a good job of writing all those kinds of program.  Even if our lone genius could write all that, there’s the issue of opportunity cost.  The time taken to write the whole stack would be time that couldn’t be spent on whatever it is we’re talking about.

That just describes what’s on the lone genius’ box, not in his mind or how his customers get to his amazing creation.

Nothing new under the sun

Up till now, everything has been very computer-y and therefore unlike what happens in more traditional industries.  The rest applies to ‘self-made’ millionaires in all spheres, who think that they owe no debt to society and therefore think that it’s not fair that they should pay tax to help the peasants.

How do customers get to your amazing creation?  In the physical world, that relies on roads that you didn’t pay for.  In the web world, that relies on your customers having a web browser on some device, with a lot of network magic in between you and them (most of which you’re not paying for).

For both worlds to just function there must be rules, which in turn need people to create and enforce them.  Customers killing each other on the way to your shop would stop them spending any money with you.  How do all those network boxes between your customers and your site exchange bits correctly without agreement over what bits mean what and when?  If criminals have created / rented a botnet to DDOS your site, there’s only so much you can do on your own.

Finally, how did the ability to create this marvel get into its creator’s brain?  Did he just sit at his computer and through experimentation alone work out how the programming language, IDE, data store etc. worked?  Or were book and blog authors, video creators, lecturers and teachers involved too?  Did the lone genius pay for exclusive access to their time, or were the costs shared with others, for instance taxes contributing to universities?

Playing nicely with others

There are so many people involved in the success of this supposedly lone genius.  Even programmers on their own build on other people’s work.  All programmers play in an orchestra, even if the rest of the orchestra’s music is on a pre-recorded backing track.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s