Leading a Software Development Team
36 steps to success as technical lead
- Define early on what success means for you, the team and the business.
- Believe in the project: idea, architecture, time, team.
- Understand the domain, the business requirements and the technical challenges.
- Know your team: strengths, weaknesses, ambitions and personalities.
- Have a plan as a result of a planning activity.
- Be part in the design of everything.
- Get your hands dirty and code.
- Act as a communication proxy for your team.
- Make sure everybody understands the big picture: their work has implications.
- Fight for architecture and design consistency.
How not to lead geeks
- Downplay training.
- Give no recognition.
- Plan too much overtime.
- Use management-speak.
- Try to be smarter than the geeks.
- Act inconsistently.
- Ignore the geeks.
- Make decisions without consulting them.
- Don’t give them tools.
- Forget that geeks are creative workers.
Nine things developers want more than money
- Being set up to succeed.
- Having excellent management.
- Learning new things.
- Exercising creativity and solving the right kind of problems.
- Having a voice.
- Being recognized for hard work.
- Building something that matters.
- Building software without an act of congress.
- Having few legacy constraints.
Top 10 ways to demotivate your programming team
- Set up impossible deadlines.
- Let them work overtime.
- Don’t allow breaks.
- Place a ban on laughing.
- Break the coffee machine.
- Don’t shield them from the dirty daily business.
- Don’t challenge them.
- Underpay them.
- Bribe them.
- Infiltrate a team member who is demotivated anyway.
Don’t bring me solutions, bring me problems
(Don’t tell me how you want it to work, tell me what you want it to do)
- Where all think alike, no one thinks very much.
- Suggesting solutions kills creativity.
- Don’t bring me solutions, bring me problems.
Classic mistakes enumerated
- Undermined motivation.
- Weak personnel.
- Uncontrolled problem employees.
- Adding people to a late project.
- Noisy, crowded offices.
- Friction between developers and customers.
- Unrealistic expectations.
- Lack of effective project sponsorship.
- Lack of stakeholder buy-in.
- Lack of user input.
- Politics placed over substance.
- Wishful thinking.