Related Entries

Quick Start: Git for personal use
SVN client over SSH to remote Unix server from Windows
Quick Start Grinder - Part V
Quick Start Grinder - Part IV
Quick Start Grinder - Part III

« History of a face
» Choice of software and syllabus

Little Nybbles of Development Wisdom

An excellent paper written by someone who did "real" work.

Terrence Parr: “ In this document, I have tried to remember and distill my hard-fought 3-year experience as I evolved into a programmer capable of building a commercial product, . Naturally this is a not complete list of programming advice, but rather what I learned on this project.”

Little it may be, but every line is relevant. If you are a programmer, designer or a software manager, please do read this document. Extremely well written, obviously written by someone who worked with other people who puts thought behind actions.

via Fozbaca.

I especially liked the section on management, most of which the author attributes to his CEO, Tom Burns. Mr. Burns obviously *gets* the art of managing smart and diverse people!

  1. There is no such thing as a good, busy manager. A busy manager can only react not act. Further a busy manager has no time to think about how he/she is affecting employees. Example: The CEO and I switched responsibility for getting a doc done. A sales guy sent me something, but I ignored it to do it faster by myself. It turns out he had worked for a week on his version but I didn’t know. I sent a very bad signal that he was (incorrectly) irrelevant.
  2. When an employee calls to say he/she screwed up, thank them for their willingness to inform you and then work on a solution. Otherwise, if you yell, the employee will learn not to tell you when things are bad.
  3. Extremely important to see truth even if you don’t like it. See it as early as possible. Must know if somebody can’t do something or something will be delayed.
  4. You must give decision authority to employees otherwise you have to make all decisions and employees are locked waiting for you to make the decision; plus, it costs lots of time to make all decisions. You end up with a company of automata if you don’t give them authority to act. Along these lines, give someone a task and either be satisfied or not. Don’t tell them to do something and then barge in and tell them how to do it.
  5. All employees have faults--do not lightly toss them away. At least you know what their problems are. A new employee will have unknown problems.
  6. Ask people what they want to do. Bribe them if necessary to get them to do icky things by offering good things to do afterwards (unless you can find somebody that doesn’t mind doing the icky things). Recognizing an employee’s control over themselves is important. Try to let them choose to do the icky thing.
  7. You cannot control anybody or anything. You can only nudge or influence.
  8. Management is a low position as it is all about making sure your employees are productive (like a conductor in an orchestra). You do no real work. Only getting stuff for employees and insulating them from crap above and from outside.
  9. No matter how carefully you phrase something, someone will misinterpret it and be upset.

I’ve to add:

  1. If someone works really hard, acknowledge that publicly. Not by saying "though this person worked hard, this is really great team work". This is giving free ride to people who don’t work hard and you end up de-motivating hard working people.
  2. Discourage people who constantly air complaints without giving any suggestion on what would make them happy.
  3. Keep a good look at how many people come up with "great" ideas, but don’t want to sweat a bit when it comes to implementing these. Ideas are just ideas, unless they turn to tangible and lasting deliverables.
  1. Wow! Thanks for the kind words. Just wanted to let you know, I've updated the document with many new thoughts pulled from my notebooks.


    Posted by: Terence Parr on April 19, 2003 02:50 PM