Thursday
Dec172009

EIR #15 - Get Agile: Applying the Lessons from Software Development to Business Process Design

Have you heard the news?  

"60% of all software development projects fail to meet their goals."  

Of course you've heard this.  EVERYONE has heard this nugget of wisdom.  It starts off presentations, it's used in consulting pitches, software integrators put it in their marketing materials, and IT departments promise it won't happen to them (or you).  Here's the problem:  it's probably wrong.  I believe that, in fact,  closer to 80% of enterprise software development projects fail to meet goals.  The key is — it is a specific type of software project that nearly always fails.  The type of development project that nearly always fails is the "old school" waterfall-type project.  The kind that starts out with requirements crafted in excruciating detail, progresses to multiple layers of sign-off, is developed in several phases — each with their own system, unit, and user acceptance testing — and eventually finishes with a final result that doesn't fit the needs of a business that has long since moved on.  Over the years I've seen software that was released that no longer fits an evolved business model, software that missed huge, key requirements, and software that was released just in time for an acquisition that changed the entire business environment.

Whew.  I'm frustrated just thinking about it.  Luckily, the software development industry (mostly) figured out that this was a problem quite while ago.  Most successful projects today — especially externally facing consumer projects — follow a very different trajectory than the development projects of ten or even five years ago, emphasizing tighter contact with the customer, faster development cycles, and the testing of smaller chunks of code.

So what does this have to do with business process design?  

