Developers conjure something from nothing, all day, every day; to my mind this is creation in its purest sense. Okay, we’re not knocking up a universe in seven days or putting the final touches to The Scream – although it may often feel like that – but building order, fun, even beauty, from a tapestry of ones and noughts is …
It doesn't help that many software devs have spent the last 30 years insisting that they're actually "software engineers", against all evidence to the contrary.
the thing is, it's really not an either/or outcome. Software devs have to have many of the more obsessive characteristics of the engineer and the flighty genious of the art diva combined. The urge to classify people as one or other is the real problem.
I beleive you are highlighting the main misconception of society in your comment here.
Engineers ARE BOTH technical AND creative people.
Solving a complex engineering problem requires both technical ability and a creative mind. The best engineers often solve the new problems by coming up with new techniques, which obviously involves a creative element. Even applying an existing technique to a new situation involves imagination and creativity.
The problem is that (in this country at least) engineers are considered the doers. I remember a poll in the UK asking people to name the most famous engineer they knew. The most popular answer: Kevin Webster, a mechanic from Coronation Street. It does not help that cleaners have job titles like "Sanitation Engineer", but in this country the word Engineer is misunderstood by the vast majority of the population.
Contrast this to, for example, Germany. Over there, engineers are looked upon very highly, in the same way as doctors. I beleive (although I may be wrong) that there are rules about who may be called an engineer.
The problem is not that Devs/Coders/Software engineers are not recognised in their creative capacity, but that technical creatives in general are not recognised by the majority of the population. This is why we are regulated to "doers", and the crayon brigade get the aclaim.
"in this country the word Engineer is misunderstood by the vast majority of the population."
and recruiters (yes I'm still bashing recruiters) as is evidenced by the near total lack of comprehension of how a BEng is not the same as a BSc in computing.
In most of continental Europe, engineers are referred as Ing, not as Mr , in teh same way doctors are Dr. Only warranted engineers are allowed to use 'Ing', same as only doctors are allowed to use Dr xxx MD
The IEEE have been hammering out a definition of how they might approach an engineering certification and professional accreditation for what, 15 years now?
I'll stop calling myself a Software Engineer when there's a way to become an accredited Software Engineer, and I'll only stop long enough to get accredited.
More of this level of writing, less of the 'Jesus Fone lol' stuff please.
What he said!
we can make the crass comments ourselves or in the comments page. if we see them in the story we may as well stop reading right there whether it is an opinion piece or not.
Hell. I thought it was about actual programmers, not self mutilated ready made lovers.
<- - - - High education not necessarily needed. Creativity required.
We can sneer at C#...
But programming even on that level is still one of the most complex and creative tasks humanity have invented.
Thanks to Microsoft, programming is widely more complex than it ought to be.
It isn't on a par with neurosurgery -- or any surgery for that matter, now is it?
Even plumbing, is in my view, far more challenging and I am speaking as a coder.
And what about pure engineering? The stuff that gets probes to the edge of the solar system and still work after thirty years? That's far more challenging.
Oh -- and some of it involves coding. In assembler.
Honestly. Get over yourself. We are not special.
Mhh . why not ?
Not on par with neurosurgery ???
No it is not, it's way above.
Us coders can create software to replace your oh-so-mighty neurosurgeons ...
Us coders made them the tools they needed to actually do their job
As we made all the tools that increased human productivity hundredfold - at least.
As we made all the tools that enable us to have all-automated factories.
As we made all the tools the 'real engineers' are mostly users of today (yes you can ask them, most of their work is actually just using software).
Plumbing ? lol . I can make a robot that handles plumbing and the only reason it's not robot work is because plumbers are cheaper than bots.
You think we're not special ? well . maybe your coding sucks I don't know ...
Sure thing is, a good dev is more than a bit more useful than anyone in any specialty, bar the top field expert.
Probes to the edge of the solar system ? right .
The only way we went to the moon or to anywhere else is because we had computing and coders.
Honestly, come to realize it, coders are majorly important to this civilization.
No "but"s - only NOTs, ANDS and ORs.
Neurosurgery? Can they do it without CT? (CT is COMPUTER tomography)
Probes at the edge of space? Their parameters were thoroughly COMPUTED, and yes, the COMPUTER still runs the code after forty years. No bugs.
Even plumbing is built only after they calculate max flow values on a COMPUTER.
No, we're not special. Engineers once were like us. Some still are - and be it new space probe, or new medical robot, or new iphone - we work together. But some managers believe they can create value better than us. That's what article is about.
And yes, before we wrote C#, we wrote in assembler. And some of us even remember, why xor ax,ax was better than mov ax,0
I think you would be surprised to discover
"The only way we went to the moon or to anywhere else is because we had computing and coders."
Actually most of it was done by a slide rule.
My coding is actually quite good (its at least pragmatic). but there's no way I am a neurosurgeon, plumber or civil engineer in spite of having a physics degree and well over 20 years programming experience. I used to do avionics software (first proper job) but I'm neither a pilot or a air traffic controller (most of which they still do in their heads).
I would go as far as to suggest a little modesty and a sense of proportion might allow you to write even better and more reliable code.
Ok, some boring numbers
Expert Coder: around 15,000 hours (any discipline)
Expert Neurosurgeon: around 50,000 hours (that's after being just a qualified surgeon - 7 or 8 years before any specialisation).
Now ... let's review our position.
I am a coder and of course we are important in modern society. But we are certainly not rare or irreplaceable.
We're also quite easy to train and there's not a waiting list for C# coders.
Are you allright?
half decent in ASM, chances are that you will never bother with the C# super pig.
"And some of us even remember, why xor ax,ax was better than mov ax,0"
That's just wrong.
xor ax,ax takes 6 clock cycles and 3 bytes while mov ax,0 only takes 4 clock cycles and 3 bytes.
Also, architecture plays a part here and it isn't universal.
But its not important.
I believe this discussion has strayed far from the original point, so I'll refrain from commenting that part --
Coders are not "important", they are the core of EVERYTHING today.
The not rare or irreplaceable point of view is purely a business one, and it applies to EVERY single job out there.
In reality, when you have a real excellent coder, he's worth a hundred (or more) average coders because of how programming works. (when you have an excellent engineer, he's at best worth a dozen average engineers, by comparison)
I agree, my point is quite moot as I only consider good coders, which we all know are a clear minority in an environment where anyone who can code any solution (even with bugs and all) to a problem is considered a programmer by incompetent HR and Management alike.
Jesus mate it's no real wonder people see coders as backroom geeks with delusions of grandeur when you spout such utter bollocks it would make Tony Blair say, "Jesus that's a shed load of utter bollocks and I know about spouting utter bollocks!".
In defense of the crayon-pushers,
decent graphic design ain't easy. The world is full of what might charitably be termed 'programmer art' when it comes to GUIs and various colours and flavours of visualisation.
I don't think the problem of conflating software devs with tech support is ever going to go away though, because the underlying issues are just too abstract for most people to understand. Seems like the average Joe is quite capable of understanding that a civil engineer isn't necessarily going to help him put up some shelves, and a biochemist might not be very good at baking... but when I say something like 'I work in computer vision' they'll say 'I've got this problem with my printer... maybe you can help?'
You could offer to examine his eyeball instead.
I really identified with this :)
I've always found the term "creative department" offensive. The creative process is the responsibility for a wide range of roles: art, programming, UX, project management (ie. what's practical), for example.
By calling one department "creative" is implicitly calling the others "uncreative", and while it might seem to be arguing semantics, I think it sets ethos, and results in the others feeling disenfranchised, and also resentful of the "airy-fairy crayon boys" that make up crap that's unimplementable.
Similarly, calling the programming/development department "Technical" is an insult to those art guys that know their tools with a deep, technical knowledge and expertise.
Call the departments "Art" (as programming might be a craft, but it's not art); "Programming" (as "development" can be confused with business development); and the combination of the two (plus any other project-focused depts, eg. not Accounting) "Production".
re: programming might be a craft, but its not art
I refer you to Mr D. Knuth's "Art of Computer Programming"
not that i disagree with you, its just funny that the seminal work in computer science calls it art.
You don't understand
Designers are in the sales and marketing business. Sales and marketing *bring cash in* because they're fundamentally about *persuasion* - which is the only factor that really matters to sales.
Because of the way this culture is set up, many many 'technology' companies sell mediocre, flawed or broken products. They can do this because if sales and marketing are good enough, customers are so awed, dominated, or monopolised they will put up with inconvenience.
Even if they hate the product, even if it barely works at all, they can still be made to buy it. (q.v. Microsoft, and not a few big enterprise big names.)
The user experience is a relatively small part of the persuasion process. Superficial design and/or hard sell and/or monopoly building and/or evangelism are far more influential.
This is why making things work gets less traction with management than making things sell.
Now - you can argue that crayons aren't all that good at persuasion. And that's partly true. In fact, some are useless and a danger to themselves and others. But some are very good at adding a layer of want on top of something quite ordinary.
Thing is, being in the persuasion business they only need to be able to *sell themselves.*
Engineers typically don't have a clue about this. Engineers care about solving problems for their own sake and making widgets and thingummies, not so much about the persuasive leverage widgets and thingummies exert on customers or management.
Which, incidentally, is why Apple did so well under Saint Steve. Apple's ability to create a near-mystical ownership experience is far more important to customers than Apple's software, which is often less than stellar.
E.g (I hope) no one is going to claim that iTunes is a best of breed music manager. But if you compare it with - say - VLC, which has network control and all kinds of other 'clever' extras, but can't save and restore EQ curves correctly, it's obvious that leaving engineers to design things without external management works even less well.
Bottom line is that if coders want to feel some management love they need to learn to play the persuasion game.
The only exceptions are master engineers who do truly insanely cool stuff. But there aren't many of those around. And just being a competent - even a very competent - code monkey doesn't cut it for Rest of World.
If the marketing people went away, people would still buy for need. If the people who build went away, there'd be less crayons used.
Sales and marketing do not "bring cash in" they only think they do. You need to have a product to sell in order to make money, sales and marketing are just self important fluff.
Oh I do understand
Persuasion is the key - I think it's where technical people often fail; we spend so much time getting it RIGHT, that we neglect to focus on persuading others why it's right, how tricky it was to get right, why it's better doing it this way than that way.
So yes, in the end you are correct; what matters is convincing others.
Sales and marketing do most assuredly bring money in. They do a hard job, and they're pretty much essential for any business... especially one that needs to sell stuff to other businesses. Unless you've developed some kind of sexbot that cures HIV, you're going to have to work at making people want to buy your product. Conversely, a well marketed but mediocre product will do just fine in the absense of serious competition; this has been demonstrated over and over and over again.
I share the general Dilbertesque dislike for the sales drones as most other techies, but having worked in a couple of startups it is extremely and unpleasantly clear to me what a necessary evil they are.
Actually it is possible for Sales and Marketing to "bring cash in" without a product. Except they aren't called Sales and Marketing people, they're called Investment Bankers.
They bring cash in . From the other companies market share.
Yes they do . and yes it would be worthless outside of capitalism. But here it is, market share > all.
A problem might be that, unlike most other creative persons, programmers rarely keep the intellectual property rights to their work. I don't know British law, but in Danish law, programming is an explicit exception to the rule that creators automatically keep the rights to their work.
Another problem might be the success of free open-source software: If people give the software away, it surely can't be that hard to make it in the first place? Very few musicians or novelists give their work away fro free. An exception might be the increasing success of webcomics, which are often free to read online, but where the creators earn by selling printed books and merchandise (and a bit through banner ads).
"I don't know British law, but in Danish law, programming is an explicit exception to the rule that creators automatically keep the rights to their work."
Are you talking about this in an employment context or in general? I'd be really surprised if, in general, an individual had to actually assert their claim to copyright in a formal way over a work (more than just noting it in the source code), especially given that Denmark is likely to be a party to a bunch of treaties about this kind of thing.
Only in employment context.
Simple fact is that good software makes it look easy. And in the mind of end users, if it looks easy, then it must have been easy to create. And it looks easy because, well, what it's doing is obvious, real-life behaviour, isn't it?
I remember helping out an end user once on an application I had written. As an aside, she gleefully demonstrated a neat drag and drop shortcut she had discovered by accident. She showed it as if it may be news to me, like it was a fortunate chance that this was possible. I had to explain that, yes, I knew you could do that. I had coded that. I had, in fact, spent some time designing that. These things just don't happen by chance. But in the end-user's mind, because dropping one thing on another is obvious real-life behaviour then, naturally, it would work the same on the computer. So how hard could that be to code?
A joy to read - thanks!
There has been no such rise in my lifetime. The colouring-in brigade have *always* had more recognition. The general public have always had more engagement with people who were doing jobs they could understand. The downside for them is that this same understanding also leads to the "my six-year-old could do that" retort, which is only justifed in 99% of cases.
Oh, and software is hardly unique. All branches of science and engineering are extremely creative. That's why most people can't do it. Ironically, most of the creativity stems from the need to conform to various constraints, like those pesky laws of Nature. Those "artists" who just sprinkle paint on the floor prove this, even as they reject it.
Reflects exactly how I feel
Great article. Probably reflects exactly why I feel so depressed about my career as a software developer these days.
Or to put it another way
Programming is a poetry for our time?
My attention was grabbed by the title and leading paragraphs of this article. It's a horrible truth that design and creativity is vastly under-appreciated in our society, even deprecated to an extent. Management, financial services, and marketing seem to be the big winners, all activities that produce nothing and pay huge rewards. The creatives who the engine for these activities are ignored and unappreciated.
Nor do many appreciate the effort that goes into breaking down complex tasks into simple concepts. It's like coding itself - a huge volume of unthinkingly bashed-out code (that will be a nightmare later on) will make a much greater impression than a much smaller set of carefully crafted modules that are robust, forward-looking, and a joy to use. It's too easy to make superficial judgments that fail to appreciate the beauty of a concise, simple solution. To that extent, I am in full agreement with the author. But then he joins the very people he criticises, writing things like,
Quote: "...Steve Jobs, undeniably an astute businessman, but a man whose main personal innovation appears to have been to make some previously matte products shiny..."
And so we fall right back to dismissing something based on what we see on the surface. Steve Jobs probably designed very little of what came out of Apple, but he recognised, fostered, and developed people who could. How else would we know about people like Jonathan Ive? If you care to look carefully at everything Apple produces, it becomes very clear that someone has thought long and hard about every, single detail, from the packaging to the tiniest features of the user interface. And the very people who should recognise that effort often fall into the same trap, branding it as "obvious", "dumbed-down", or - a favourite - "shiny". Sad to see this article fall into the same pit.
You've heard about Jonathan Ive because Apple wanted you to; making him famous is a marketing thing. By putting some of their designers into the limelight they give the impression that their products have been designed, thought about at every level etc. But moreover, they want you to fall into the trap of thinking that other companies don't do this if they don't have famous designers, or that the design of the packaging is worth an extra $50 on the purchase price if someone famous is involved.
The design brief for Apple staff is "make it rectangular" and they succeed every time. If they had "make the best product you can" as their goal then the Apple store would look as random and disjointed as the Sony Centre, instead of the uniform paradise of blandness which it is.
You keep telling yourself that it's *all* about marketing. Never mind that Apple came back from near-bankruptcy and a microscopic marketing budget, yet somehow managed to conquer a bunch of markets *despite* having much smaller R&D, production and marketing teams than the likes of Sony, Microsoft and Nokia.
Your notion that any company would be idiotic enough to "make the best product you can" without imposing *any* limitations on bill of materials or time is also utterly ludicrous. It's impossible to fulfil that brief without at least the time constraint as technology is constantly improving: when do you draw the cut-off line and actually *ship* your product?
All those products had to be manufactured, shipped, and sold. And these steps had to be completed within a certain period too. Jobs himself used to say that "real artists ship!" But he also wasn't above canning a project that clearly wasn't working either. (And, of course, he wasn't perfect in his judgement either: G4 Cube, anyone?)
Yes, most things Jobs did involved marketing at some level, but he was undeniably an aesthete too: design and form *mattered* to him, at a very deep level. (That he was arrogant and didn't suffer fools gladly either is irrelevant: most successful CEOs display those traits. Jobs was hardly unique there.)
As for your "make it rectangular" crack: have you forgotten what the first few iMac and iBook generations looked like?
Girls in bars
...just don't like being treated like objects.
Us devs, we're just button pressers, dontcha know. We just implement the vision of the geniuses further up the heirarchy, whose brilliance we cannot even begin to comprehend.
A great bit of writing, and some excellent points.
To my mind..
... the mistake was to let the 'civilians' know about high level languages. We should have gone with robes, pointy hats and keeping the existance of the high level languages secret. Let the punters think we are all writing machine code (I deliberately say machine code not assembler), when really we are using C++ or whatever.
Painful death to any guild members who blab.
Art not science
For the past >mumble< years I've always insisted that software development was an art not a science.
I have always been interested in watercolour painting, and would like very much to do it. I understand colours, I understand the basics of composition. I have even gone on weekend courses.
It is clear that I have no talent whatsoever in that area and *never* will have. I just do not have the necessary vital spark to do it.
This is the same for software development. You can teach (as I used to) some people a programming language, you can even teach them the underlying principles of programming, but they still won't be able to do it.
No amount of training will *ever* get them beyond the basics. They just don't think the right way. They have learned it, but not understood it.
Given enough training, most people can churn out blocks of code that do what is needed, usually in an inefficient, formulaic manner. When you ask them why they implemented something in a particular way, they will nearly always mumble something like "that's how they were taught".
Ask them to modify (or even document) somebody else's code and they are lost Usually they will simply rewrite the function from scratch, rather than build on the existing code.
Unfortunately most project managers see "developers" as interchangeable blocks on their chart, and "programming" as something that anyone can do with the right training.
As many others
"No amount of training will *ever* get them beyond the basics. They just don't think the right way. They have learned it, but not understood it." ... I fear that a good percentage of the people of any "profession" might be described that way. Medical Doctors, Auto Mechanics, Psychologists, Massage Therapists, Dentists, Plumbers... a large portion of any group like that does fail to "have the necessary vital spark" for the discipline they've ended up practicing. You might not even notice the dimness until you've gone through a number of normal (mediocre) folks and then happened on someone whose level of skill stands out dramatically. Wow!
- Breaking news: Google exec veep in terrifying SKY PLUNGE DRAMA
- Geek's Guide to Britain Kingston's aviation empire: From industry firsts to Airfix heroes
- Analysis Happy 2nd birthday, Windows 8 and Surface: Anatomy of a disaster
- Google chief Larry Page gives Sundar Pichai keys to the kingdom
- Adobe spies on readers: EVERY DRM page turn leaked to base over SSL