Though it had been quite a while, I roughly gave the following points.
- You need to give them appropriate title. For example, we don’t have the position of Chief Technology Officer (thought it might sounds a bit outdated as it comes before the Internet Burble Burst, but you could gave it a new face-lift), Software Architect or Lead Programmer and alike. We got boring title like Developer, Consultant, Application Expert that doesn’t sounds cool nor reflect the nature of our job. Somebody mentioned my suggestion sounds easy and achievable, yet no one put this into action. Maybe I am not convincing enough, or no one bothers with this tiny little things.
- You need to portray yourself as a strong software house with good software development practices. If you don’t have a strong product with a strong development team, why would you need talented Software Developer? You need to provide a conducive environment with good challenges for them to pour in their knowledge and skill. Somehow, the company wanted to become a software house, but top management doesn’t have the knowledge nor commitment to build software.
Anyway, how should we attract talent? Google’s Ten Golden Rules might sounds good, but some of it might not be so applicable to small start-ups, and some of it just sounds “impossible” for most of the locally established IT firms. Here is my version of a few not so golden rules meant for small local start-ups:
- Get the Right People on the Bus, the wrong People of the Bus, and the Right People at the Right seat. Give every programmer you hire a programming test, so that no one bullshit their way through (many succeeded in doing so, because no one bother preparing the test questions, and the HR definitely don’t know it is necessary). At anytime, I would prefer someone with good attitude and lesser skill than some programming Guru with bad attitude. If someone is not as good as you think or might even turned out as a black sheep, released them after the probation period. We are not a charity organization, we only keep and reward good people. Besides, keeping a bad apple around pull down the entire team’s moral and disrupts productivity. Make sure your employee are doing what they enjoyed and good at, so that they can be passionate and have high morale.
- 30 Minutes Meeting. Control all meetings to be within 30 minutes, and you shall be superb.
- Good Tool, Machine and Practices. No one is allowed to do programming using a Notepad, even if they begged for it. Get a good IDE with support for debugging, profiling, version control and etc. Give them powerful machine, as slow and lousy machine can reduce productivity significantly and increase frustration. Those who don’t spend on this are stupid-Kiam Siap-visionless-ignorance boss (I know of a software house who gave their programmer Dual Xeon processor with 2GB Memory and 17" LCD Minitor as standard PC, yeah!). Nevertheless, introduce some standardized Software Development practices on naming convention, framework and architecture, libraries, testing, documentation and etc.
- Collaboration Infrastructure. Provide an infrastructure to share ideas and updates. Probably an Intranet Portal, Forum or Wiki would be nice.
- Focus on Productivity and Creativity, not Dead Procedures. Basically, I want you to be able to do a good job, and perhaps sometimes come up with some good ideas rather than following my orders all the way. Challenge me wisely. You could come in a bit late or go home a bit early, as long as I still see you as one of the top performer. You get your extra leverage based on your contribution. We might even go for King Kong on working weekday on company’s expenses, if I can afford it.