Unfortunately, many business process redesign efforts make those old-school enterprise software projects look like Olympic champions by comparison.  Unlike their software development counterparts, most practitioners of "process redesign" have not been so eager to bring their methods into the 21st century.  In fact, while software design is largely light-years beyond where it was in the early 1990s, process design — for the most part — has changed very little.  The practices learned many years ago a largely still followed:

  1. Document the old process in mind-numbing detail (about two weeks' worth of time)
  2. Identify the issues in the old process (a week here)
  3. Design phases for a new process (another week)
  4. Design the details for the new process (easily four weeks)
  5. Implement the whole thing as one giant project (I don't even want to guess...)
  6. Hope it works (and that the design is still relevant after so much time has passed)

And surprise, like the outmoded techniques for software design, the process design projects conducted in this manner also have an extremely high "failed to achieve results" rate — even worse than for IT projects in my experience.  I speak from experience — this is exactly the way we used to perform process redesign work in the past.  Redesigning a process using this "technique" was tedious and frustrating, both for us and for our clients.  And, it was tough to achieve the desired result.

But it doesn't have to be this way. 

Process redesign projects don't have to be lumbering, slow, painful exercises that rarely succeed in achieving their goals.  By learning the hard-won lessons of software developers, you can dramatically increase your chances for success in your process redesign project.  

When software development moved past traditional waterfall-style development, a new way of thinking emerged called "Agile Development."  Agile development stresses speed over perfection, rapid development of small bits of functionality, and testing of all deployed code.  How can this be used for business process improvement?  Here are three of the main "agile" concepts and how you can use them to improve processes more rapidly and with a much higher success rate:

Lesson #1:  Minimum Viable Process (MVP)

One of my favorite phrases is "the perfect is the enemy of the good," and nowhere is this more true in the design of business processes.  In the past, businesses undergoing process redesign — whether they called it TQM, BPR, or Six Sigma — all made a similar mistake.  They took far too long to develop the process, hoping for a "perfect" final design that met all objectives and avoided all constraints.  As someone who has fallen prey to this seductive path myself, I can tell you with 100% certainty that there is no "perfect process" waiting around the corner, there is no "magic bullet," there is no single "correct solution."  The process that is actually deployed and is actually in use is almost always better than that "perfect" process that exists only on a Visio diagram hanging on the wall.  Business needs and goals change so quickly these days that you simply cannot afford to spend months designing the ultimate business process.  By taking an extended period of time to develop our business processes, we risk a final product that was "perfect" for the situation that existed several months ago — but useless in today's environment. 

So how do we reconcile the need to improve processes with the need to move quickly and get something that improves the situation up and running?  One solution is called the "minimum viable process" or MVP.  The concept is simple: design the simplest, most basic process that will get the job done and iterate from there.  Ok...  So what does THAT mean?  It means that you dispose of just about everything that isn't directly related to delivering the output of the process until you can prove that without the pieces that are left, the process simply cannot function.  It means that you design the process without the multiple re-work, validation, approval, and wait state loops that dominate most processes today.  Treat each process checkpoint or approval state as a design failure — a process step that exists only because the process itself is inherently flawed in even needing a checkpoint — and try to design that step away.  Obviously you won't be able to eliminate every single check & balance step in your process, but minimize them and see what happens.  The key with the MVP design is that you need to get a new process out, up, and running as quickly as possible to test its performance in the real world.  Those super-complex, "perfect" processes will need to reach the real-world stage at some point — wouldn't you rather have spent two-thirds less time in process design when you find out that your process has major flaws that must be corrected?  Use the MVP as your initial test platform to challenge your assumptions and ideas about the new way of doing work.  Then, use the next concept — Continuous Deployment — to make the process better fit the goals of the business.

Lesson #2:  Continuous Development & Deployment

ANY process that you design — whether you spend days, weeks, or months building it — will have problems.  You can count on it.  I've designed and implemented many new processes over the past 15 or so years, and I have yet to see a single process that, once "in the wild," didn't have to change to some degree.  With this being the situation, the key to a successful process design implementation is the pace at which you are able to effectively change the process design in response to the issues that you identify.  Often, organizations take an "implement once and forget it" approach and unfortunately this results in an overall poor redesign result (part of that 60%).  You have to find the process flaws and fix them quickly.

So how do you remedy this situation, recognize issues with processes and make changes that will better meet the design goals?  The best practice for this is called "continuous deployment" and has grown in popularity in the software development community over the past few years. Here's how it works in the software world: 

  1. you work closely with the "customer" to understand and build the software
  2. you release the software in little "chunks" of functionality
  3. you observe and fix
  4. you release again  

 This all happens very quickly. In fact, one of the leading advocates of continuous deployment, Eric Ries, talks about how his company would deploy commercial software to the customer base multiple times per day.  He stated that if each engineer didn't deploy at least every few days, it meant that something was wrong.  You can make the same continuous development & deployment principle work for you when redesigning business processes.  Adopt the philosophy that every day during the design cycle, something, anything, must be "shipped."  It could be a new form for ordering, a prototype of an online database for tracking customer data, or a change to your CRM tool.  The key is that you release constantly and learn from what happens.  Think small frequent changes, not big delayed changes.

By now you might be thinking "Wait — we can't do that.   What if we get it wrong?  We need to perform testing/cost-benefit-analysis/executive review/financial review/legal approval/(insert committee here) review before we do anything.  We could hurt the business."  I don't believe that for a second.  The potential for having a small "release" of a business process change — one that you monitor very closely to observe the results — damaging the business irreparably before you see the problem and release a process fix is very low.  In fact, I would argue that these small process releases are much easier to monitor and problems are far easier to detect that when you perform one massive release at the end of a process redesign.  World-leading design firm IDEO calls the concept of converting risk into smaller, manageable pieces "risk chunking" and uses it to ensure that their new product designs aren't an "all or nothing" proposition.  You want to see risky?  Forklift in a massive process implementation after eight or ten weeks of design work and try to identify the issues (or benefits) that are associated with what you just did. Now THAT'S risky!

Of course, if you release a new process or a process change and then ignore it and move on to the next challenge, you've missed the point.  When performing continuous deployment of process, you must monitor the results.  Did it work?  Did it cause unintended consequences?  The way to tell is through another software technique called "A/B testing."

Lesson #3:  A/B Process Testing

You've created the smallest, leanest process possible, you've implemented it using continuous techniques, now what?  Now you need to test the results.  Often, process implementations are treated almost like a bullet to the head — one shot and it's over.  The software world has taught us nothing if not the need for constant review of the effectiveness of each "release."  Imagine software that was released, had bugs, and was never reviewed or fixed.  How likely would you be to call that software a success or to recommend it to a friend or colleague?  In the software world of agile development, a technique called "A/B testing" or "split testing" is used to determine the implications of a recent release.  

Here's how A/B testing works:  you are doing continuous, small deployments so each piece of functionality is relatively easy to understand in terms of its implication to the users.  When you deploy this small functionality change (the "A" functionality), you deploy it to a sub-set of the users and compare to the users who are still using the old functionality (the "B" functionality).  Think of it like a small, rapid beta test.  This can have huge, beneficial implications for software — think of what would happen if you deployed a new "Buy Now" button to a website but accidentally colored the button the same as the page background.  You now have, as Eric Ries says, "a hobby, not a business model."  Obviously, you would prefer to detect an issue such as this sooner, rater than later.  

Use the A/B testing concept for your business process changes.  Instead of deploying a changed form, website, or process to the entire set of "users," deploy to a smaller set of test users and compare the differences.  Did the new process perform the way you expected?  If so, deploy the change to the rest of the process users.  If not, go back, re-develop that part of the process and re-deploy.  Continuous development and A/B testing are a tightly linked loop of design, development, deployment, testing, and re-development.  Just remember that A/B testing without continuous deployment means that mistakes will be out in the wild much longer than they should and continuous deployment without A/B testing means that issues may go unnoticed for far too long.

 

We need to break out of that old cycle of developing monolithic processes only to have them fail to produce the results we anticipated.  In an environment where every dollar counts more than ever, we just cannot afford a 60% plus failure rate in process redesign.  It not only costs us time and money, but also credibility with employees.  Use the lessons from software development and build lean, minimum viable processes, deploy them quickly and continuously, and test the results against the old process.  Everything you implement won't be a success, but when a mistake does occur, you will find it quickly and be able to rapidly make the changes necessary to succeed when you implement the next time around.

Wednesday
Jun172009

EIR #14 - Outperform: Using a Bad Economy as a Killer Competitive Advantage

Today the news came out that the unemployment rate in the United States reached a 26 year high. Given the bad economic news that we hear nearly every day, it's not surprising that people — and companies — are in a bit of a panic. Nearly every company that I know of is considering layoffs, killing major projects, reorganizing (read: eliminating lines of business), or just plain ceasing operations. Why? Because that's what you do in the face of such a terrifyingly bad economic downturn, right?

Wrong. At least, not if you want to exit the downturn performing better than your competition...

If you look back over time at the great companies such as Google, Microsoft, Johnson & Johnson and many others, they all have one striking characteristic in common. They all started during significant economic downturns. Crazy, huh? Who would ever want to start a business during such a risky, scary time? Someone who sees that every great challenge is also a huge opportunity to solve major problems, to serve undeserved markets, and to create enormous advantages over the competition. Those companies used an economic downturn as a competitive advantage to implement new technologies, tools, and idea while the incumbents were focused solely on survival.

Now is the time — while most companies have shifted into "panic mode" — to think about using the current economic situation as an enormous, once-in-a-lifetime chance to create a killer competitive advantage.

Here are three tips to get you started...

KILLER TIP #1: Hire your competition's best people

What? Wait a second, you're thinking of laying people off, not hiring people. Okay, maybe you need to reduce your workforce, but it's a mistake to do it wholesale and without thinking about the future. If you are laying people off, chance are, so is your competition. And the people they AREN'T laying off are still scared that they are next. It's the perfect time to poach the best and the brightest from your competition. Here's what you do: if you need to perform layoffs — fine. Target those individuals who:

  • are not fitting in to your culture
  • are not performing as they need to be
  • ARE NOT THE PEOPLE WHO WILL PROGRESS YOU TOWARD YOUR GOALS.

The third bullet is the real kicker. In a reduced workforce situation, you need to have people who will be the leaders that carry the company into the future once the economy picks up. Not the lowest paid people. Not (necessarily) the ones who have been there the longest. But the best, brightest, and most energetic people who see your vision for the future and can start getting you there today. Look around at the companies that are driving you nuts on a regular basis. Find out who is driving the best product strategy, the best marketing plan, the best sales team. Go hire those people away from your competitor. These people will be the "Pathfinders" that will lead you past the competition and prepare you to dominate once a recovery has taken hold. If you have to layoff additional low performers in order to be able to hire these Pathfinders, do it. This may be the only time when you can get such people without breaking the bank.

KILLER TIP #2: Move to the Cloud

By now you've probably heard of "the cloud." If not, "the cloud" or "cloud computing" simply means that instead of buying (and maintaining) expensive servers, rack space, power, etc — you outsource this infrastructure and get on with your core business instead. Why do this? Because too many companies have enormous IT development or operational support groups focused on providing 24x7 care and feeding of mission critical servers, installation of applications, and other infrastructure maintenance. Is that really your core business? Why, in an environment where every single dollar counts, do you have people dedicated to patching desktop software, designing security models for your intranet systems, and maintaining servers? You'd be better off putting your dollars to work hiring those Pathfinders...

For example, several years ago, I worked at a company where we had a great idea for a new software product. This was before (or at the very beginning of) the "cloud-revolution" so we just used traditional methods for our development. We bought servers, we spent months on the security model, how to issue passwords, how to control access to parts of the application, how to deploy the system to end users, and how to do routine things like backing-up our data. Over the course of a year, we spent nearly $1 million and still didn't have a marketable product. Worse still, the system was so expensive to build, maintain, and deploy that we had to charge "per user" fees that were far too high for the market to bear. As you might expect, that business is now sleeping with the fishes.

Flash forward a few years. I still wanted to build the software. I thought it was a great idea with a great deal of merit and would be worth developing — but not the same way as we did before. I had absolutely no desire to build and maintain the underlying infrastructure. Instead, we used one of the cloud-based "Platform as a Service" systems on the market. This meant that we didn't have to buy any servers, we didn't have to develop a log-in mechanism, we didn't have to design back-up plans — that was all included in the service. We could focus all our efforts on the problem at hand —building the features we wanted to offer instead of worrying about infrastructure. Think of this as traveling from New York to D.C. by car. Do you really want to build the roads, gas stations, and restrooms it will take to get you there? Why not use the facilities that already exist for your convenience? This is what we did with our software and it made a huge difference. Instead of a team of 10, we had a team of — well, me. Instead of a year, it took us (me) three months to build (with more features, thank you very much). Instead of $1 million to build it, it cost a few thousand dollars. We can operate the software for no fixed costs and offer it to users at a very attractive price (and still make a profit). The software is now on the market, is very easy for us to deploy and maintain, and gets great reviews from users (self-promotion alert: it's called NextWave360and we think it's pretty great). If we had tried this WITHOUT using the cloud, we'd probably be answering debt collection calls while building a log-in screen right now...

There are two main ways you can use the cloud to your advantage to save costs: use it internally and use it externally.

Cloud Tip 1: Use the cloud for your internal applications

Between Google, Zoho, Salesforce.com, and the myriad of other cloud-based applications (see EIR #13 here), it's hard to justify putting a standalone copy of a software package on each person's desktop. It's expensive, it gets obsolete quickly, and it's hard to maintain (ever had to reload MS Office?). We switched to GMail for our mail system — free and we still use our same domain namebut we get far more space than we did before.  There's really nothing to "maintain" and we save $50/user.  We use EchoSign for document/contract management, Freshbooks for cloud-based bookkeeping, and our own cloud-based project tool for project management.  We don't even own a web server.

Cloud Tip 2: Use the cloud to develop external applications

As in our software development example above, consider using one of the cloud-based "platform as a service" (referred to as "PaaS") systems to develop any applications that you offer to your customers, either internal or external.  I know, I know...  Your IT guy told you how it wasn't safe, it wouldn't be cost-effective it the long-run, it caused hurricanes, and you couldn't make the interface the proper shade of green (pantone 361).  Sorry, I'm officially calling him out on that.  As long as you pick a PaaS provider that is trustworthy, uses a good data center, does back-ups, and either is stable or escrows the code, you are no more at risk than you are developing on your own servers.  In fact, I would argue that the speed to market, the ease of deployment, the ease of maintenance, and the ability to change the code on a dime if necessary far outweighs the arguments made by the IT traditionalists.  This is the way software will be developed in the future — get out ahead of the curve and save some time and money while you are doing it.  I recommend taking a look at TeamDesk, Cordys Process Factory, and Force.com.

KILLER TIP #3: Blow Up Your Processes

Admit it.  You have been performing your business processes much the same way for a long time now.  Maybe you did some "process improvement" and changed the way you executed a couple of steps last year.  How'd that work out?  I'm guessing it didn't make much of a difference.  Now, in the middle of the economic chaos, is the time to change all that.  

You need to seriously think about "blowing up" your processes.  Before you start surfing the web for demolition supply stores, allow me to explain.  When you are trying to gain efficiencies, reduce costs, and improve service, it can very difficult to make progress through evolutionary or incremental techniques such as traditional process improvement.  Often, all the process "plaque" that has built up over the years gets in the way of making rapid significant improvement — "that's not the way we've always done it" becomes the rallying cry.  If you want to exit the economic downturn better positioned than your competition to take advantage of new opportunities, you cannot afford to either ignore your processes or simple incrementally tweak performance. You need to challenge the way you do everything.

There is a story about a technology CEO who was faced with a stagnating company where costs were too high and effectiveness of their network was too low.  Little progress had been made and something had to be done — the system couldn't continue to operate the way it had in the past and survive.  The CEO met with the team one day and said "I have news to report. The network is gone."  The team looked confused and he further explained, "Go look and see — it's gone. Now figure out what we do.  Rebuild it."

A bit abrupt, but effective.  He essentially had removed the option of minor improvements instead challenging the team to design a solution from the ground up.  Think about what this would mean if you did the same thing with your billing process, your A/P process, your service delivery process.  Think about what it would look like if you were a new start-up business designing the process from the ground up.  Of course, you are likely thinking "we can't do that — it's too expensive.  Now is the time to stick with what we have, not go changing things."  If you want to exit the recession with the same old processes with which you entered, full of plaque, partially effective, then that's the right attitude.  But what if, while your competitors are using the strategy of retrenchment (and as a process consultant, I can tell you — they are...), YOU choose to get really efficient and effective with your processes.  While the economic rising tide may lift all ships, you've lightened and streamlined your ship during the low tide.  It may be counterintuitive, but it is an effective strategy for using slow times to not only reduce inefficient practices now, but also to prepare for the future before your competition.  Fix it now, reap the benefits down the road.


There you have it: three Killer Tips to help you view the economic downturn as a tool, not just as a calamity.  As Warren Buffet is famous for saying, when everyone else is scared, that's when you need to be aggressively investing.  The same holds true for performance improvement.  Everyone out there is scared, struggling, fighting to survive.  By snatching up the best people, using the new technologies available, and by revolutionizing your processes today during this climate, you will be well prepared to outperform your competition in the future.