We have a disconnect in the agile community. Agile approaches to software development are not about technology departments like Information Technology, Engineering or Research and Development. Agile development approaches are about customers, knowledge workers, and successful outcomes.
This fundamental concept seems to be difficult for many companies to grasp. Or, maybe many managers and developers prefer to ignore the broad-based, core aspects of being agile and prefer to focus on the easy stuff. It’s much easier to focus on your job and your team’s activities rather than the broader corporate goals.
Whether your team applies the principles of Scrum, Kanban, Lean, XP or some combination of all of them, you’ll need many skills to be successful. In addition to the obvious technical skills, successful teams need active participation from marketing, product management, finance, customer support and security administration teams — at least.
The major concepts behind agile software development aren’t technically oriented. They are people and process oriented. Consider this list of agile principles:
- Value creation
- Shared knowledge and pairing
- Multidisciplinary teams
- Continuous improvement
- Quality results
- Customer satisfaction
- Change acceptance
- Simple techniques
- Trust and respect
- Self-organizing teams
- Short cycles
- Backlog management
- Daily 15-minute standups
- Minimal work-in-progress
- Definition of done
- …I’m sure you can add others.
The point is that by focusing exclusively on the technical contributors and their skills we also focus on the technical aspects of the solution. Yet customers don’t care how the software was built or what tools and technologies were used. They care about quality results delivered in a timely manner.
Great software delivered late is a poor outcome. Great software delivered far above the expected cost is a poor outcome. Crapware delivered on time and on budget is a poor outcome. Software that meets all the technical and internal goals but doesn’t satisfy customers’ needs is a poor outcome.
Are you following this? Delivering software that everyone (software developers, business community, and customers) believes is great is hard to do. Agile techniques are no guarantee but they’ll improve your odds — if you adopt a comprehensive view of your approach.