Wednesday, July 21, 2010

Where’s the Talent?

I ran across this article by Mike Gold the other day that asks the rhetorical question “where did all the designers go!”. He raises some good points about our profession (most of which I happen to agree with). This is an excerpt from the opening paragraph:

As a consultant, you often find yourself looking at other people's code. That is because you are often asked to finish an existing product, or to make an existing product work correctly.  One of the most frustrating aspects of inheriting preexisting code is that invariably the code was written with only rudimentary consideration of the design process. "How can that be?", you wonder. "I thought all software programmers are designers by nature."  If you believe this, you've swallowed the biggest myth of all time. Software developers are rarely designers. In fact, I have come across so few real software designers over the years that I ask myself, who is even creating the software products for our industry? What has caused this dearth of design talent in the industry?

The sad reality and underlying theme in all of the author’s reasoning is mediocrity of expectations. It never ceases to amaze me the garbage clients are willing to put up with and pay for, without complaint out of some obligatory respect to the developers. That is one of the reasons our industry is so rife with amateurs and hobbyists – the great yawning chasm of accountability. It is our responsibility to demand better from ourselves and our colleagues. I think it is time for those of us who see this as an offense to our profession to rise up and go Full Metal Jacket on the Private Pyle developers of this world.


  1. Clients are often completely unable to judge the quality of code. Often they can't understand or even see the source, and the external appearance isn't necessarily an indicator of quality, as it is with many other products.

    How do client separate good from bad software, and developers? And how do the professionals in our industry help them do that?

  2. You are correct, clients do not see the code, but that does not matter. Not telling your wife you cheated on her doesn't change the fact. Crap is crap whether the client knows it or not, and they will notice when the cost of maintaining the crap begins to rear its ugly head. Outward appearance and usability are the only measure of quality most clients have. How many developers do you know that have studied usability, user experience, interaction design, or color theory?

    The second part is the real question, but clients are getting smarter. Part of that comes from their own interactions and experiences with technology. The iPhone is a perfect example. Every person in a company, from the CEO to the errand boy can own one and make an objective comparison between that product and one they are paying, sometimes millions of dollars for.

  3. But when the cost of maintaining rears it's ugly head on every single project, people just say: "That's software. It's expensive, faulty, and there is nothing we can do about it." I don't think that clients are getting smarter, or realize that the software they have custom built can be better. Their needs are becoming greater and demand for maintainability is growing because of it, but they can't tell if one product is more maintainable then another or that one is the best solution to the problem that it could have been. In practice, this is very difficult to judge. So we can't rely on the market to drive us to improve, because it can't.

    So, I do agree that we need to be holding ourselves accountable as a profession, but it's hard to call out another developer for a stupid mistake when you are likely to make one similar in the next 30 minutes. A professional, courteous and educational approach is required. If the dev in error refuses or shows no interest in learning and changing, THEN you have a legitimate reason for a blanket party.