Soft Skills for the Developer

(Guest Editorial for the Simple-Talk newsletter)

In the rush to recruit a developer to fill a gaping void in a development project, it is sometimes easy to forget the relative importance of the skills you need.

We were building a complex middleware architecture based on SOA principles with distributed transactions. The task was daunting, and the deadlines tight. The consultancy that came up with the design had over-egged the pudding. The suggested architecture was without precedent, and it was left us to turn fantasy into reality.

We needed to hire good development skills and the agency had, apparently, found them. We looked through the CV and the glowing notes supplied by the agency. This candidate seemed hot stuff. We filed into the room, greeted the candidate and started the interview. I was amazed by his fluency, and by the range and scope of his experience and achievements. He’d been the brains behind a successful desktop publishing package and had written several other applications.

Oddly, his CV indicated that he’d never worked long for any organization of any size. I steered the conversation around to his experience with a company with which I’d had some prior experience. He became animated, extolling his achievements whilst he worked there. In cross-questioning him on the specifics of a particular project, we touched a raw nerve. He flushed, and said his manager made repeated mistakes, the head of IT was an idiot who didn’t understand the technology, and that some of his colleagues made hilarious mistakes. The other interviewers latched on to the theme, and before long, the candidate had, through his struggles to present himself in the best possible light, denigrated almost everyone with whom he’d worked or collaborated. His universe was full of fools, and all his achievements were done working in isolation.

After the meeting we all looked at each other, sighed, and shook our heads. There was no debate needed. He was an ideal candidate for someone else, but not for us.

The greatest skill that is required in any large organization, particularly in IT, is the ability to work in a team. However dazzling the technical competence, without teamwork skills they are valueless. Modern development trends such as Agile, ALM, DLM and DevOps increasingly rely on ego-free and testosterone-free teamwork. Despite the fact that every CV and resume I’ve ever read proclaims that the candidate is a good team player, it is a surprisingly rare skill, and teams only thrive where management also understands its value.

Is there an alternative team structure that can harness the technical skills of the loner to the maximum, and retain them in the organization? Yes, there should be, and a skilled manager can manage it. However, teamwork is not a wired-in characteristic but rather a skill that can be acquired just like any other, and is part of the management training of many international companies. Perhaps in IT, we have some catching up to do in the art of ‘soft skills’ training.