Project Manager – Team Lead – Manager of Development

I have been asked a few times for resources and tips for a new Project Manager, Team Lead, Manager of Development type position.
My tips are a generalization as I can pull out more resources for certain situations.

Tips 
1. Have an open door
2. Don’t tell your team everything that you know. Be selective
3. Be positive in all your dealings
4. Lead by example. Do not ask your team to do anything you would not.
5. Speak clearly
6. If a developer says it will take a week, say two. If a developer says a month, say 6 weeks. Always buffer time.
7. Be real with expectations
8. Be kind, not too strict, but strict enough
9. Careful planning of project details
10. Listen to those above you and below you. You will learn stuff from everyone.
11. You are not the end all be all.
12. Fight for those who deserve it, help those who need it
13. Stay Organized
14. Meet with your team weekly with an agenda, so everyone can be prepared
15. Know what your superiors want from you
16. Know your place
17. Make sure you keep developing
18. Code reviews are a must, even yours ( can be fun for the team )
19. Earn your trust, trust your team
20. Know each team member’s strengths and use them. You cannot be everything to everyone
21. Failure is always an option – learn from each failure and success
22. Reflect on everyone project as there is always something to learn
23. Find a mentor or mentors – they can be good sounding boards

Online Resources 
http://www.fenman.co.uk/activities/training-manual/team-leaders-development.html
http://andrewtokeley.net/archive/2008/05/02/how-to-become-a-development-team-leader.aspx
http://www.atlassian.com/agile/people/teamlead.jsp
http://en.wikipedia.org/wiki/Lead_programmer 

Books to Read 
Project Management in a Week By Mark Brown
Survival is Not Enough By Seth Godin
Made in Canada Leadership By Amal; Morissette, Francoise Henein

My Blogs 
http://unlatched.com/blog_What_is_Leadership.aspx
http://unlatched.com/blog_Effective_Listening.aspx
http://unlatched.com/blog_How_a_Senior_can_Help_a_Junior_Developer.aspx
http://unlatched.com/blog_Can_Senior_Developers_Learn_From_Junior_Developers.aspx

Remember: Have fun or you will not like it. Take time off – you need breaks.

When a Developer Leaves

To start; I am not saying this is me, but I did talk to a few developers for research.

Employers are often left scratching their heads when a developer leaves. The unfortunately truth is when one leaves another often follows not to long after. It is very hard to understand why the first developer left let alone the second or third. I believe as a employer, team lead or VP, you should know some of the “WHY” for a better understanding of a developer’s behavior. I admit we are a strange brew of employees.

Developers like to be challenged and appreciated. When the challenge is gone, so is the developers will to continue. Developers need to know that they will not be doing the same thing day in and day out. They really need to mix things up a bit. They need responsibilities, new tasks and freedom to try new things on their own. They also need to know they have the company’s support to continue education, and not just a pat on the back. Try to hire from within the team before you look for that new manager. Sometimes you have the perfect leader within the company already.

Developers also have a keen sense of appreciation. They do not need a thank you, or a pat on the back from their employer all the time, but they definitely know when they are being exploited and taken advantage of. More and more companies are introducing foosball, video games and fun activities to show their developers that they can have fun and are appreciated. It is the little things that go a long way. A BBQ in the summer with some good laughs and keep the spirits a little brighter.

These are just brief explanations of why a developer may leave a company, but very rarely is it just for more money. There is often more to it. An exiting interview may shed more light on the “WHY”, but more likely you will never know. An observation that I have made recently; there is a real misunderstanding of junior developers. Junior developers are ones that leave their company the most. Junior developers leave because they are treated poorly by senior staff, paid unfair salaries, no or little vacations and benefits and simply they often do not feel apart of the team. Junior developers add value to any team for a couple reasons.

  • Successorship for senior developers
  • Brings new ideas and techniques to the table
  • They still absorb new information at a fast rate

Why would other developers leave shortly after?
Loyalty is often a factor. Developers are social creatures who form a tight community that is often hard to break into. They often congregate at bars and coffee shops after hours or on breaks to share and implement ideas. This form of interactions creates a tight bond. If a company hires one developer, it is not uncommon for that developer to want to take a few of his trusted colleagues with him. This is a practice that shows the tight bond and trust between the development community. Developers like to work with people they know and trust. It is also becoming a more common practice for the new employer to try to take an entire team of developers that are linked by a common employer or group. This helps create a stronger team.

What Not to Say to a Developer
I was once told that I would never be able to advance out of my position because I was too good at it. These words are like knives going into the heart. A developer likes to be challenged and advance through their career like anyone else in the workforce. Developers are often known to put their heart and sole into their work; often giving 110% of themselves. Advancement is often equal to being similar to being appreciated and/or trusted. Nothing kills a employee’s will to continue faster than words. Chose your words wisely.

Strange Creatures
Developers are strange creatures. They are creatures of habits ( generalization ) and often do not like change. Exception here is developers often embrace changes as in new technology and ideas. When I say they do not like change, they do not like to

