Are you in control?Posted: July 21, 2011
What does it mean to be in control?
In our business, being in control means being aware of all of your risks and having a real plan for mitigating them. Risks we define as uncertainties about the success or continued health of some process. So you have, for example, schedule risk (can we ship on time?), technical risk (will this system handle massive load spikes?), business risk (will we meet our numbers?) and so on.
We use a combination of techniques to mitigate risk: Schedule risk is managed by careful planning, historical analysis and collaborative assessments. For example, after each sprint, we analyze the amount of work done and average it against previous sprints. This allows us to calculate our capacity to deliver work. We feed this data into new sprints in order to ensure that we can commit to finishing all the work we sign up for. The team as a whole collaborates on costing and estimating items.
Another set of tools are used to manage technical risk: Code reviews are done for checkins, often by multiple people. This both helps everyone understand how the various parts of the system work, allows more senior members of the team to provide mentorship and oversight, and gives us additional chances to catch bugs and to ensure that code is of the highest quality – with tests and documentation fully in place. Load testing using JMeter, unit testing using JUnit, black-box testing using browser automation frameworks, monitoring systems and careful, clean logs are some additional things we have in place to manage technical risk.
When you are in control, you are more productive, you can move faster, commit to, and deliver work on time, you have less stress and more fun. And ultimately, create a more valuable, sustainable company.