Matt Legend Gemmell Modesty is Lying

Mac OS X Cocoa and iPhone Development Services available at Instinctive Code.
Favorites icon
Favorites for iPhone
Speed-dial with style.
Mac OS X Cocoa and iPhone Developer for hire

Other Pages

Categories

Posted
7 May 2006 @ 3pm

Categories
Development, General, Personal, Work

Tags
, , , ,

Creative

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?


13 Comments

Jesper
7 May 2006 @ 5pm

Amen.

Anyone using the word “creative” to mean “something related to art direction” should be taken out and shot. Everyone needs to be creative at what they do or you end up with something totally worthless.


CJC
7 May 2006 @ 10pm

May I point your creativity at

http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html

realising that you are only creative because you are given the space to do so


Uncle
7 May 2006 @ 11pm

I don’t like the word “creative” either. I think it is wank.

It is almost on par with the phrase - “I’m really liking this blue background idea”

You’re all topguns in my opinion.


[...] Matt Gemmell speaks the truth: 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. [...]


Peter
8 May 2006 @ 9am

because let’s be honest: the last thing we developers ever want to do is actually talk to you

Don’t you think this antisocial attitude of superiority might be causing some of your unhappiness?


foresmac
8 May 2006 @ 9am

Genius. I couldn’t have said it better myself. I think somewhere Richard Florida’s ears are turning red hot.


Ben Brophy
8 May 2006 @ 2pm

I think of it as the ‘toss it over the wall’ mentality. You have to know it cuts both ways, though. There just as many places where programmers work for months on an application then pass it on to the designers to ‘make it pretty’ shortly before launch. Just as frustrating, and totally ignorant of what a designer does. Photoshop, Illustrator, etc. had designers working on them as well as programmers, and are created by designers just as much as programmers.

I think it’s really tired to hear developers asking for more detailed specifications. That just means asking designers to lob an even bigger package over the wall. Don’t blame the specs, they are nothing more than a framework for a creative conversation. If you can only bear to communicate to a designer by sending notes though a manager, then something is seriously messed up where you work. It’s hard for any one to recognize your creativity if you are unwilling to speak to them.

It seems like the better solution is small multidisciplinary teams that work closely together throughout the process of creating an application. Agile development can really help as well, it’s made our web development team (programmers, designers and managers) much happier.

And I’ve ever met a designer who golfs. You need a better cliche!


Stam
8 May 2006 @ 3pm

At least you’re not bitter… :)

Just kidding - If it’s any consolation, this kind of relationship applies to many walks of life. Management/business types suck hairy donkey balls - on the other hand they do the shit no one else wants to. Pretending to be “visionary” etc is their only hope of retaining some self-respect, so i just tend to let things lie.


Stephoid
8 May 2006 @ 5pm

Get off your freakin’ high horses, kids. I am so bored of developers’ sense of superiority. Everybody has a job. Why do you have to be so arrogant and elitist about yours?


Iain Simpson
8 May 2006 @ 11pm

I think that part of the problem is that in the the larger part of our agency (advertising), people are used to working with print, tv, radio, where once they’ve seen the final design for a brochure, etc. the bulk of our work is done, and it gets sent off to be printed.

Though technically we’re a separate company (e-business), much of the time our workflow is dictated by the demands of the other part of the business, which gets very tiresome after the 12th (perhaps not quite..) website that we’ve had to pull days of unpaid overtime to get finished.

There are broken promises that it won’t happen again, and we’ll find ourselves back in the same place again, after work is held on to by the folks downstairs, and pushed up in a hurry when the client starts getting anxious.

I don’t think that folks should take offence at Matt’s post, just take it for what it is: a harmless rant. Carry on, nothing to see here… :)


Chad
10 May 2006 @ 3am

Q: What do you call an Engineering drop-out?
A: A Business student.

Seriously though, those students (and even a teacher) at my university who couldn’t cut it in engineering tended to gravitate over to business. I can understand a certain level of smugness that engineers might have, since it is NOT an easy discipline, but arrogance should not be tolerated. That’s wonderful if you are good at what you do, but you don’t need to unnecessarily gloat about it. But to put things into perspective - I could probably do most of my co-workers’ jobs…the thing being that I don’t WANT to do their job.

After reading this post, I got the chills from remembering my last job. Very much of a sweat shop where people were put in their little boxes and not allowed out of them. As mentioned before, if given the wings to fly with creativity, do so! But some places (like my last place of employment) did not look overly fond upon developers trying to be ‘creative’ at all. Leave that to the creative staff, of course!


[...] Everything he says rings true for me. It also reinforces the necessity that development be iterative, with all contributors sharing their experience (and skills) through every phase of the project. Coders are creatives! Link. [...]


Stevie
22 December 2006 @ 1pm

Im living the dream :)


Leave a Comment

Keeping work at work Boot stuff