Peter Hundermark has a nice summary of the talk on Agility at Scale that Scott Ambler did in Cape Town a few weeks ago. And Scott had the courtesy of straightening out some thoughts on Peter’s blog as well.
Padding End Dates. End dates exist because of our immense desire for closure. We cannot tolerate the thought of not knowing when something comes to an end. So we would rather stick in a fake end date than no end date. Are you prepared to stick an end date on your life, just so that you can create a finite sense for someone else?
Optimizing the whole. For me “whole” means everything, your workflow, your thinking, your architecture, your code, your communication, … everything. But just drop into the code bit for a moment. The reason TDD works is because it gives you feedback quicker. It is not about the red-green-refactor process alone. You have to be agile in your code and design too. And linear problem solving results in linear code styles and mindless red-green-refactor results is not agile unless you are 100% immersed in the moment of exploration and discovery. Overall, I think optimizing the whole, getting rid of wastage, lean, etc is all about finding the right balance – at that point in time, in that context.
BDUF. How much of upfront design is big design up front? It depends on the context and the principles on which your software development is based and also who is affected by the software that is produced. I like the phrase “little too much design up front” and “little too little design up front” which I picked up in this post by Kent Beck. (Please don’t acronymize that!). That particular post was simple and extremely profound view, for me at least.
Just when I thought that I am making progress, I feel like a noob again.