Agile vs ALM vs Agile ALMAs the U.S Presidential Candidates "duke it out' and debate on how they will solve problems, which values they truly represent, and which will prevail, there are several similar debates happening right under our noses, right here in the Computer Software Industry!
Bottom line, every organization where there are people, you will have a culture with a distinct behavior (good or bad). When culture meets change and ideas, inevitably you will have a clash on your hands. How big that clash is, depends on the fundamental value structure your organization is built on and how much work it takes to get to the new state.
Agile Politics Ever heard this in any of your company's meetings or on your own software development team?
Steve Denning for Forbes, lists these and others in a series of common objections in his article "The Case Against Agile". The reason why no one can get a "handle" on agile is because it is a set of values. Set forth by the "Agile Manifesto". The ERC (Ethics Resource Center) states that " Whether writing a code or developing an ethics program, organizations need to identify and define a set of values that represent the ethical ideals of the organization." When we take a look at the manifesto, it become obvious as to why some of the values are hard to implement. I mean how do I value individuals and interactions over process and tools anyway? Aren't repeatable processes the very principal businesses are built on?
When we start talking about how to be agile, that's where the fireworks start flying! Some will argue if you don't have a c It's an extremely touchy subject, just like how to reduce the National Debt. In concept you think... Hmmmm Spend Less, Earn More - and it goes down? Alas, the political debate continues while it steadily increases. Many purists help organizations implement the fundamentals and culture of agile, while some include tooling to help adoption practices. There are an overwhelming number of vendors that support agile, to the point that features that support "techniques" are also clouding the agile realization efforts for many organizations. Do you have to have a tool to be agile?
Our ALM is Better!
OK....But can someone please tell me what it is?!?!?!
It is pretty safe to say that that any given application will take on change during its lifetime. Whether or not you own, build, customize, or just support it, there will be an element of change that will happen over the course of time to maintain its usability. Alas, something in the mix will change: albeit hardware or software (OS The latest Forrester Wave on Application Lifecycle Management by Tom Grant, issued just this past October (get copy here), states in his Key Takeaways very simply: "ALM is Going Through a Period of Redefinition and Innovation". It really couldn't have been said better! They are expanding the boundaries of what ALM means and shifting the value as a business competency whereby the process of software development becomes a critical business process. "The definition of ALM has stretched to include not just development but delivery" .
Carolyn Pampino of IBM puts it simply " ALM coordinates people, processes and tools in an integrated lifecycle of repeatable and predictable software development activities" in her Thought Leadership White Paper "Five Imperatives for Effective Application Lifecycle Management". Access the ALM Everywhere Kit at IBM here.
ALM assumes there is some degree of planning or project management, requirements, development, build, and testing activities happening in an organization or group and that those functions could improve holistically. As much as we've tried throughout history, software just can't be built in an assembly line fashion. There are too many factors that change, and the problems are unique to each project. ALM
ALM in theory seeks to reducing risk to an application given impending changes by connecting the dots across all the disciplines in the software lifecycle. ALM should be able to So can somebody please tell me the difference? The difference between Agile and ALM is that Agile is a set of values, and may have various methodologies to implement it into practice, while application lifecycle management pinpoints specific practices to apply process improvements that you can tangibly get results. Ultimately both want to see high quality working software. Put simply agile is the airplane view, while ALM looks at the process on the ground from the skyscraper. In other words, agile says you "should" value this, but doesn't tell you how to make that happen. Application Lifecycle Management will allow you to realize some of the same benefits in a more prescriptive way. So what is Agile ALM you ask? Again, put simply applying agile values to your ALM or software development lifecycle.
|