Page 259 -
P. 259
Software project teams are made up of smart people. It’s far better to leverage their minds
than to treat them like robots. Many people like to throw around the term “grunt
programmer,” as if there were a lot of programming tasks that were little more than cut-
ting and pasting program recipes. But even the lowest impact programming tasks involve
decision-making on the part of the programmer.
Accept Criticism
There are two ways that managers encounter criticism from a team member. One way is
when the team member disagrees with the way a manager wants work done. The other is
when the manager disagrees with how the team member is doing the work. Dealing with
criticism is a potentially demotivating situation, but it’s also a potentially encouraging one
if handled well.
Sometimes the team members solve a problem differently than you would. As a manager
it is important to recognize the work that has gone into these solutions, even if they con-
tradict your preconceived ideas about that work. Being able to accept the team member’s
criticism of your solution means that you are making decisions in the project’s and organi-
zation’s best interests, and motivates your team to keep thinking their way through such
problems in the future.
Everybody solves problems differently, and it’s a fact of life in software engineering that
most problems have many correct solutions. When you ask a team member to solve a
problem, it’s likely that she will come up with a correct solution that is different than the
way you would solve the problem. If a member of your team offers a solution that is tech-
nically correct, but you don’t accept it because you would do the work in a different (but
equally valid, or even slightly more efficient) way, the team member will feel crushed.
A good manager’s default action should be to accept, not reject, ideas. You must take it
very seriously when you reject somebody’s work, and when you do, you should always
explain and defend your decision. There are many good reasons to reject a team member’s
solution. Sometimes it’s incorrect, and sometimes it’s not well thought out. But people
will become very attached to such solutions, even when they are dead-on wrong. In those
cases, you must be willing to stick to your guns. When you do, it must be for the right rea-
sons, and you must take the time to explain your reasoning.
Criticism goes both ways. Sometimes a manager will want the team to do their work one
way, and some team members will disagree. In fact, sometimes the entire team will disagree
with a decision and come to the manager en masse. In this case, it is very tempting to just
roll over and give in; it is equally tempting to refuse to even consider their opinions. Neither
of these options is good, because no real discussion takes place in either case. Instead, a good
manager will come up with a real justification for why he wants the work done that way,
and will expect the team to do the same. If there is a real, verifiable reason for going with
one alternative, everyone should be able to see it. And most importantly, the manager
should show that he considered the argument, even if he essentially rejects it.
MANAGEMENT AND LEADERSHIP 251