Programmers as Professionals

Five years ago I wrote http://philip.greenspun.com/ancient-history/professionalism-for-software-engineers.  At the time I was unhappy that most programmers did not seem to have an investment in the user experience.  How have things changed?  I was chatting with three distinguished software engineers from Silicon Valley.  We were talking about phones.  I mentioned that my Windows XP Mobile phone (Motorola MPx220) exhibits an annoying behavior:



  • you are talking on the phone
  • a call waiting beep interrupts the call
  • you press the soft key to reject the incoming call
  • almost invariably the rejected caller leaves a voicemail
  • you continue talking
  • the phone vibrates to let you know that a new voicemail is available
  • the vibration of the phone, amplified through the microphone, makes the person you’re talking to think that you were just crushed in an earthquake

I cited this as an example of programmers who needed to do better by their users.  Silicon Valley’s finest disagreed.  The specs were drafted by a marketing person, they argued.  The specs said “vibrate when a new voicemail is available” not “unless the consumer is on a call.”  The programmer was responsible for doing what he was told by management, no more and no less.

14 thoughts on “Programmers as Professionals

  1. In the cell phone word, a *lot* of the behavior of the phone isn’t even specified by the marketing dept. of the cell phone companies. The carriers themselves issue long, detailed documents on how phones on their network must behave. These specs include such things as “must vibrate in response to voicemail.”

    Of course, that doesn’t mean the phone must vibrate so much that the caller can hear it…

  2. I think even programmers should be allowed and expected to use common sense. If a requirement is non-sensical or incomplete, programmers should be able to escalate it, and it could be changed.

    As a systems architect, I do expect programmers correct me and help me. The more they do, the better the product will be, and the bigger bonuses/satisfaction everyone gets.

  3. The dynamics of cell phone industry is such that software is a throwable component of the equation that is driven by “we got to ship these million handsets right away and at least the handset is crashing only occasionally”. The days of analyzing requirements, designing, coding, testing which used to be measured in quarters have shrunk dramatically down to weeks. Oh I forgot to factor in user interaction design. Also note that cell phones are more and more like PCs and can do much much more than just make a damn voice call. I am sure next generations of handsets in the MPX220 family would have taken care of your problem but till then you got to live with it. BTW, MPX220 is an old handset, measured in mobile-dog-years. You should get a fancier model that can do more song and dance … (and maybe an occasional voice call)

  4. Most customers don’t seem to be bothered enough by problems in user interface design to affect their purchasing decisions. We’re all used to it. Microsoft Word and complex douments is a good example. So marketing get to decide what’s important.

  5. Is this really strictly a software problem? It seems to me that you could just as easily cast this as a hardware problem, ie. “handset vibration is picked up by the microphone”.

    The ideal solution to my mind is to change both the hardware and software, so that the handset has two vibrating modes, the first noticable when the phone is carried in a pocket and the second one noticable only when held in your hand, and the second is used when on a call. The microphone should also be sheilded sufficiently from the vibration so as not to pick up the second (softer) vibration mode while talking.

    Unfortunately, this sort of intergrated hardware/software design is something few players in the industry are willing to invest in, in part because it *dis*-empowers the marketing and sales executives who hold the reins from being able to add their checklist of ‘bullet point’ features while squeezing the RD&D budget.

  6. I completely agree with Matti Kinnunen. As a Software Developer I always tell my managers if I think the feature they are asking me to implement is bad/incomplete/etc. I believe it is my responsibility to do so.

    I totaly disagree with Ken. My wife just returned her new Motorolla cell phone to Cingular because it was asking her TWICE if she wanted to accept the person’s contact via Bluetooth, but it didn’t bother to ask AT ALL whether she really wanted to delete a contact or not!

  7. “The programmer was responsible for doing what he was told by management, no more and no less.”

    This is precisely the attitude that makes offshore development cost effective. Management knows you just implement to the spec, so it makes sense to use the cheapest possible spec implementer you can find.

    As an engineer you have to THINK. Personally, I’ve never just implemented the spec except for a couple of times where I felt it was completely right the first time. The largest part of being a professional engineer is challenging the assumptions and decisions to make the best possible product for the end user; otherwise you’re just a coder.

  8. Hanan –

    Good link.

    How many “clicks” does it take for you to turn off the ringer on your cell phone? On my nokia, I have to hit Menu (1), scroll down to “Settings” (5), hit select (1), scroll down to “Tone settings” (6), hit select (1), hit “Ringing Options” (1), scroll down to “Silent” (4), hit “Select” (1).

    Of course, I just turn it off – one click.

  9. A agree with these observations. I’m a software engineer of over 25 years (well, more of a conscientious hacker since I’m self-educated) – I am one of the few I know who care about the user experience for products I work on.

    Much of the problem stems from the way products are ‘designed’ – as some have pointed out, products are designed by committee or specified by marketing in many cases, and there is no process for looking at the product useability as a whole. Often ‘features’ start out as somebody’s idea of something that will look cool in a demo, or as part of a prototype to get the project rolling, and they are left in the product due to inertia or just plain laziness.

    User interaction design usually gets the short end of the stick, in my experience.

    I am shocked by the huge difference in usability between different brands of cell phones, digital cameras, etc. Some of these products are just horrible, and I spread the word about them when I encounter them.

  10. I would bet that any suggested improvements in the design from engineering were quickly dismissed by the marketing guys. Stories like these are yet more proof that only the smartest people in the organization should be making decisions. But of course, the smartest people are almost certainly not in marketing (or product management, or the Oval Office).

  11. This is precisely the attitude that makes offshore development cost effective…As an engineer you have to THINK.

    And if you’ve worked in dunderheaded large corporate tech environments, an engineer who speaks up gets branded a ‘troublemaker’, ‘not a team player’ and such, more often than not.
    A lot of us started out as conscientious speak-up-to-make-the-product-better idea-oriented types but learned the hard way to keep our mouths shut after getting reamed too many times. Try to improve the product or damage your career – which is more important?
    Companies that treat these functions as commodities and offshore them (i.e. most of them) usually are indifferent to engineers’ ideas to start with. Our job has been defined as following orders and not making waves, or they’ll find someone in India who will do that.

  12. @Geoff B: Wouldn’t it be quite a bit easier to just tap your power button, scroll down to “Silent” and hit Select? Of course turning the phone off is still quicker, but the process to turn the ringer off in Nokia phones is much more simple than you describe. Check your manual for profiles.

  13. In Philip’s photo site I once read someone remark that photo equipment today looks like it is designed by Marketing MBAs and liability lawyers instead of by Photographers and Engineers (or something like that).

Comments are closed.