Creating good software is all about passion. No matter how good you are, how good you team members are – if they get up every morning and hardly can convey themselves go to the office – you product will be dead. Or may be it is dead already, so you observe only the post-mortem reflex movements of the dead body…
Who can be happier than the PM, who sees the passion in the eyes of the team members? I think, no one) As a real hedonist I try to find ways to help my teams keep that passion. So, let me present my modest observations results.
The one idea that stroked my head once and surprised me a lot is that programmers are really motivated people. They have this original, intrinsic motivation – they really love what they are doing.
So here are some of my thoughts:
– Create your team history, team identity. Team members should feel that they are in the magic circle – they are unique, because they take part in this unique team. No huge investments – create team name, logo. Let them keep a chameleon in team room (“Wow, that is the team which keeps chameleon? I want to see it!”).
– Your team definitely should have a separate room/place in the office, which they can mark as “their”. That creates the atmosphere. Some posters on the walls, project board, drawn cats on the white board. Let them paint the walls! It will be their base, their place to create crazy and genuine things.
– Kill bureaucracy. Have you noticed how developers hate bureaucracy? They can become a real wild barbarians, when they face any signs of it. Try to save their and your nerves. Care for them, protect them.
– Be careful with corporate emails.
Once in the morning, when my team was working hard before the close release we all received the email. It was send by one of the leaderboard members and was blaming all developers in the office for coming to work late. No doubt, when that person came to the office at 10:00 am there were few people. And our team room was empty. But why? May be we worked till the late hours the previous day. Or we decided with the team that it would be better to come later, as our most productive hours were in the evening. Who knows… Definitely, not that person) (Note: There were no strict hours in that company, we had a really flexible schedule). When I visited kitchen an hour later I noticed, that something was wrong… You know that feeling – everything was ok with the team, you leave them and when you come back – they are finishinshing polishing the barrel of the tank and ready for the battle. They were upset and felt like no one noticed how hard they worked. They really did! And then came this email. Our productivity was almost down for that day.
On one of the conferences I saw this illustration – how developers see emails from managers
– Give your developers the resources they need. Enough devices, good monitors, software they need for work. There should be no annoying things. Buy them good chairs, finally. It is not so expensive, but when you allow them to choose and buy the ones THEY want – you’ll be surprised, how happy they’ll be.
– Praise work wonders. I am surprised, how rarely PMs in our country say “Good job! You are amazing, guys!”. It is a simple rule – praise on public, come down in the empty room one to one. Do not mix.
– Communicate, but don’t over communicate. Developers are not the type of the people who like talking much. Sit in one room with your team and you’ll be aware of all the news and problems. No meetings – not good, but too many meetings can be bad too.
– Let developers to work on the interesting for them tasks. Allocate time for the investigations on new technologies, software versions. Let them implement their idea. Yes, you can loose 1-2-3 days of development, but how happy and productive will be this developer after. He can close all tasks left twice as fast!)
Here comes the idea of allocating some time for “persona” projects. I will feel myself in a heaven, if company where I work allow doing that officially. That is why we have to find some ways with the teams not to break rules and still do what we want 🙂
– When someone on the team is not producing, you have to get rid of them. The speed of the team can be measured by the speed of the least productive developer. Don’t hesitate – only great team can produce the great product.
– When you have some task, which the team is not very enthusiastic about – don’t try to force it and just push them. Find some smart ways)
– Do not take the opposite to the client position. Of course, your client is an idiot. But don’t tell that to your team. Yes, he is not good in programming, but he built a great business and hired your team. You are working with him, not against. If team starts hating customer, they start hating the product.
– Deliver often. You should deliver often, so team will feel the sense of “done” and not wait years to the release. Perform demos to the client. To your colleagues.
And, in the end – team building parties) I am not good in organizing them…To be honest, my team building parties always sucks. So can’t give you advice here.
As he conclusion I should say that the only way to produce projects, do that on time is to keep your developers motivated and enthusiastic about what they’re doing.
P.S: You should feel like at home: