"You can't have a culture without practices; and the practices you follow identify your culture."
(Robert C. Martin)
(Robert C. Martin)
Please read this post "The True Corruption of Agile" from Robert C. Martin blog:
The above quote it is an answer to these statements (quotes from the same post):
Holub says:
"...agile is a culture, not a set of practices..."
Binstock amplifies:
"Whether a site is Agile or not depends on its culture. Does the culture support the personal values of the manifesto? If so, it's Agile, if not, then it's doing something else. So, indeed you could have a fully Agile site without TDD, continuous integration, or scrum. Likewise, you can have a site that uses all three practices, but cannot adapt to changes and is wholly inflexible in its work — so, not at all Agile."
The answer of Martin continue (quote):
The biggest problem I have seen within the Agile movement is the elimination of the practices.
One by one, over the years, the practices have been de-emphasized, or
even stripped away. This loss of practice has diluted and changed the
Agile culture into something that I don't recognize as Agile any more.
It has been a shift away from excellence towards mediocrity, away from
hard realities, towards feel-good platitudes.
It began with the notion that anyone could become a "master" of
anything by sitting in a two day class and getting a piece of paper.
Soon to follow was the dilution and eventual loss of the technical
practices. This prompted Martin Fowler to publish his classic and
definitive blog: Flaccid Scrum.
Then came the emphasis of project management over craftsmanship and
the rise of the soft skills (attitudes) over the hard skills
(practices).
The (Uncle Bob) conclusion is that you cannot have a culture outside a set of practices that are part of the professions, where both management and engineering culture is expressed with practices. Abandoning practices it is just a "shift away from excellence towards mediocrity".
Binstock says that you could have full agile result also without significant practices such TDD, continuous and Scrum (related practices) , where all that count is to be adaptive to changes and being flexible in the work and the mentioned practices could not guarantee that.
Somehow, both are right, but Binstock example is not so good, because mentioned that you may have one case where... A better logic should be generic, not based on a possible example.
Yes, you could have not be enough adaptive with TDD, Continuous Integration and Scrum practices, but that because the number of indispensable practices is much bigger.
Yes, you could be adaptive without these three practices, but not for any case but only for some cases. Example: the Agile Manifesto promise to support late changes with good results it is mostly impossible without TDD.
"Adaptive to change" - I have tried to define this capability reflected in a set of indispensable practices for engineering aspects in the post "A roadmap to an Agile Design" on agiledesign.org (see http://agiledesign.org/2014/09/09/i-roadmap-to-an-agile-design/ ).
Agile could be a "mindset", but not acquired by two days course (that could help), but from hard work and deep experience with applying of engineering and management practices.