Sunday 31 January 2016

How To Grow a Development Team

For the manager of a technology shop, "Hotel California" has the ideal spin on staffing. As the Eagles so bluntly put it "You can check-out any time you like/But you can never leave!". In modern business speak - Hotel California has zero "churn", where churn is the portion of recruits each year who are hired to replace employees who've left.

No Churn

Churn is an expense - partly in the recruitment process - but mostly in it's impact on team productivity. From the on-boarding processes, to learning about the team's technologies and how the business works, these all consume the team's time - and hence reduce its productivity.

Let's say you're putting together a new development team, then the following chart indicates the number of people hired to get the team from 4 to 25 developers in 5 years. "Low Churn" indicates the number you need to hire each year on the assumption people stick around for 6 years on average, while "High Churn" is when they only stay for 18 months.

With these alarming numbers in mind, here are five principles for growing a team which can help keep a lid on the level of churn.

1. Balanced Recruitment

To start the team you either have - or recruit - experienced well rounded developers who have good communication skills, a clear understanding of the business and who are comfortable coding against fluid "specs" coming from guesswork and prediction with the goal of getting it out the door quickly. Once the business is more mature, the direction is well defined and processes have taken form it's still great to have some experienced developers at the helm but you don't want them spending too much time on the routine tasks. They're too expensive and they'll get bored (and itchy feet).

Once the business is established, recruit early career developers who are learning the technologies as they go. Although they won't be as quick churning out code for the first few weeks, don't let that get in the way - the bigger impediment to new-comers is understanding the business. These early career developers are there to free-up the experienced developers so they have time to solve the hard problems and put together the big picture and direction.

2. Continuous Learning

Programming (as a skill) isn't taught at university. The concepts behind programming are taught well, but being 'fluent' in a programming language, comfortable with design patterns and fitting into processes are skills which a developer can only acquire through continuous hands-on experience. In part this learning can be achieved through outsourced training such as ours but in addition there needs to be opportunity for learning company specific technologies, as well as self directed learning and experimentation.

One great way to achieve this is to have a regular hack-day - a day set aside where developers can work on their own ideas to get a new technological perspective on business products and processes. Hack days are principally a learning opportunity giving employees a sense of self development, but sometimes resulting in whole new directions for the company!

3. Communication

If you want to give developers a sense of belonging to the company, don't just send them off with a project spec and a deadline. That's outsourcing. Ensure that the developers can communicate with the stakeholders and get a deep understanding of the business goal. Encourage them to question the specifications.

Developers also need processes such as code reviews, pair programming and presentations so that they have a shared understanding of a project's goals and paths to get there.

The result of these structures is a healthy and more productive work dynamic.

4. Ownership

Don't get me wrong - shares are good! - but in terms of productivity, project ownership and responsibility is better. A developer feels a stronger sense of belonging when they are involved in the entire life cycle:

  • requirements gathering;
  • design;
  • acceptance testing;
  • release; and
  • bug and feature maintenance.

Don't go piecemeal - developers should have end to end involvement in their projects.

5. Passion

Developers are artists. They're passionate. They want their creations "out there", whether as open source projects or spin-off products, a public website, a blog or a presentation. Like all humans, they want to be part of their community.

With these five principles your developers will find the job is really quite hard to leave, and you'll find them humming along to...
Welcome to the Hotel California 
Such a lovely place (Such a lovely place) 
Such a lovely face 
Plenty of room at the Hotel California 
Any time of year (Any time of year)  
You can find it here

1 comment: