Tuesday, April 12, 2011


I have to admit that software development is pretty awesome. In what other job can you take quotes directly from the Sunday comics and seriously use them in work conversations? I love Dilbert. As part of "don't take things seriously all the time", I have also been reading "Why Software Sucks" by David Platt. My favorite part: Your software has zero value in and of itself. Nothing. Nada. Zero point zero zero. How bad things get made:

  • General incompetence: I’d hire the worst people, pay them poorly, give them bad equipment and unpleasant working conditions, and yell at them often.

  • Unclear purpose: I’d never explain the goals, never rationalize the non-existent business plan with the non existent product plan, and randomly change my mind about important things every few hours. Once a week, in the morning, I’d act just sane enough to gain people’s confidence, only to obliterate it in the afternoon.

  • Unplanned design: I’d wait as long as possible to think about what the customer’s experience should be, so that decisions that most impact the people I’m designing for have the fewest resources, the most constraints and the lowest possible probability of a quality outcome.

  • Poor engineering: I’d demand people build things that frequently fail in dramatic, surprising and dangerous ways.

  • Make customers miserable: Our only team motto will be “They must suffer more”. We’d watch the Monty Python Spanish Inquisition scene to master all of our chief weapons, ensuring maximum suffering for every customer we have.

How good things get made:

  • Gift mentality: Good things in the world come from people that have the gift mentality. They do care about who they are designing for. They are sincere about trying to build something that will satisfy a person’s needs. They are willing to expend time and energy refining their thinking and developing new skills so that when they are finished they can sincerely offer what they’ve made to the world as a good thing. They see their work as a deep expression of generosity and as an attempt to live up to their own ideal of quality and workmanship.

  • Thoughtful and passoniate: Good programmers, designers, architects or creators of any kind are simply thoughtful. They are so passionate about making good things, that they will study any discipline, read any book, listen to any person and learn any skill that might improve their abilities to make things worthy of the world. They tear down boundaries of discipline, domain or job title, clawing at any idea, regardless of its origins, that might help them make a better thing.

To directly apply it to one of the projects I have been working on lately:

Your (MMVM) framework has zero value in and of itself. Nothing. So don't bother programmers with silly code and plumbing to make it work. Just make it work, so the programmers can focus on the actual application.

No comments:

Post a Comment