3 The people-part of agility

 

This chapter covers:

  • How humans cooperate
  • Which roles in an enterprise need to communicate for software development projects
  • Why senior management is crucial
  • How to structure communication channels in enterprises
  • How consultants and contractors fill gaps

The Manifesto for Agile Software Development prominently recommends relying on self-organizing groups of people to get things done. Is this reliance misplaced? Do these groups need more top down organization and direction? Do they need more measurement and estimation? The evolutionary heritage of humans suggests that self-organizing groups hold a lot of potential.

Humans cooperate better than other species. Everywhere the human species settled on the planet, dangerous megafauna went into decline or extinction. Homo sapiens, though weaker, slower, and more vulnerable than their evolutionary ancestors, lived and hunted in cooperating, communicating groups that could make multi-stage plans, and execute these plans over long periods of time, like digging traps for capturing and killing animals as large as mammoths.

Human cooperation is adaptable. Planning, communication, and creativity made a creature that would otherwise not stand a chance in a one-on-one fight with a tiger the most dangerous creature that walks the Earth. Human survival is the result of humans cooperating in uniquely human ways.

3.1 Ancient projects and human cooperation

3.2 The participants

3.3 Software developers

3.3.1 Agile did not come down from management

3.3.2 Software development roles

3.3.3 Coders

3.3.4 Software architects

3.3.5 The chief technology officer

3.3.6 An enterprise that embraces risk

3.4 Senior management

3.4.1 Operational and financial leadership

3.4.2 Strategic leadership

3.4.3 Management problem solving

3.5 Project management

3.6 Product management

3.6.1 Product managers and embracing risks

3.6.2 Product managers, schedules, and milestones

3.7 Technical operations

3.7.1 Devops

3.7.2 Testing

3.7.3 Test deployments

3.8 Product marketing

3.8.1 Agility versus real world constraints

3.8.2 Product readiness

3.9 Sales

3.9.1 The subversive potential of sales

3.9.2 Sales management

3.10 Support

3.11 Communicating entities

3.11.1 Communications channels

3.11.2 Communication among peers