Agile Time Management Over the past couple of weeks I have been trying to find out what the main principles of time management are in the case of agile software development. I was able to distinguish 10 principles so far, and I will present them here for your convenience. With each principle I also include a reference to an online article that (as far as I can tell) nicely describes the ideas behind it. If you don't agree with my list, or if you know some better reference material, feel free to add your thoughts!
1. Use a Definition of "Done" How? Define what "Done" means and only count the activities that are Done. Why? Prevent the build-up of hidden tasks ("technical debt") that cost a lot of time to fix down the road. See: The Definition of "Done"
2. Use Timeboxes to Manage Work How? Set a start- and end date for a collection of activities, and don't allow changes to those dates. Why? Timeboxes keep people focused on what's most important. Don't lose time to perfectionism. See: Time Boxing is an Effective Getting Things Done Strategy
3. Don't Add Slack to Task Estimates How? Don't use scheduling and buffering of tasks. Add one buffer to the end of the timebox/project. Why? All safety margins for tasks will be used ("Parkinson's Law" and "Student's Syndrom'"). See: Critical Chain Scheduling and Buffer Management
4. Defer Decisions How? Make decisions only at the latest responsible time. "No Decision" is also a decision. Why? The environment may change, making earlier decisions a waste of time. See: Real Options Underlie Agile Practices
6. Keep the Pipeline Short and Thin How? Limit the amount of work-in-progress, and the number of people working in sequence. Why? Improve response times, speed up throughput. See: Managing the Pipeline
7. Keep the Discipline How? Prevent expensive rework by doing some processes well, right from the start Why? Solving problems late in a project is more expensive than following proper rules early. See: The Power of Process
8. Limit Task Switching How? Prevent unnecessary task switching between projects, and prevent interruptions. Why? Tasks get completed faster on average, and the human brain is bad at task switching. See: Human Task Switches Considered Harmful
9. Prevent Sustained Overtime How? Disregard (sustained) overtime as a way to accellerate progress. Why? Lost productivity, poor quality and bad motivation among team members. See: The Case Against Overtime