While its always a good idea to think outside the box when approaching a creative task, this is not always the case. For example, when working with teams, where more work can be completed which covers a larger spectrum of interest, organization is paramount. Scrum takes the concept of compartmentalization to its next logical conclusion by allowing individual teams to focus on specific elements / goals of a project while at the same time, routinely coming together to create synergy.
Fine-scale feedback Pair programming Planning game Test-driven development Whole team Fine-scale feedback Pair programming Planning game Test-driven development Whole team Continuous process Continuous integration Refactoring or design improvement Small releases Continuous process Continuous integration Refactoring or design improvement Small releases Shared understanding Coding standards Collective code ownership Simple design System metaphor Shared understanding Coding standards Collective code ownership Simple design System metaphor Programmer welfare Sustainable pace Programmer welfare Sustainable pace Coding The customer is always available Code the unit test first Only one pair integrates code at a time Leave optimization until last No overtime Coding The customer is always available Code the unit test first Only one pair integrates code at a time Leave optimization until last No overtime Testing All code must have unit tests All code must pass all unit tests before it can be released. When a bug is found tests are created before the bug is addressed (a bug is not an error in logic, it is a test that was not written) Acceptance tests are run often and the results are published Testing All code must have unit tests All code must pass all unit tests before it can be released. When a bug is found tests are created before the bug is addressed (a bug is not an error in logic, it is a test that was not written) Acceptance tests are run often and the results are published