Introduction by Apolinaras “Apollo” Sinkevicius: this guest post by Paul Morgan might have the language directed at mid to larger size companies, but the vast majority of principles mentioned are highly applicable to the world of technology startups. Yes, according to my personal experience and widely available statistics, most of you will not make it past the team of 10 and this may not help you. But a good number will and strong technical teams will become a huge issue. Having had a chance to grow companies past the 100-employee mark, I know growing pains show up much earlier than expected.
This will challenge most moderate to large companies involved in software development traditional views. For the purpose of this discussion I will assume the technical team is involved in developing a web-based application. From the results you can pick and chose how you want to arrange your team.
Before we do the people selection there are some key principles to establish:
- Strong talent in a small team can be far more effective that average talent in a larger one.
Well directed and motivated expert teams execute effectively. They tend to need more tender loving care because they can be precious about their output, but this is a small price to pay for the results that can be delivered. You will expect to pay that expert talent more, but you can offset that by recruiting fewer people.
- Try to operate like the team is a small start-up
The by-product of creating this environment is that the team feel they can operate outside of the “red tape” that besets many larger organizations and start to get creative and innovative. Typical examples are removing all the “lock downs” that most corporate organizations enforce on company provided hardware. This doesn’t mean that it’s a free-for-all – the environments should be well thought through and consistent. Also allow the team to work on a flexi-time basis.
- Have a strong leadership team that is transparent
If the team know their leadership have their support and trust them then they are less likely to want to fail and will go beyond the cause to get things done and done right. A leadership team that shows they have direction and can speak to the team about it, can be open an honest about how things stand will have the respect and therefore the backing of the team – this loyalty is an extremely valuable commodity.
- Cultivate the environment where everyone matters
Empowering the team and ensuring that everyone feels more than comfortable to give an opinion to anyone in the group at any level. This creates an environment where people get passionate about their work and team.
- Shield the team from corporate noise
Avoid team members getting caught up in meetings etc. that take away their time from doing the work they love. This is a value add that they will respect you for.
Create effective communication strategies – canvass the team about what sort of information would be useful. Have at least one team meeting a week and consider having a “beer Friday” once a month – take the team outside of the work environment and let them talk. It’s amazing what you’ll find out!
Choosing the right people
Depending on how your organization is composed, this design will differ but the component parts are still valid. The groups listed here are not exhaustive. Other equally valuable groups include Technical Authors, Support and Deployment.
Development – it’s a good idea split the development team into support and enhancements. That way you can have more junior or offshore resources in the support space and put your key resources into the new development area. As the junior resources mature they have a career path opportunity into the enhancement team.
When selecting your development team look, consider the importance of:
- Database optimization – On oft overlooked skill is the ability to craft good SQL; whilst this can be achieved through the DBA, having someone on the development team skilled in this area is a positive.
Business Analysts – Being able to understand the 50,000ft view and bring it to the 50ft view is really important. BA’s are more than glorified note-takers (as I’ve heard them called) – they’re key people to interface between business and technical groups. Ideal characteristics include the ability to drive and direct both business and technical groups through positive interpretation, being decisive, accessible and flexible to changing needs. This list isn’t exhaustive but it gives you an idea where your BA skill sets need to be. A great BA is worth 3 average ones.
Quality Assurance – This is another area where outsourcing is possible, however it is essential that there are full time employees also on the team to drive and direct. The team should be able to offload a great deal of the core testing through automation – without this you lose the ability for the QA team to be flexible to changing landscapes and the cost of ongoing testing is increased.
If you’re looking for agile/xp development then the team has to be located in the same office to be effective. Teams trying to be agile in multiple locations face many challenges and tend to fall back to the waterfall method, which is ideal in these situations.
There is much to cover about the perfect technical team. Technical ability is extremely important, but no more so than personality of the individual. A good work atmosphere is incredibly addictive and will nurture a creative and industrious environment. Getting highly skilled and motivated people will pay dividends way beyond the balance sheet.