Matt Gemmell

My new book CHANGER is out now!

An action-adventure novel — book 1 in the KESTREL series.

★★★★★ — Amazon


Development, General, Personal & Work 4 min read

Developers can’t be creative, right?

At work, we pretty much have three main types of people: business folk (managers of various kinds, account handlers and the like - people who use their phones and email clients heavily, and spend a lot of time in MS Office applications), and the two types who actually create the stuff that we make money from: developers and the so-called “creatives” (graphic designers, copywriters, page-layout people and so on).

Notice how “developers” and “creatives” are mutually exclusive categories there. Indeed, one of the states a project can be in (and indeed seems to often be in) is “waiting for creative”, i.e. currently in the process of being visually designed or put into a PDF or assembled into a brochure for print, or whatever. If somebody needs a web form which chucks customer info into a database for later download as CSV, it’s a job for the developers. If somebody needs a logo or a poster, it has to be sent to “creative” folk.

You can see where I’m going with this. It’s a source of semi-constant (albeit rather low-grade) annoyance for those of us who are developers that our work is seen as somehow orthogonal to creativity, and indeed that we either don’t possess that quality or at least don’t rely on it as a primary skill on the job.

Worse, our role seems to be seen as the final piece of a job; the simple, mechanical execution of a (visual) design, with the design itself being the bulk of the work. We routinely have jobs which are held in the “creative” phase for significant periods, then only arrive for implementation (almost always a dynamic site with a CMS) within 2 or 3 weeks of deadline. This isn’t the exception; that’s usually what happens. There’s a perception that “doing the code stuff” (actual quote, of course) is very technical, but not actually that hard or time-consuming. It can thus be left to the “specialists”, and given a thin slice of the schedule towards the end of the timeline. Surely it can’t be that hard to make a flat JPEG visual into an actual website?! We already drew it for you!

This is the set of perceptions that I think many developers struggle with during their working lives. The reality, of course, is that:

  • Development (to any reasonable standard) isn't easy, nor is it a generally accessible skill.
  • Development is not a linear, pre-determined thing. There are as many ways to implement something as there are to design how it looks.
  • Decisions are a fundamental part of development, and not even just those made for reasons of architecture, optimisation or interoperability. There are constant decisions involving style, personal preference and general vision regarding the project's scope and desired outcomes.

The most important reality, however, is one I want to state separately: You may think you’ve specified the project, but you haven’t. Unless you’re a developer yourself (and maybe even then), trust me: your requirements are woefully inadequate for an implementation. Always. There is a gulf of technical reality between what you vaguely think you want and what is required to actually bring into being a piece of software which gives it to you. What we do, every single time, is some combination of:

  • Decipher your stated requirements, which are almost always rather abstract and which are very often specified obscurely;
  • Use our experience and intuition to determine what it is you actually want, regardless of what you've said you want;
  • Identify all the ways in which your spec either (almost always) subtly contradicts what you want, or (absolutely always) is insufficient to fully describe what you want, and then we complete the specification ourselves;
  • Determine the technical and other requirements we need to actually implement the real spec, most of which you are blissfully unaware of and the remainder of which you probably haven't provided yet;
  • Ask you a whole bunch of questions (probably via our faceless business middle-people, such that you'll never know the questions came from us in the first place, because let's be honest: the last thing we developers ever want to do is actually talk to you, since it would cause us no small amount of pain) which allow us to nail down the areas of the specification which can't be clairified without your further input;
  • Identify the list of questions which ideally you'd answer but which would require so much explanation and effort to even convey to you, and whose outcome would be so unlikely to be noticed by you in the first place, that it isn't worth even making you aware of;
  • Make educated guesses as to the answers to these questions;
  • Coordinate the fetching of required data, artwork and so forth from various other people which we need in order to implement your project;
  • Actually go ahead and implement it, usually in 10 days.
  • That's the reality. You can't even be just a developer, most of the time. You must also be a project manager, translator, architect, designer and psychic. Particularly a psychic. We are the ultimate professionals, without which your spec is just a crappy HTML email from Outlook, and your design is just a JPEG. It's also worth noting that, whoever you are, we very frequently do your job too. Picking only genuine examples from the last month alone, I have:
  • Created graphics for sites in Photoshop and/or the Gimp;
  • Made layout and other visual design decisions based on both technical necessity and also aesthetics;
  • Edited client-supplied copy due to the standard of English being frankly shocking;
  • Written original copy for online content, due to the bizarre reality that project deadlines still apply even if the client has repeatedly failed to supply needed content;

None of this is anything extraordinary or even unusual, as any number of my fellow developers can readily and endlessly attest. Yet, we’re purportedly not creative.

You write your emails in Outlook; we wrote Outlook. You lay out your brochures in XPress or InDesign; we created both of them. You create your artwork in Photoshop and Illustrator; our artwork is Photoshop and Illustrator. You may have drawn the vectors in Flash, but we made Flash and then made it work in your browser.

FileMaker, Access, IE, Firefox, iTunes, Windows, Word, Excel, PowerPoint, Entourage, BitTorrent, Bearshare and all its cousins - that’s all us. Your scanner and your Wacom wouldn’t work without our drivers and protocols (and wouldn’t exist without the skills of our engineering cousins). How about Amazon, or eBay? Or indeed Google? “Developers” did that.

You may broker the deals and play the games of golf and pay the cheques and send the emails and make the phonecalls, but it’s all empty promises without our work. And that deserves an appropriate level of respect, which just isn’t inherent in having “creative” be a different category from “developer”.

You might set the price, or schedule our time, or decide how (a part of) it looks… but in the end, we almost always create it. If that’s not creativity, what the hell is?