Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Amr Elssamadisy on Sep 11, 2007 07:29 AM
Philippe Kruchten, in Voyage in the Agile Memeplex: in the world of agile development, context is key (html, pdf) reflected upon the culture of Agility. He used the concept of a meme, a replicating chunk of culture, to describe different Agile ideas/practices and suggested that the culture of Agility is a collection of memes – a memeplex. Kruchten claimed the Agility culture is very adept at spreading regardless of whether it helps an organization or not.The 50 or so memes that constitute the core of agility are interconnected and support each other, something that the creators of XP had noted and emphasized for their small subset of the agile memeplex. Agile teams (and agile user groups and consultancies) have proven to be an effective means of replicating, evolving, and spreading agility memes in the agile memeplex.Unfortunately, these Agile memes have been taken out of context. This means that many of these ideas have been taken to be universal – applicable in any context. This led to project failures and Agile adoption being harmful to organizations:
Sometimes we see an explicit dismissal of the context as not relevant, and the vehicle makes claims—explicitly or implicitly—of some form of universality of the idea. For example, a short meme such as “iteration must be three weeks long” is meaningless without an explicit context (what if my project is only three weeks long and has three people?). Other favorites are “no BUFD” (big upfront design) or “YAGNI” (you aren’t going to need it). They all had some value in a given context, but far too often have lost this context on their way through multiple replications. I have seen this attitude lead to massive agile project failures when some focus of software architecture, not producing anything immediately of value for end users, was systematically dismissed by the local agilistas until they hit a wall (i.e., a point beyond which they could not progress without some rather massive refactoring that would not fit inside a sprint or two).Kruchten called this form of Agile adoption – using Agile practices out of context – Agilitis. The cure for Agilitis is context and getting away from the belief that every practice and every idea is beneficial for every project. Are you and your team possibly suffering from Agilitis?
Agile Development: A Manager's Roadmap for Success
Ebook: Scaling Agile with C/ALM
Ensuring Code Quality in Multi-threaded Applications
The Agile Business Analyst: Skills and Techniques needed for Agile
I've heard "Good job, genius" a few times in my life. On the surface, that sounds like a very flattering comment. Unfortunately, it was always said in sarcasm :-( Context is key. Context is another way of saying "it depends." For instance, "Should I use technology A or B?" "It depends." My point is that any meme, agile or otherwise, when taken out of context is useless and potentially detrimental.
The real context is mentioned at the end of the article: Kruchten is the inventor of RUP, and as he says "some would claim RUP to be anti-agile". So at least "some" people know where he is coming from: the MDAMOFRUPUMLOMG memeplex of ir-Rational-ly over-priced IBM tools for BUFD and TDM (top-down management), even his '4+1 Architectural Views' model appears to have an overrun of 25% above the original estimate, and that's before any code is written. Mik
what is "context" now? meme? why don't you just say what you mean? If you say any ordinary word enough times it becomes meaningless...go ahead, try it with "context". Try it with "door": "door" "door" "door" "door"...how many times does it take? "iterate" "iterate" "iterate" "iterate"... "lunch" "lunch" "lunch" "we're late" "late" "late" "late" "behind schedule" "schedule" "schedule" "schedule" tanstaafl
I think there's both RUPitis and agilitis. The symptons are different but the causes the same: unsufficient understanding of the original propositions combined with talking-then-thinking.
Yeah, context is important, but best practices are also very useful when learning a new methodology/technology. To evaluate whether a rule is appropriate to your context, you must understand the reasoning behind the rule. The people who taught Agile mentioned the best practices, but they focused more on how Agile drives success through fostering increased transparency and visibility and the tracking of data. To me, the main point of Agile is to increase communication within the development team and increase communication between the development team and other project stakeholders. This is accomplished through principles like frequent short meetings (standups), frequent ritualized evaluation of work effort and project status (iterations/sprints/burndown charts/etc), and frequent priority checks with the business stakeholders (product owners prioritizing backlogs/focusing on producing tangible artifacts early). And I don't really think those concepts need a context.
You wrote:Agile drives success through fostering increased transparency and visibility and the tracking of data... And I don't really think those concepts need a context.
I beg to differ. From experience, I know how threatening this kind of shift can seem... and since what people perceive IS their reality, the more information (context) we can wrap around what we do, the better!
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
6 comments
Watch Thread Reply