The Hard Reality…

Written by Mike Cottmeyer Friday, 7 August 2009 12:56

We all want to be really good at what we do… we strive to get better… we want to think that we are making a contribution to the success of our organizations… we want to think that we are adding value. The hard reality… and one we NEED to really come to grips with… is that sometimes we are doing great work… sometimes even building great working software… that has NO market value.

If our activities don’t result in marketable, sellable software… we are wasting time and we are wasting money.

We might justify this to ourselves by saying that we can only control within our circle of influence… that we have to be the best we can be within the areas we can control. Maybe… but if you get really good at creating design documents for projects that get killed… it is still waste. If I build features for a system that never gets sold to a customer… it is still waste. If I build services for a component that never gets consumed by the application… it is still waste.

Anything you document… or code… or test… or even deploy… that doesn’t get sold to a customer is ultimately waste. It doesn’t matter how good… or how fast… or at what velocity you do your work… unless it sells… you have wasted time and money building it. And that… to me… is what makes Lean such an interesting topic right now…

Scrum really brought home some powerful ideas… revolutionary ideas that have changed how we think about product development. We’ve learned the value of building organizations around teams and the value of self-organization. We’ve learned to give the business the power decide what and empowered the team to decide how. Scrum helped us learn that real improvement comes from keeping everything visible and removing the impediments that are really slowing our teams down.

Lean brings a relentless focus on value… not just valuable software… but real delivered value to our customers. Lean expands the concept of value beyond just the product delivery organization… it recognizes that the enterprise value stream often includes other parts of IT… and other parts of the business. Lean gives us language and principles to really scale agile out to the enterprise.

Individual performance doesn’t matter… team performance doesn’t matter… until we can figure out how to bring it all together into something we can actually sell.


7 Comments

  1. Anonymous   |  Monday, 10 August 2009 at 4:58 pm

    well, this is just a another one-side view of reality.

    Software/Service we produce is a total crap, but hey … if it sells then everything else (quality of code, performace, time to market, …) does not matter, right?

    What we all really need is normal balanced view of reality, not this one above.

    Sorry for tone used.

    thanks,
    Peter.

  2. Mike Cottmeyer   |  Monday, 10 August 2009 at 5:06 pm

    Hi Peter,

    Who said you have to deliver crap? I am not saying you have to deliver crap. All I am saying is that you can build the best widget out there… but if it doesn't sell… it has no value. In my opinion… that is inarguable.

    There are LOTS of teams that are building software… thinking they are doing great work… have great team culture… defect free code… terrific velocity… that are wasting time and money.

    Selling software is a prerequisite for being able to be paid for building software.

    Mike

  3. Dennis Stevens   |  Monday, 10 August 2009 at 10:06 pm

    Mike,

    This is exactly right. Focus on Customer Value. Sometimes that means something is done good enough. Sometimes that means we don't deploy every feature anyone might ever want.

    I understand that many developer's want to promote an artisan approach to development. But if you aren't making money, you won't be in business for long.

    On the other hand, it requires some maturity on the part of the development team to know how to build high quality code that is aligned with the needs of the customer. I was brought onto a project that was key to the clients survival. The big delay turned out to be a highly configurable transformation engine that was being built by a recent MIT grad. It was a phenomenal piece of code – very testable, highly performant, configurable on load. All of this built because a recent MIT grad thought it was interesting, not because it was needed by the clients customers.

    I don't think you are promoting the development of bad code. I think you are asking the development team to perform in a responsible fashion with the resources of the business that pays them. That means maintaining a high ratio of value created of all the work they do.

  4. Marty Duncan   |  Tuesday, 11 August 2009 at 1:12 pm

    This is too sophomoric.

    Take it a step further: since I get paid for writing the code, it doesn't matter if someone bought it from my company, only that my paycheck came in.

    Or, take it a step back: since in 2 years the customer will dump my company's product for a competitor's, there is no value in what I do today.

    There are a host of reasons we do what we do; you and I simply disagree on what makes us worth the room we take up on earth.

  5. Mike Cottmeyer   |  Tuesday, 11 August 2009 at 1:53 pm

    Hey Marty,

    I wasn't talking about your paycheck… but your paycheck is contingent upon your company making money. If your software has no market value… you won't get paid for long.

    If you don't continue to innovate and provide ongoing value to your customers… they will leave… and your company will be unable to professionally develop software in the future.

    It is possible to add value today and then stop adding value tomorrow. Your future value doesn't negate your present value. And remember… we are not talking about your self-worth… we are not talking about the intrinsic value of the problem you solved… or the inherent value of a hard days work.

    We are talking about the ability to sustain a profitable business. Software craftsmanship is great… it is a worthy goal… but someone has to be willing to pay for it.

    If you aren't getting paid to write software… it is a hobby. My hobby is playing guitar… I don't expect anyone to pay me to do it.

    Mike

  6. Richard A   |  Wednesday, 12 August 2009 at 9:20 pm

    I write line of business software that will never be sold, directly, to the customer, but that arguably does provide value that reaches the customer downstream.

    My instinct is *not* to take you literally when you say:
    "If our activities don't result in marketable, sellable software… we are wasting time and we are wasting money"

    Did you mean that literally?

  7. Mike Cottmeyer   |  Thursday, 13 August 2009 at 12:17 am

    Richard,

    I would guess that your internal customer is either directly or indirectly paying for the software you create. I have worked with many IT orgs building software that got outsourced because they couldn't deliver.

    Make sense? Disagree?

    Mike

Leave a Comment