Sunday, March 4, 2007

Successful Software Management: Ten Lessons Learned

Managers Have Two Primary Roles:

*Get the best work out of your people
* Create an environment that enables people to work

1.Activity
• You can do this with others or by yourself
– What’s your mission? What do they pay you do to?
– Is that different from what you think your job is?
– What do you do about the difference?
• Debrief

2. Hire the Best People for the Job
• A manager’s greatest point of leverage is in hiring appropriate
staff
• “Best” is not necessarily synonymous with “Similar”
• Develop a hiring strategy
• Learn to interview successfully, so you can hire people who can
do the job well (stars)

3. Weekly Time With Each Person
• You need to know what your organization or project is doing
• You need to know what the people are doing, so you can create
performance reviews

4. Assume the Person Knows How to Do Their Job
• You used to know how to do the job
– Do you really still know how?
• You hired the people because you thought they could do the
work. Let them...
– Give them assignments
– Ask if they need help
– Don’t interfere
! Sneak up behind them and ask “How’s it going?
! Micromanagement
! Inflicting advice
• Choose a metric to know when you are stuck
– This works for you too!

5. Treat People the Way They Want to Be Treated
• Everyone likes different projects
– Specific tasks vs. general information
– New complex problems vs. immediate success
• Everyone is motivated by different things
– Money is not the only reward
– Private thank-you’s
– Public recognition
– M&Ms
– Movie tickets
– Team party
– Ask the group

6. Emphasize Results, Not Time
• Hours working do not positively correlate with productivity
• Permit (Force?) people to only work 40 hours per week
– When they work longer, they do non-work things
– Productivity goes down
– If you keep people working only 40 hours per week, they work on work
things

7. Admit Your Mistakes
• Mistakes are embarrassing
• If you admit mistakes, people respect you more
• Don’t deny or ignore mistakes

8. Commit to Projects After Asking Your Staff
• “Can we have this next month?”
• Even if you’ve already considered the request, the answer is “No”
– In the moment, you might confuse this request with another request
– There may be other implications you haven’t considered, since it’s no
longer the same time you first considered this request.

9. Plan Training Time in the Workweek
• Engineering is constantly changing
• People generally like getting training
• Many inexpensive ways
– Brown bag lunches
– Periodic talks from other groups
– Present projects across the company
– In-house tool “user group” meeting
– Outside experts
! Professional consultants or speakers
! Knowledgeable friend or colleague

10. Plan the Work
• Plan what you (your group) can do
– If you want to do more, plan how
• Identify and manage your project portfolio
• Develop strategies for each product
– How little can you do?
• Know what done means for each project
• Avoid context-switching