Archive for April, 2011

Fending off Attacks on Average Joe Software Developers

Thursday, April 14th, 2011

It was a year ago this week that I started this little venture.

Coincidentally, just yesterday I took part in a debate that typified the whole reason I decided to start this blog in the first place.

Be it specific to Cocoa development or more generally applied to the profession of software development, there’s a segment of our profession that only respects those with the utmost of programming skill, or at least those who strive to attain such.

In no field is EVERYONE “elite”. By definition that would be impossible. There will always be those who are “average”. In fact, by definition, the MAJORITY of people in any field will be “average”. But average doesn’t mean “mediocre”, (I just looked it up to be sure.)

A lot, if not most, of the software out there in the wild was developed and is maintained and extended by “average” programmers. These programmers are perfectly capable and competent. And they should be respected, even if they aren’t always striving to be elite, to learn all of the ins and outs of the SDK/platform/language that they’re using; even if they do things in non-standard ways; even if they buck platform conventions by trying to develop software on one platform using conventions and design patterns that they brought over from another platform.

The goal, for most programmers, is to produce a finished, working application.

Users of that application couldn’t care less how it was developed, if it “just works”.

There are programmers out there, hmmm… what did I refer to them as a year ago? Oh, yeah, “Hotshot Superstar Software Engineers“… who desire to have the most pristine, optimized, streamlined code that always uses the most appropriate aspect/feature of the language/SDK in its implementation.

Good for them. More power to them. I don’t begrudge them anything.

But personally, I would MUCH rather release a program that does something unique and is adored by users, but was implemented with code that was ugly, unoptimized and inefficient, than to write the most beautiful, optimized, streamlined, efficient routine to implement a feature 20% faster than anyone else ever has, and have users go, “meh, there’s a dozen other apps out there that do the same thing.”

So while Hotshot Superstar Software Engineers continue to degrade and belittle “average” programmers, I’ll continue to stand up for them, and proudly declare myself as a member of that group.