What do 3 year old soccer practice and application deployments have in common?May 18, 2012 — Dan Gordon
I coach my son’s 3 year old soccer “team” (and by team, I mean a bunch of 3 year olds that run randomly around the same field at roughly the same time).
Professionally, I work in the changing world of software application delivery, where I’ve been focused on delivery pipelines for web applications.
The other day it occurred to me how the successful deployment of a web application shares many of the same traits as a successful 3 year old soccer practice.
It’s about “touch time”.
A good 3 year old soccer practice doesn’t have the kids standing around hearing about the intricacies of the game. Instead, it focuses on keeping things moving to make sure that the kids have as much touch time on the ball as possible, because only from spending time working with the ball will they eventually become good players. Extending from this, it means we don’t have the kids stand in a line while we work with one ball, which would result in the kids touching the ball a minimal amount of the practice time.
For every skill lesson, every kid has access to a ball, for as much of the time as possible, to try and try again. This enables him/her to try/fail/learn/adapt in a tight feedback loop that more efficiently results in success in acquiring the skill. (See where I’m going here?)
Just the same, on the web application deployment side, the odds of accomplishing a successful application deployment into production (the eventual goal) has a much higher chance of succeeding if we get proper “touch time” with the “ball”.
Touch time is time to practice your deployment process, with a tight feedback loop. This can (and should) happen in QA and pre-production. If you are deploying your web applications into QA and pre-production using a different mechanism, scripts, processes, etc. than you will use during the production deployment, then you are not giving yourself the advantage of that all-important “touch time”.
Deploying your web application to QA or pre-production so that you can test the new code should be used as an opportunity to test the deployment process itself. This all important “touch time” allows you to hone the skill (the deployment process) so that by game time (push to production), you are confident and comfortable handling the ball.
How much “touch time” do you give yourself with the ball before the game?