Productivitynoun; a measure of efficiency of production which implies comparison of input in such terms as capital invested, wages paid, numbers employed, etc., with output.

 

Software development, when conducted on any significant scale, is a team-based endeavour – typically involving the core product or project team who build the software, and the extended team of stakeholders who shape the problem, fund the undertaking, receive the product into service or eventually use the software.

 

Building, aligning and managing these teams is not a trivial undertaking.  Additionally, the ability to collaborate within the teams is crucial to any endeavour of scale.

 

As someone put to me over the weekend, the problem with many software teams is often not a lack of technical competence, it is simply that their productivity is low.  Low in terms of quality of output, timeliness or cost of delivery, efficiency of work, size of team, etc., etc.

 

How do software teams boost productivity and ensure that they are competitive in a global sourcing market? My answer – focus on the process.

 

Focus on the essential requirements for a high productivity team:

    • Establish a common language so that ideas, issues and problems can be discussed quickly, efficiently and effectively.
    • Define roles and responsibilities – no one can do everything and all heroes tire eventually.
    • Define the way the work will be conducted to an appropriate level – building software is a complex undertaking and the diversity of people, experience and skills necessitates clarity to avoid costly duplication of effort, missed work and rework.
    • Make people accountable for the work – define what is required by the contributing roles, establish acceptable standards of quality and work towards defined goals.

 

All of these requirements are process related.

 

Productivity – simple in concept, but hard to deliver on without a foundation of process.