We are all aware that there is a great demand for agile developers. So, when you are hiring for your agile team, what qualities do you look for in a candidate?
When you’re looking for someone to join your software development team, you might look for technical skills—experience with a given programming language or tool set, or even the ability to solve puzzles. While these are important, remember that there are also some often-neglected skills that can help one be an effective agile software developer. These skills include working with people, naming, and continuous learning.
The ability to work with others is critical. Some have even used technology to measure and optimize people interactions. Brad Feld argues in the Wall Street Journal that, all things being equal, a good cultural fit trumps competence when making hiring decisions for startups. Collaboration skills are particularly important for agile teams since agile methods have more interaction built into their processes than other teams.
When thinking about how someone might work on your team, note that “cultural fit” doesn’t mean “exactly alike.” For example, teams that share a mix of Myers-Briggs Type Indicator personality types often perform better than more homogeneous teams.
The ability to choose appropriate names within code and designs that communicate meaning is another often-neglected skill. Martin Fowler argues that naming is up there with technical issues. Naming isn’t just about following arcane naming standards. Names help us communicate as well as read code more accurately. Being able to jump into code written by someone else is an essential part of effective agile software development.
While it’s crucial to have enough technical skills to immediately contribute to a project, the desire to continually learn is more important. The tools and techniques you are using today will change over time. Being able to adapt and apply your domain knowledge to a new tool set is essential to being an effective member of an agile team.
Once you find a person who fits into your team, be sure to make every effort to integrate them. Finding the right person to hire is just the start of the process.
What kinds of things do you look for when you hire? How do you evaluate non-technical skills?
Steve Berczuk is an engineer and ScrumMaster at Humedica where he's helping to build next-generation SaaS-based clinical informatics applications. He is the author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, and has an M.S. in operations research from Stanford University and an S.B. in Electrical Engineering from MIT.