What Employees Want From a Boss

I’ve had discussions with a co-worker on the concept of leadership and on what those who are led look for in their leaders. The following are the results of a survey he conducted with a group of software developers.

There are no surprises here, I have seen these themes in every book and seminar on leadership I’ve ever experienced. Many of the responses to this survey are redundant. These points are obviously the most important. The real surprise is how easy it is to do what is recommended below, and how often we forget. So it’s important to review them every now and then.

I have done very little editing on the results. Other than grouping the responses into categories, and removing a few gender-specific references, the information is presented as it was given to me. For those English majors among you who are appalled by the constantly changing point of view, inconsistent verb tenses, and non-parallel construction – get over it. The content and sentiment are more important than the format.

My gratitude is expressed to my co-worker who wishes to remain anonymous.


The survey was sent to 22 people, all with engineering backgrounds. Nine responses were received.

The Question:

What do you think makes a good leader for a software project?  Specifically, what characteristics should a team lead, and a project lead have to be great (or at least really good!)?

The Answers:

Behavior Model

  1. Knows what is going on (within the company) or can find out (why decisions were made, why priorities changed etc.). [Editors Note: and explains it to people so they can see why their job is important].
  2. Stays positive. Assumes people on high have good reasons for doing what they are doing. Interprets orders in a positive light.
  3. Never trashes the company (or those higher in the organization) to the team.  Never lets the team get the idea that the situation is hopeless (I’ve seen this happen.  It devastates the team when their ‘cheerleader’ joins the crowd in trashing the project/company/management etc.).
  4. Understands and provides direction for the product/project/team
  5. A good leader must remain calm under stress (that doesn't mean you can't be passionate about certain things)
  6. Trust (big one!)above all else, I believe your team must trust you to always do the right thing
    1. Don't talk bad about them in front of other people
    2. Don't be conspiratorial
    3. Don't badmouth other groups or individuals
    4. Be consistent in how you treat people
  7. Demonstrates commitment to well defined purposes.
  8. The Lead is responsible for team cohesion.
  9. Earns respect of others


  1. They do what they say, and say what they mean. 
  2. Honesty:
    1. Will admit they don't know everything
    2. Always, always, always tell the truth. When you don't know something, say so (but find a way to get the answer)
    3. Not afraid to not know something and don't try to cover it up with double talk.
  3. Integrity.  Answers questions honestly; even if the answer is “I can’t say” if questions concern confidential matters (e.g. personnel issues, pending reorganizations etc.)
  4. Credibility.  Stands by his word.
  5. Can keep things confidential – never discusses personnel “problems” with other members of the team.
  6. Loyalty – Willing to fight for what is right for the team (even risks insubordination).
  7. Deliver on your promises and expectations of others.

Personal Character Traits

  1. Fortitude
    1. Doesn't just mold to the popular opinion, has their own opinion and sticks to it.
    2. But is open to new ideas and will change after careful consideration.
    3. Open to new ideas.
  2. Humble - Realizes without the team, there is no leader.
  3.  Have a good sense of humor (and don't be afraid to use it!)
  4. Confident in personal abilities.

Interpersonal Skills

  1. Good people skills. Can deal with developers, product support, and marketing effectively
  2. Good ability to communicate with both technical and non-technical people.
  3. Is comfortable and personable with team members.  A simple friendly hello in the hallway can go a long way (at least it goes longer than the 1000 feet stare past the individual does).
  4. Have and show respect for other people and their circumstances. [Editor’s Note: Values diversity].
  5. Genuinely cares about people.


  1. Recognizes Accomplishments
    1. Publicly shares team member accomplishments and shares any team awards throughout the whole team.
    2. Recognizes and rewards hard work/good ideas.
    3. Appropriately recognizes achievements (including consistent good work that is not necessarily genius or earth shattering).
    4. Motivates employees (Gives out "Good jobs" and "Thank yous” when things are done on schedule and the right way. Nothing formal, just a simple pat on the back).
    5. Give them both negative and positive feedback (make sure the positive feedback is sometimes in a public setting).
  2. The leader should be able to criticize without being too negative, and praise appropriately without sounding flattering.
  3. Reprimands or removes employees when necessary
  4. Offers no surprises during periodic reviews (i.e. addresses issues with team member when they occur, not only during performance review)
  5. No surprises at review time (i.e. be constantly engaged with people and working on any problems as they occur, not just at review time)
  6. Clearly defines goals and deadlines and hold the individual responsible (but without micro-managing)
  7. Really listens to employees.


  1. Shields subordinates from the politics of upper management as much as possible.
  2. Avoid putting your team in stressful situations by being open with your management regarding project status (inform ahead if you cannot meet deadlines).
  3. Acts as a liaison with other teams & departments (but not to the point of allowing team members to become hermits.)

Team Development

  1. The greatest fan to those who report to him/her where the lead is always trying to better them and improve their skills.
  2. Surround yourself with people that are better than you (and tell them so.) [Editor’s note: “better” at what their role in the team is. Everybody has special talents.)
  3. Must be able to treat all subordinates differently while appearing to treat them all the same.
  4. Ability to get the necessary tools to help subordinates do their jobs.
  5. Shares the wealth when it comes to giving out tasks.
    1. Doesn't always give the new & exciting tasks to the same people, while giving the others the same old grunt work.
    2. Gives them something new to learn.
  6. Pushes subordinates to do things they didn't think they could do.
  7. Not afraid to resolve conflicts (technical or otherwise) between subordinates by dictating solutions.
  8. Knows when to get involved in technical problems and when to keep hands off.
  9. Has a plan for developing each employee professionally (cares about their futures)
  10. Help others to look good (and I don't mean their wardrobe)
    1. Their job is to deliver a product. your job is to clear the way for success.
    2. Let them know you have a plan (for the project and for them and their career).... this works particularly well if you actually DO have a plan.
  11. Part of staff development is to help develop their non-technical skills, as much as is possible (we are talking about engineers after all).

Technical Ability

  1. Realizes that being a good engineer means reading journals and working on new techniques. Being a good manager requires the same type of work.
  2. Very good technical understanding of the product (does not need to be as good as the most senior developer, but it helps).
  3. Technically competent.  Not necessarily expert, but definitely competent.
  4. Knowledge of the product and all areas of the code
  5. Trusts developers, but isn’t gullible or naive.


  1. Knows the knowledge of the skill set of the team.
  2. Knows what people are working on.
  3. Must be accessible and open for consultation on technical and personal issues.
  4. Knows people [what makes them tick].
  5. Knows people [and what gets them excited].
  6. Understands and meets the needs of others.
  7. Removes obstacles in the developer's way.
  8. The developers are responsible for doing the work, the Lead is responsible for organizing how the work is done.
  9. Doesn’t micro-manage tasks. Trust the team and the tasks that they have been given.
  10. Be their friend but know when it's time to be a parent (tough love isn't a bad thing).

Process Orientation

  1. Creates project plans, team goals, and presents them to the team
  2. Conducts weekly team meetings
  3. Conducts design & code reviews
  4. Organized
  5. Demonstrates good problem solving skills
  6. Constantly looks for ways to improve product and employee performance/productivity.