--- Begin Message ---
Recently, I got to try out working in a couple different environments.  Working 
in these environments helped me formalize some of the things that I like and 
some of the things I don't like.  With these new environments I've come to 
realize my style of development.  It's called **penance driven development**.  
It's called this because there are two important things:  
1) It's better to ask forgiveness than for permissions  
2) You need to be deserving of forgiveness.  
  
So the concept is simple, whenever you break something, you first fix the 
symptom, then you improve the infrastructure so similar breaks should be harder 
to do.  The cost of the penance doesn't have to be huge, but the penance has to 
be done, otherwise technical debt accumulates and people believe there is no 
downside to breaking things.  
  
What needs to be improved depends on what is missing.  For example, if an 
engineer broke a feature, but that feature didn't have a test, the penance 
should be to write a test.  Even if the one that broke the feature isn't the 
owner or the one that wrote the feature.  If someone breaks the build and no 
one noticed because the continuous build didn't email, the fix could be setting 
up the continuous build to email out build failures, or even better, run each 
change on a build bot before allowing commits.  
  
I think I'll have to start a penance of the day blog/twitter stream.  
  
I've been practicing this style of development for most of my career, and it's 
similar if less precise than the [5 whys][1] .  As mentioned in the [The Lean 
Startup][2], the cost of the penance should be proportional to the cost of the 
break.

![][3]

   [1]: http://en.wikipedia.org/wiki/5_Whys
   [2]: http://theleanstartup.com/
   [3]: 
https://blogger.googleusercontent.com/tracker/6893636-7351862986128773327?l=phython.blogspot.com

URL: http://phython.blogspot.com/2012/03/penance-driven-development.html

--- End Message ---
_______________________________________________
tails-dev mailing list
[email protected]
https://mailman.boum.org/listinfo/tails-dev

Reply via email to