Rants
Questions
Soapbox
Best Practices
Apply today for a FREE subscription to CIO Magazine!
Wed, Nov 18, 2009 15:45 EST
|
Posted by: Leonardo Mattiazzi in Best Practices Topic: IT Organization Management
Current Rating: |
In previous posts on this blog, I’ve looked at ways in which Agile methodologies for application development address many of the principles also addressed in Lean thinking, such as flow, pull and the elimination of waste.
However, what Agile does not address is the first principle of Lean: the definition of value in the eye of the customer. Generally speaking, “software running” is typically the defined value in any application development engagement, and Agile is all about getting software running. But the question this fails to address is just what software is actually running, and the answer – and the real value – is in having the right software delivered and running, something that can only be achieved by applying Lean thinking. Although it may sound simple, getting this proposition right may not be so straightforward. In other words, the old saying “garbage in, garbage out” holds true even when it comes to Agile methodology.
Does this mean that we need to go back to the “requirements” phase of traditional methodologies, before starting the project implementation under Agile precepts? Of course not. This would entail a significant step backwards, as well as a knockout on flow and pull, and it would generate considerable waste that Agile development aims to eliminate. Requirements are discussed in Agile projects as user stories, or items on the product backlog, as part of the flow, in a much more interactive (and rich) way than the boring “requirements analysis” we were used to.
What’s necessary is for the team to know the ultimate purpose of the project, and understand in the customer’s terms the definition of the ultimate value – i.e. the intent of the application. How does it fit in the business strategy? What are the business goals that will be achieved by means of this new application (and everything else surrounding it, since it’s never only the app)?
It sounds obvious, and maybe that’s why people are so often mislead as to be satisfied with far-too-simplistic answers to these questions. The key is to not take the goal as a given, but to truly question the definition of value in each individual project. This includes better understanding the business goals and metrics for success, and why it is believed that the software will help to achieve them. Imbued with that spirit, the Agile team can deliver far greater and more measurable results. The team can truly serve as a partner to the business stakeholder in the client organization, and bring considerably more to the table than just the technical ability to transform user stories into code in an efficient way. And only with this perspective in mind can the agile team contribute in an strategic way, helping the business to prioritize user stories according to the value delivered.
In a future post, I’ll consider how additional developmental approaches can help in defining where the real value in a given project lies, and how this can successfully be reached.
Leonardo Mattiazzi, VP International Business for Ci&T
Hi Leonardo,
When you say, "what Agile does not address is the first principle of Lean: the definition of value in the eye of the customer" this is not altogether true. In Scrum (an Agile framework) the role of Product Owner is responsible for choosing the features that the team will work on, and prioritizing them based on business value, and therefore what the customer (be it an external or internal one) sees as valuable. Before each iteration or sprint, the Product Owner re-prioritizes the features to be developed, based on the current business environment. In addition, requirements are written as user stories, which follow this format:
As a [role]
I can [do something]
In order to [get some value]
Writing requirements in this fashion ensures that the team understands what is being developed, for whom, and what value they will get.
So I would say that Agile directly addresses customer value, and ensures that it is first and foremost in the mind of the team.
Hi Robert.
You're totally right in everything you say. So, let me be clearer... I'm not referring to the prioritization of user stories during the life-cycle of a project, which is addressed in Agile methodologies in an effective way (more or less effective depending on which prioritization technique you use and who is the product owner). But if all user stories, collectively, are not what delivers the most value to the customer for the money invested, Agile methodologies will not resolve the issue. They will just help you deliver the wrong thing, fast and effectively (so you may even have the illusion that you're being successful). In other words: if the project was the wrong one to begin with, you will just be generating waste, no matter how good your agile team is. Not to blame the Agile team, but from an executive perspective, that's just garbage - an it's not lean at all. So, we have step back a little bit, and analyze how we select IT investments. My point is that Agile alone is not sufficient for lean application development (although it's certainly a necessary condition). I plan to launch this discussion soon, and I hope you're following to make it more live and interesting!
Hi Leonardo,
First, there is no such thing as "Agile". There are agile methodologies, such as Scrum, XP and Crystal. So it would be helpful if there was a specific methodology to which you were referring to.
But, assuming you are painting with a broad brush, let's look at the core of any agile methodology, the Agile Manifesto (at agilemanifesto.org). It clearly states:
Customer Collaboration over Contract Negotiation
Further, if we dig into the principles behind the values (http://agilemanifesto.org/principles.html) the first principle is:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
A customer who sees value is a satisfied customer. Now, where this value comes in to play depends on the methodology:
Scrum: The goal of the Scrum team is to deliver the next highest value items the Product Owner has chosen. The team generally does not have say into the prioritization (outside of estimation, task breakout and suggestions for technical stories).
XP: In the Extreme Programming methodology, one of the practices is "Onsite Customer". This customer is working with the team to help define the value add, and "Customer Tests" ensure that they are delivering what the customer expects.
That's not to say that the principles of Lean don't apply. They do. In fact, I see many teams that have a genuine local optima issue where they focus on their bottlenecks instead of the organizational-wide blocks. I blame that on a corporate culture of dysfunction - Ostrich Executives.
But to say that agile methods don't address customer value - that's flat out wrong and I hope this article and future ones can be updated to show a specific methodology which calls itself "agile" but ignores customer satisfaction as the number one principle.
Hi Cory. Thanks for your clarification on the several Agile methodologies, I'm sure readers will find it very useful. But please take a look at my response to Robert's comment above. Please don't take my words as a criticism to Agile methodologies (yes, I'm using a "broad brush"); I'm, in fact, a big proponent of them (if you're curious, in our company we have been using Scrum for 4 years now). What I am saying is that Agile methodologies (pick your own choice) are not the complete answer to lean application development. Once in the product backlog, there's little you can do if those user stories are not the best choice for delivering the most value to the customer. And, just another point I'd like to make, to really apply lean principles, we need to extend the definition of customer. If we limit our definition of "customer" to the PO, or project sponsors, we will be limited on how much value we can deliver. We need to go to our customer's customer, and if necessary another step down the road to reach their customers, all the way until we reach the final person who is getting the real value of the application. Only them we will understand the strategy behind the application. That's what I meant by "understanding the business goals and metrics for success". As I mentioned on the previous comment, I plan to start a discussion about this soon - hope you can contribute with your thoughts!
Leonardo,
IT's "main" focus is on the tactical. While I admit they should at higher levels be involved in the strategic, most of IT's value add is in the tactical implementation of strategic business decisions.
I want someone whose job it is to study customers and business strategy to make the higher level project go/no go decisions and assign Business Priority to User Stories, granted with "some input from IT" (more in some industries than others). By the time a project reaches the IT Team is should have been vetted and prioritized by the business. I think it's more the definition of "some input from IT" which is the main thrust of your article.
You want the IT Team collaborating on and efficiently developing "valuable software" not defining what is "valuable software" to the business or the customer. Yes, they need to "see the whole", etc., but this doesn't mean it's a significant focus of their job.