move homes, place of work, parking spots, watering holes, etc. They like their every day habits and routines. When a developer leaves it is often a big decision and they did not take it lightly. It is often not a personal reflection on the company, but rather a personal reflection of themselves.

Quick Points

  1. Find out what other companies are doing to keep their developers engaged and happy
  2. Talk to your developers often on a personal level
  3. Create a trust with your developers. Do not give them a reason to not trust you.( Example: monitoring internet usage and emails )
  4. Give them freedom. Allow them to occasionally work on projects of interest ( Google often does this and then makes money from the side projects )
  5. Let them use social media to keep connected and build the communities. You do not want your developer to feel isolated. Non-techie people often do not understand a developer
  6. Do your hardest to create real expectations, and not push crazy hours. Developer burnout is rampant in small companies
  7. Do your best not to call your developer all hours of the night and every day when they are on vacation. You would not want this for yourself.
  8. Treat your developer as you would want to be treated

What is Trending – Are you listening

Do you know what is trending today?   Do you know what is new?  Do you care?

As developers we live in a crazy world where technologies and ideas fly at the speed of light.  If you are not paying attention you will miss out on the new ideas.

Hash-tags, Twitter, blogs, LinkedIn and Facebook; these are some tools of the modern world and they can help define our chosen professions.  If you have not embraced these fore mentioned tools, you will miss out.  How are you keeping up?  Are you relying on your everyday work or are you digging into the realms of social media to see what is trending?  The printed press like magazines, journals and newspapers are not cutting any more because of the pace of change.  By the time you read it, it is history.

Social media is trending the new ideas, tools and techniques at a pace that is baffling.  If you are a developer and you have not embraced social media, you are probably missing out on a lot of great stuff.  Managers are now asking you in interviews; How you are learning new things and keeping in the know?  If you are not saying social media as a tool, you would be foolish.  It is great to ramble of magazine names and school courses, but most of what is learned there I consider as historical background knowledge; you need social media to enhance your knowledge.

Are you looking for the next great idea?

Here are some interesting trends to watch:

There are a million of trends happening every second of every day.  Pick one or two a day and watch.  If you find something interesting dig for it and dig deep.  LinkedIn also has groups that could help you define who you are, what you want to do and how to do it.    There is a lot happening and you will never know what will trigger your next big idea.   Once you have watched, participate and that is the ultimate way of learning what is new.

What are you bringing to your team

Every team has a slacker.  Your team can be at work, on the rink, ball diamond, or your marriage.  Are you the slacker?   Why are you the slacker?  Are you listening to people other than yourself?

Everyone has the ability to listen to themselves, but are you listening to others.  If you are not listening, you are probably not contributing to your team fully.   Your team needs you.   It is not about your needs ( well may be a little ).   If you make it more about your team, you will be a better person and team player.

There are various reasons that you may not be bringing enough to your team:

  1. You may not be aware.  Try listening
  2. Your skills may not be up to snuff. You know how to learn – so do it.
  3. You are bored.   Really?   Learn something new.  Try something new.
  4. You are lazy.  Sorry, I cannot help you with that.   Look in the mirror and see if you can live with it.
  5. You do not respect your team member(s).  Why not?  Figure it out and resolve it.   Everyone has a different personality, learn the good things about that person(s)
  6. You are too quiet… sit up and use your voice.
There are many more reasons and solutions to the reasons.   You need to evaluate your position within the team.  If you are not pulling your weight or not being 100% to your ability, you are letting yourself down and your team.

Effective Listening

A skill that seems to be lacking in a lot of people is effective listening.  Effective listening is not 100% listening to others, but it is also the art of listening, asking questions and evaluating what you are hearing.  Lately it is not just the spoken word that is getting missed, but also the written word.   I have recently experienced people only reading the first line or two of an e-mail.   Too often people are quick to respond verbally or written.

Steps to Effective Listening ( verbal )
1. Relax and filter everything else out.
2. Look at the person in the eye who is speaking.   This guarantees a focus of concentration.
3. Make a mental note of key points.
4. When the person is done talking, ask for points of clarification where required.
5. Evaluate everything that was said.  Be slow to act on what is said.
6. Note taking can be used as a tool.

Note:  Do not interrupt the speaker.  This could be a distraction that would result in loss of information.   Wait for a proper break to ask questions or comment.

Steps to Effective Listening ( written )
1. Carefully read the message or email.
2. Remember, there is very little to no emotions in most written word.   Read it accordingly.
3. If uncertain of meaning or intent of the message or email, read it again.
4. Ask questions, but remove your emotion.  Be thorough with your questions or comments.
5. If uncertain about content of your reply, type it up, close it as a draft.   Come back to it later.
6. If you are not in the frame of mind for processing what was said in the email, put it into a folder to reply to later.

Note: Remove your emotion when replying or typing emails.  When reading and email, remove the other persons emotion.   Read at least twice.