Today, when I was talking to my collegues, we went on to chatting about being passionate and how do we create passionate work culture. The thought process went on to extent that - we should not leave the work place till the time work finished to being passionate to the extent where problems keeps you awake...! actually second one is what keeps me going. Solving complex problems keeps me awake. But lets not digress.
I have been thinking what makes people passionate about something? what makes them doing things for an organization where they are just employees? what makes them so emotionally attached to problem. I have gone into memory lane and I was going through my career graph where I have not been/gone into such discussions - but there were most probably some rules already set, and once you are used driving, you don't put attention to basic controls but your car just keeps cruizing. ThoughtWorks is just amazing, when it comes to keep sharp, talented people together with an amazing low attrition rate, but I think I am just putting more thought into those now!
Rule No 1 - A class people hire A class, B Class people hire C class
Many time when you are trying to hire people, always take a note who is interviewing them? who are you trying to bring in? A smart guy will not fear on hiring a Smarter grad into group, because he knows that he gonna benefit from his view point.
So let your existing employees talk to the potential new employee, does not matter who is he, let a grad interact/interview a senior engineer, it shows maturity not at the grad level but at the senior engineer level that how did he take it
A side note - while hiring - years or experience and salary don't have ANY correlation, if you found an expensive guy, hire him, tell him what you can pay and if you have some nice creds, he will join you on lower salary - if you find a right guy, but if his previous organization is not paying well, give him at par salary, he will be happy to know that you treated him fair and did not take advantage of his inferior salary.
Rule No 2 - Make it their responsibility - give it to them...
Having good internet connection speed when no one is torrenting in office and you don't have proxy installed, is then ideal situation (very few companies in India will have this setup, else everyone is just restricting internet access) - this is great scenario - where every one plays and every one wins. Singling out someone for one thing nice they did, goes against team spirit, also be passionate about your team and make them realize that they need to stand with your promises! Give them your goals, your vision and where do you want to see them in next 90, 180, 360 days and not in next week.
Pointing out things and managing at micro level is just becomes irritant and will irritate the hell out of them, if you believe that they don't have sense of urgency then most probably you have not communicated with them well enough or you don't trust them to deliver or they don't trust you - making some one own stuff is very difficult its just not possible sometimes, this also means that you empower them in right manner - a very good example across indian restaurents - if you tell them that dish is not good as per you, very few will take the responsibility and give you new one or not charge for it. But if you abuse it many times then most probably they will defend it and not replace it - thats exactly happens at a lot of Indian restaurents!
Rule No 3 - Give them space
One of the best way to innovate on projects/products is give space so that people can think of solution, right solution, exciting solution, its not easy, for example - years ago when whole basic compiler could fit into less than 200KB to today where a nice language distribution takes like 200 megs, software complexity has gone multifold as well, software is not as easy as writing "hello world" any more.. while java/ruby/web apps have taken away the headache of managing memory, network and other stuff - software has evolved into complex configuration management piece - where 100s of services fit together to produce one of them - we at hoppr engineering, have around 30 repos and at least 20 moving parts for just sms checkin service - so if you want some one to innovate in complex software world, you need to give them space - in terms of time, rejuvenation and work area itself. We try to do that hoppr, I personally try to space out technologies and technical problems for them - so that they don't get bored, I try to move them to different parts of system, where they are filled with excitement of learning new things and responding to old once quite quickly.
We always figure out what needs to be done, but I never set an expectation on how it needs to be done! there is a difference in what and how, if you tell them how it has to be done, then you just killed their space in terms of creativity.
Giving them space also means that you need to put immence amount of trust on estimates they provide, if they over estimate, you try to get in mid-term development and try to put correction there - or if they are going on wrong path, let them experience that once, and they add your thoughts!
Poeple can come up with many more rules related to being the best pay master, strategic vs tactical, long shot vs short shot, work hard, party hard.. but I believe creating right team with right mindeded people with logical thinking is just starter - but letting them flurish is a way more complex and its about treating them as organic eco system is way more difficult...
Its all fun at hoppr - and way more learning for me compared to where I have been.
most proabably thats it - more thoughts later..