Local Optimization and Software Development

Local optimization (as defined in Lean terms) refers to working on making an individual step in the process as efficient as possible.  This is as opposed to working on the overall process.  This is common when there are multiple groups involved in delivering a product or service (as is the case for most products and services) – each group focuses on making their part of the process as efficient as possible but nobody is looking at the overall process as it is seen from the customer’s perspective.  This was illustrated for me very clearly with a recent interaction with Comcast.

All I wanted to do was to acquire a Comcast card for my new Tivo box.  Doesn’t seem like too big of a challenge, but apparently the service had not been switched over properly from my old address – shouldn’t be a problem, right??  Well… here is how it went.  The customer service person couldn’t figure it out so I am transferred to a technician, spent 45 minutes on the phone – he figured out the internet but couldn’t get the cable.  So, he had to escalate to somebody else who was supposed to get back to me, but didn’t.  I call back – 49 minutes of holding, giving serial numbers, unplugging, etc… and it finally starts working.  Then it stops working again!  Another call – this one 37 minutes.  Later that night the cable starts working.  Now that the service is transferred and working, I can call back to get the Tivo card.  Sure we can get that added to your account.  Great, when can you get it to me?  I am sorry sir, we don’t send those out, you have to go to a service center to pick it up.  OK, where is the closest service center?  Turns out it is 22 miles away!  OK, fine… can you please check to see if they have one before I drive all the way there.  No, we cannot call them.  Are you serious?  Yes.  OK, can you give me a number to call them?  No, they don’t accept calls.  Arrrggghhh!!!!

Each group that I spoke with (customer support, sales, tech support, and the service center) all had their optimized processes for getting me off the phone or out the door as quickly as possible.  Everybody I dealt with was polite and told me that they were sorry for my inconvenience and were going to help.  The end result to me was close to 2 hours on the phone and another 2.5 hours driving to and from the service center and waiting in the line there!

If we are not looking at the problem from the perspective of the customer, we are missing the entire point.  A software development organization that uses separate product, business analyst, coding, testing, and deployment teams is likely to solve the customer’s problem just as effectively as Comcast solved mine.  Agile product teams that include every skill needed to solve the customer’s problem quickly and effectively is a great way to avoid the local optimization trap.