Recent conversation I had with someone the other day:
Jack: Yes, but we can’t do it like that. The business does not work that way.
Me: Why does it not work that way?
Jack: It’s a fundamental aspect of the business. We can’t change that.
Me: And I accept that, but have you thought about why it is like that?
Jack: Well because it’s not viable.
Me: Why is it not viable ?
Jack: It would cause too much havoc.
Me: Why would it cause too much havoc?
Jack: Well because the software doesn’t allow it.
Reading this script, one would think that it is quite absurd, yet this situation is quite common.
Updating a legacy system
Jack in this case was a developer, that is working on re-designing an existing system. But Jack could be anyone. In fact, many times, Jack is a user of the system.
Users are many times accustomed to having software impose the way they do their job. They have to accommodate their process to that of the way the software they are using functions. What then happens is that they become used to this way of working to the point that they actually change their process, to work with the system, many times attempting to make their own life easier.
The problem is of course that these changes have an impact on the business. At times this influences productivity, at other times revenue, or even how dealing with customers is handled, ultimately jeopardizing the business or its potential.
When the time comes to develop a new system, what was considered an impediment has now become a fundamental pillar of how the business should work. As such, the user no longer thinks of how he/she would ideally want to do his/her job and have the software adapt to that, but lets his/her requirements be driven by technology.
Of course, all this become even more vicious when new users join the scene. They are not aware of the real reasons behind certain workings and assume that that is how it is meant to be, no questions asked.
Focus on the customer, not the software
It is very important for us to analyze the true needs of our users, to make them look beyond existing systems and offer them the possibility of describing how they would want to work if they had a blank sheet of paper and could start from scratch. If we have the opportunity to re-design an existing system, let’s make sure we base it on the users needs, not the existing software.
Upgrading existing systems is not about making them use the latest, greatest and most shiny technology.