In part-I we looked at the essential components of building a great software company. In this part we would look at the people factor, which in my view is the most important factor for success.
One important quote from the Good to Great [G2G] book is that “Executives who ignited transformations from good to great did not first figure out where to drive the bus, then get the people to take it there. Instead, they first got the right people on the bus (and the wrong people off) and then figured out where to drive it.”
This shows the importance people have in any company and more so in the software industry because it is a people driven. People drive the ideas, innovations, processes etc etc.
So what kind of people should a software company look at and what should be the process?
The right people on the bus are those who
- Have selfless commitment to the company, their personal aspirations and ambitions are aligned to the company. They understand that they would be able to meet their personal aspirations once the organizations goals and objectives are met.
- Right people do not have all the necessary technical skills but they have the right attitude to learn and grow. They are passionate about technology and keep themselves updated with the latest.
- Irrespective of the technologies that they would use, their core concepts like Object Oriented Analysis and Design, Design Patterns, Good coding, refactoring etc are solid. They have strong logical reasoning.
- All the above require a good hiring process to get the right person on the bus. Hence the hiring has to be stringent. A process that I would propose is Pre-Screening over the phone, followed by in-person full day assessment which includes assessment of technical and soft skills. Refer to my post on InfoQ. The screening process should vary according to the experience level and maturity of the individual. Refer diagram. The only thing which remains constant is Good Attitude + Strong software development concepts. I am not saying that hiring these people is easy but the mantra is “When in doubt, dont hire”.
- Another important factor is creation of a healthy pyramid, on how teams can be formed with the right mix of maturity related talent. Many organizations have a mix of 1 Sr to 10 Jrs, which in my opinion is a bit skewed. If you have 1:6 ratio then team formation is ideal w.r.t. learning, team colloboration and economies of scale.
- The last thing is a no-brainer, if you need great people you need to pay them well, better than the market for sure. Give them good infrastructure, good working environment, good pay packets and you would realize that 5 people can do the job of 10 with salary of 8.
As you might have noticed the importance is laid on Attitude, Passion, Strong software development foundation, Craving to learn and share. If you have such people on board then you do not need to have a destination pre-decided. Great people come on board and colloboratively decide where they want to take the comany. Of course there would still be some directions from the leaders but you would not have to motivate people to follow because the great people on the bus are self motivated.
If you have to motivate people to follow, then you have wrong people on board.
In the next post I would talk about Brutal Facts.