Principled Agile
Values
Remember, both sides are important.
Individuals and interactions over processes and tools
Valuing individuals and interactions over processes and tools should pervade everything we do. The people are more important than anything, and the tools and processes we use should be good for the people and should facilitate their interactions.
Imposed Processes
We should probably never impose a process on our teams. Perhaps we do need some kind of consistency across our organization, but imposing the process is a very questionable way to get the consistency. If we must impose a process, it should be the lightest possible process. Frankly, I doubt that imposing process is ever really necessary.
Cross-functional Teams
Sometimes, teams are structured so that team members need to interact frequently with people on other teams. Sometimes the organization doesn’t have enough people with a particular set of skills, and teams need to draw on expertise from specialist groups. Sometimes one team hands off work to another team, commonly a testing group.
All of these slow you down. They’re not good for the organization, and they’re not good for the people. Careful attention to what gets in the way of people interacting quickly and smoothly helps us see that our best strategy is usually to build teams that are self-contained, including all the skills needed to produce what we’re asking them to produce.
Remove Impediments
Often, our official processpag – or the unwritten rule book – interferes with getting work done. By observing the interactions between the team members, we can see these impediments and remove them. There are many possibilities. A few include time-consuming administrative work, slow access to needed facilities, and poorly-arranged workspaces.
For high quality and rapid development, there should be nothing in the way of our people working together to get things done. Pay constant attention to ensuring that individuals can interact effectively.
Working software over comprehensive documentation
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Working software is the primary measure of progress.