One of the things I’m always pleased to see is the number of recruiters looking to fill leadership roles in software development organisations based on soft skills in getting teams to work together nicely rather than focusing purely on their experience with hands-on development.
It seems that one of the most prevailing problems in technology organizations is that the different disciplines often view the other groups as adversaries rather than collaborators. Product managers may feel that engineers are not fulfilling delivery requirements for current and future customers, support may feel that engineers are intentionally not fixing issues that result in unfixed bugs, and engineering often feels like quality assurance is trying to tell them what they’ve done wrong.
All of these attitudes can be either worsened or fixed based on management attitudes. I’ve worked with engineering directors who wrapped their teams in proverbial bubble wrap, only training the engineers on development methodologies such as Agile Scrum rather than including everyone involved in the product development lifecycle, not allowing any visibility into development progress or planning for other departments, delivering builds to QA with no advance communication of what will be in those builds which makes test planning exceedingly difficult, and trying to keep product management from owning requirements which makes product launch and customer relationship management nearly impossible.
Some of the steps that can be taken to improve these problems is having the groups sitting with each other in the offices, having product management, QA and documentation attend the SCRUM stand-ups or development status meetings, have the team members start giving lunchtime presentations talking about what they’re working on, and develop stronger understanding among the different teams around the needs and successes of their customers.
By changing attitudes towards collaboration rather than competition, I’ve seen productivity, product quality, schedules, and morale all improve dramatically. The ability to get teams working together is a very important trait and is often more important than technical leadership at the director level.