Interesting piece.  Makes me think of football/soccer: two countries (Brazil and Italy) have won 9 of the 18 World Cups.  These teams seem to have worked out formulas for success (players, strategy, tactics, preparation, and the dash of luck).  But they haven’t won all 18, so there are times when some or all the elements were not there, e.g. the players weren’t good enough, the tactics were wrong or incorrectly applied.  Programming is like a team sport: you need the right people, the right techniques and the right management .  Agile may work for some teams, or it might not.