I didn't like this presentation to start with, but it sucked me in. Give it 10 minutes (I know, that's *forever*). Agile these days is like food and drink, but not everyone today will know the conditions Agile grew out of and what needed to be fixed. The first half hour is an excellent history lesson. There are two underlying themes. First is that Agile needs to become predictable, a science, and not devolve into a cargo cult. The second is that Agile needs to grow beyond the programming part of the software business.
The presentation really kicks off about 35 minutes in when some new
principles get derived from lean techniques. I'd like to say the answer
is to expand towards Lean, because it addesses so many lifecycle, quality
and scheduling problems, and this is a landmark presentation, but there's more to it than that.
"in knowledge work problems, coordination costs grow non-linearly with batch size".
It's funny how things work. The first time I heard of Kanban was in 2001, on a work placement; another student who was in manufacturing explained how crates of parts were being pulled from a shelf when the production needed them; when that shelf was pulled from that caused part orders to come in from outside. That was a good 5 years before starting my CS degree. At the time I knew nothing about programming; I just thought it was cool seeing how dental floss boxes were made (I was told that the one-piece dental folding floss box itself was an industrial design breakthrough).
"If you multiply what we know we can get out of agile and lean
methods and what the SEI and academic communities know you can get from
software product lines, you get a 100-fold. improvement, an improvement
on the same sort of scale, that we've seen in manufacturing over a
hundred years as they moved from mass manufacturing to lean
manufacturing."
Anderson refers to cloud computing and says architecture and design will be back in fashion in a few years. I'd say it already is, but in the guise of splitting out heavy infrastructure work from development, and starting to rely on DSLs, not the old way of trying to make things perfect upfront and visual/4gl programming.
Last quote: "Get it out of your mind that high maturity and agile are incompatible. If you like maybe CMMI levels 2 and 3, and the antipatterns they create are very incompatible with agile, but high maturity levels, 4 and 5, that's what we've aiming for all these years"
The presentation ends with some stuff on real option theory (as opposed to the last responsible moment), the part about how people prefer making a decision over being right alone is worth it.