Monday, March 13, 2006
What's wrong with current Agile Practices...
Let me start off by saying, hybridism is evil! Many folks in large enterprises who are starting to think about agile approaches will consider methods that combine agile and traditional elements which simply results in mediocrity. Instead, the better approach is to think about building communities of practice (distinct from centers of excellence). Of course, the founding members of the Agile Manifesto rarely write about this which is suspect. Maybe it is time for Agile Manifesto 2.0?
For enterprises whose primary business is concentrated in dynamic markets, the conditions surround communities of practice are similar to those where agile software development methods are intended. In those kinds of environments, self-organizing communities that transcend official organizational structures have proven to be very centric enablers for success.
A community of practice is defined as people who are bound by informal relationships and share a common practice. Community refers to the informality and personal basis of many relationships in typical communities. Practice indicates that communities of practice are centered on shared practices. Boundaries within communities do not correspond to official
organizational boundaries but rather to practice and person-based networks. People in the community are contextually bound by shared interest in learning and applying a common practice. This results in an emergent nature for the community.
A wise architect at work named James, once asked me what happens after we fully adopt SCRUM and XP. I did tell him the next journey is open source. Of course, folks may get it twisted and think about open source as being about products, ignoring the richness that open source as an emergent enterprise discipline can bring. Maybe communities of practice will help bridge agile approaches with open approaches. Few folks know that open source is an agile method. This needs to be discussed more.
Large enterprises and their oversized software development organizations if they attempt communities of practice while eschewing centers of excellence may find that consistency of delivery may improve organically without a lot of effort or oversight. In large enterprises, there are multiple dimensions and the formal organizational structure typically reflects only one or two limiting what can truly be accomplished since no one really has a holistic view. Minimally, communities of practice can thus cover the dimensions that the formal organizational structures do not cover.
The theory behind communities of practice suggest that in addition to the team structure there should be multiple overlapping communities that transcend team boundaries for sharing knowledge and standardizing practices. I wonder if communities of practice is at the center of improving what us folks in corporate America know as governance...
Would love to hear from other enterprise architects who blog about their perspectives of communities of practice.
Links to this post: