Everything Old is New Again
A lot of teams that I’ve worked on and with get hung up when thinking about defining requirements for “migration projects” and “system upgrades.” There’s some intangible barrier to being market focused when it comes to improving existing internal systems. Every new product represents a solution to an existing problem. Why do so many projects move forward with teams that are blind to the actual requirements?
Even “revolutionary” products like the iPod are just addressing existing market problems. Part of what makes this statement true is looking at things from a market perspective – thinking about the valuable problems that people are willing to pay to solve. Even if the iPod were the first mp3 player (it wasn’t), it would still only be an improvement. The first mp3 player was not new, it provided an improved way to listen to your music on the go. You could put your whole music library in your pocket. Much better than a stack of cassettes melting in the glove box of your car, or a tape getting caught on your keys and unraveled when you pull it out of your backpack.
What’s important, and difficult (especially for people with technology backgrounds), is to think about it in terms of what people are trying to accomplish – not how they are trying to accomplish it. In a business process view, it is the difference between process (why) and procedure (how).
There’s a continuum of migration projects, ranging from completely new to identical processes. Neither extreme technically exists – think of it as a range from infinite change in the existing process to 1 / (infinite change) in the existing process.
Near the “completely new process” /infinite change end of the spectrum are processes that are completely new to you. Remember, you’re solving a problem, perhaps in a very innovative way, that people are already solving some other way. You’re just providing a better solution approach.
Near the identical process end of the spectrum are projects are “pin-compatible” platform migrations and near-sighted legacy system migrations. Moving from an old gas-guzzling car to a new, more efficient model is a good example. I mention “near sighted” because that old system was designed to meet an old set of market needs, so the new system will, by definition, not meet current market needs – it will only meet the old market needs. Pragmatically, when considering organizational change, it may make sense to do your system upgrade in two stages: migrate the systems (“nearly identical process”) and deal with all the gotchas of migration first, then start re-engineering the processes and optimizing the procedures to address new market needs (major and minor process changes, respectively) second.
Set aside the possible, possibly rational rationale* to migrate the implementation first, and the functionality second. Consider that a deployment and logistics detail and get back to the problem at hand. Most of the times I’ve been involved in system migrations, they have been initiated as cost-savings platform projects. Over the last few years, more often the migration project gets prioritized as a means to an end – “doing new thing X is prohibitively expensive on the old system.” That opens the door to talking about goals.
* Couldn’t pass that one up.
On a recent project to migrate part of a company’s operations from one platform to another (system consolidation, after an acquisition), I created the following Ishikawa diagram to represent the goals for the migration project.
Even a “don’t change anything” project has real underlying goals. Once you discover them, you open the door to having conversations about making things better. Might be a “do it later” situation, but often, there is an opportunity to grab some of the low-hanging fruit during the system implementation.
The most important reason to capture the goals when “everyone already knows the goals” – aside from the fact that that is never true – is to make sure decisions are being made eyes-open.
Requirements live outside of the timeline of a particular project. Once you’ve identified those requirements (aka market needs / company strategy), the next question is to determine which of those goals this project is intended to support or advance. That question drives a lot of clarity into strategic thinking, and those answers drive a lot of clarity into project execution.
When you don’t share the context of the goals of the project, you are effectively blindfolding your team. You prevent them from discovering opportunities to make things better. You prevent them from making the right choice, when decisions are otherwise (without the context of goals) arbitrary.
For example, we talk about satisficing as a means to know when to ship – when it is “good enough.” Without context, the opinion of “good enough” comes from someone on the team, without guidance. In an agile environment, with self-directed teams, you’re making a trust-based decision to explicitly empower the team to make those decisions. Don’t you want to give them some information, to help them make that decision?
This article really only explores part of the process of making real, large, projects happen in large environments. That is a topic I’ll be talking about in a couple months. You won’t get a sense of sated accomplishment from reading just this article – too much of the end-to-end, start-to-finish of real projects is unaddressed.
You will, however, know how to start the project. Define the goals. Someone will tell you the goal is to “Copy what the old system did. We don’t have time to re-engineer. Why are you bothering me? Let me know if I need to find someone who can get the job done.”
Now you know how to respond.
Thanks foxtongue for the blindfolded typists photo