The second day of Agile Brazil started with Professor Philippe Kruchten‘s keynote “Agility in Context”. In my opinion, this was one the the best talks of the event. The professor started mentioning agility as a culture and went on to reason about the issue of lack of context when using agile methods. There are contexts where agile methods might not be the best option. He also advised not to adopt practices out of the box (agility does not come in a can – most approaches are valid with a context). There is a sweet spot, where agile adoption is easy, but there are projects that do not fall into that category. So, we should choose the practices that fit our needs by asking: 1) what is our environment? 2) what is the specific context of this project? 3) what practices will be best suited for this context? The professor then asked the rhetorical question: “what is agility?” – and gave this answer: Agility is the ability of an organization to react and adapt to changes in its environment faster than the rate of these changes (-known agile practices can help; – conformance to the agile manifesto can help; but none are absolute musts – situated agility). Kruchten concluded talking about post-agilism: keep a skeptical eye on the agile movement and have in mind that agility is not an end in itself (it’s mostly opinions, not science). Bottom line is: figure out the context in which a thing is created before adopting it (during the talk he showed the Octopus, an interesting model to do that evaluation).
Leandro Silva talked about how a company, leading in its segment, completely failed with the adoption of Scrum. The company’s worst mistakes were: 1) lack of knowledge on agile; 2) lack of support from the IT directors; 3) “hybrid adoption” (they tried to adapt the practices with no support and at the same time satisfy the company’s culture). As Leandro pointed out, if the company’s culture does not change, it’s difficult to be agile. It’s necessary to influence and change the mindset of the people that make up the company.
James Lewis talked about agile adoption anti-patterns, which he defined as the following: “Stuff I see as a practitioner time and time again… and I wish I didn’t”. The anti-patterns he presented are: 1) Flaccid technical lead (lack of technical direction), 2) Inverted servant leader, 3) Novice in charge, 4) Change everything at once, 5) Be careful what you wish for, 6) Novices don’t know what they want, 7) New architecture team, 8 ) Process mavens (you have a team whose job is to create the best process and then tell the others to use it), 9) Stagnant agile, 10) Agile adapter and 11) Hamstrung Scrum (this is taking some practices of Scrum and neglecting the best engineering practices – TDD, CI, etc.). The root causes for these anti-patterns include issues related to organizational change and the fact that people have a hard time changing. James pointed out that there are local and global optimizations, and sometimes incremental change is not enough. People will break, we must deal with it. In addition, he mentioned the Dreyfus Model of skill acquisition and, in particular, a workshop Pat Kua put together, applying the Dreyfus model to pair programming. In regard to changes to teams, James quoted Conway’s law: “organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations”.
Klauss Wuestefeld closed the conference talking about the values and practices of XP after his 10 years of experience. He started by using a few analogies to explain the nature of software development, such as software development as a cooperative game, osmosis and fragments, the fractal nature of software and project vs projectile. He then gave a nice metaphor for software: a representation of what the team knew at a specific moment in time. This definition eliminates the view of software as a product of construction and connects it to the concept of learning. Together with learning, he adds coolness as the ‘new’ principles. As to the practices, Klaus sticks with the following: planning on demand, periscope, forget feature requests (“let your customer remind you what is important” – Getting Real – 37 signals), continuous deployment and cleaners (this last one means having people to clean things… I myself prefer the Boy Scout Rule).
Overall, this was a nice conference, well-organized, held in a great venue and in a great city.
Hope to see you in Agile Brazil 2011!