The success or failure rate of a development team can largely be correlated with the expertise and skill sets represented by its individual members.
Sometimes, software development C-level officers can become so mired in the myriad aspects of running a business and getting products released as quickly as possible that they lose sight of what really makes an organization successful: retaining a team of talented and skilled developers capable of producing high-quality software. This phenomenon is most apparent when non-technical executives attempt to influence the operations of their development or quality assurance teams.
(Related: Five rules of project management)
Software development industry member Bob Warfield argued in a recent Enterprise Irregulars article that business-side personnel will frequently attempt to direct the operations of developers and QA departments with little concrete knowledge regarding the methods they are forcing upon programmers and software testers. An ill-suited development approach could impede the performance of these business units and ultimately result in the release of an inferior product.
According to Warfield, executives will often suggest an approach that was successful on an earlier project they oversaw or because they heard a competitor was utilizing a particular methodology. However, those circumstances may have been more conducive for implementing a particular development approach. Just as likely, the success of past projects might have been independent of the methodology entirely.
Warfield conceded that this type of overreaching management was not unique to software developers, but he argued that the challenges inherent in the design process made these actions more disruptive than with other organizations.
“A lot of companies do a lot of things wrong, but software development is different,” Warfield wrote. “It takes longer to build software. It’s harder to change direction at the last minute. And by the way, did you notice they’re called ‘software’ companies? They’re not called ‘sales’ companies, ‘marketing’ companies or ‘CEO’s best notion of the moment’ companies. It’s important that you actually be competent at building software in order to have a real ‘software’ company.”
Crucial team skills
When it comes down to it, the success or failure rate of a development team can largely be correlated with the expertise and skill sets represented by its individual members. According to Liferay senior software architect and Memeburn contributor Ray Augé, software developers must acquire the necessary skills to effectively compete in today’s fast-paced industry built around quick production cycles. He highlighted three qualities that programmers should have in order to effectively contribute to a development team:
- High comfort level with distributed source-control systems: Housing the source code and every revision of a given application, these databases serve as immensely helpful information repositories for both newcomers to the development field or old vets who want to get acquainted with recent changes in the industry.
- Involvement with the open-source community: Developers can hone their abilities and broaden their skill sets by working with other developers on an open-source project, bolstering their programming acumen.
- Willingness to work with remote teams: Global outsourcing is a fact of life in the development community, and any successful programmer will need to be comfortable working alongside QA management that is potentially located thousands of miles away. This can be a challenging feat, as language barriers and time zone differences can inhibit attempts to synchronize remote teams. However, a sophisticated test-management software suite can facilitate communications between business units and help them to better coordinate their daily activities.