A common theme that you will see throughout Agile and Lean is this concept of customer value. The order that you do the work should reflect the highest value to the customer. This really isn't a new idea, I have known over the last 20 years that I need to produce something that the customer wants. However, the problem is that even though I knew that was the right thing to do, I didn't always think about my work in the shoes of the customer. As a developer, I remember thinking that if I put this cool new function in using some cool new technology that the customer would love it. I mean why wouldn't they, I thought. But many times I found that by not checking with the customer I wasted time implementing something they didn't really want or ask for. This resulted in either rework or leaving in functionality that was never or rarely used. Neither of those scenarios are good, because I could be spending my time on things that the customer really wants. If only I had asked them (or somebody that represented them)...
So, with Agile and Lean, this is one of the "prime directives" - to make sure that what you are doing has value to the customer. This is a good thing, a REALLY good thing. You need to have a customer representative always available to the team. Not just when they determine requirements, but through the whole process - design, testing, and especially demos of the working software as it is being developed iteratively. It's all about feedback and checkpoints along the way that you aren't wasting your time. In the end, it translates to functionality the customer will use more often. This translates obviously to happy customers, which translates to good word of mouth, which translates to more customers...well, you see the point.
But since we have adopted Agile (and looking at Lean), there has been a little problem with this. You see, we have over 2500 customers that are using our products. While it is good to know what they want in the product, EVERY customer may have different ideas of what is important to them. So, isn't this customer value? Shouldn't we be doing the things that matter to them? Of course, but there are too many things coming through the pipeline and it's difficult to know which customer request is more important than others. So, what have we done? We prioritize by the size of our customers. After all, they represent a larger percentage of our customer base right? While that's true, it doesn't give the little guy much of a chance to offer good ideas. And, those ideas might be the best thing for all other customers.
So, while sitting in the Lean class this week I realized that we are focusing on only a small part of value - Customers. What we need to focus on is Business Value. What is Business Value? Well, customer value is definitely part of the equation but it also looks at what is good for the overall business. Does this request support the majority of our customers? Does it support our long-term goals? Do we have the capacity (people, skills) to fulfill the request? Does it fit our business model? Does it align with where we are taking our products? Is it something that our company should do? I believe that if we ask those questions we will have a much better idea of how to prioritize requests as well as know which requests we should take on. How do we measure that? Return on Investment (ROI)!