I recently visited a Chinese factory to discuss about some of the issue they face and see how to make their system better.
I want to use one of the topic discussed has example of why identifying the extent of the issue, even when you have a solution in mind is important.
Here is how the discussion started :
We want the system driving the production moved to the cloud.
That was a straightforward ask that couldn't be clearer.
If you are given a solution, you need to understand the problem better. I would even go as far as you need to make sure there is actually an issue, if so, to what extent. Only then you can focus on the solution(s), which may be completely different from what you've been approached with.
Now, let dive into how I approached the discussion. Has it turned out, their solution is likely the worst thing they could do.
I really needed to understand why.
The problem:
The factory has some of its system online, in the cloud. The ones provided by 3rd parties like their CRM and some self-hosted on-site for things like Excel spreadsheets and custom developed software to manage the production.
While putting all the systems online can be a goal, I needed to understand "why?". Things are working fine as-is, so why that specific need? why now? and more importantly, why do they mention it to be "very urgent"?
That's the first thing I tried to understand better.
Here is the real problem when investigated.
The reason the system need to be put in the cloud is because the factory owner will spend more time abroad / out of China. He wants to make sure that he can do what he needs to do in a timely manner. The main concern being the reliability of the internet traffic between outside of China and inside of it.
The current on-site system can be accessed through remote desktop. That's the current set up when traveling.
My recommendation:
With a much better understanding of the problem, it became easy to do a much better assessment and come up with better alternatives than "put the system in the cloud".
Yes, that is a solution, but, in my opinion, the worst possible one : overall, everything works as expected now. Moving it all would bring its share of issues that don't seem worth it. Plus, the "urgent" timeline has to be taken into account. From start to finish, moving the system fully online could easily take more than a year to complete.
So, the first question to ask and answer here is : is it really a problem? and to what extent?
Having lived in China for several years, I have experience how difficult / bad things could be. But, with a very defined context, how bad is it really? Knowing that would be a determining factor into understanding what has to be done.
I identified 3 different directions that could be taken :
"Do nothing" is likely not good enough given the unreliability. It can work fine for a while and then stop suddenly. But if good enough, it means that it can be relied on to some extent and gives more time.
"All in the cloud" is definitely not the best way. It means rebuilding everything or almost. Identifying and recreate all integrations, possibly change how everything in the factory works, ... all that to solve a "simple" access issue. More importantly, the owner didn't mention a lot of use cases where he needs to access the system. Merely some approvals here and there.
The hybrid approach seems the best here. Keep everything as-is. The existing way, if reliable enough can be used. It may not be the fastest and may stop working sometimes, but for nothing urgent or time-sensitive, it may be enough. It gives everything there is now, without having to do anything. Then, the final step of that solution is to provide an alternate way "in the cloud" to perform the most important and time-sensitive tasks. Something that is also reliable enough and could provide a better experience at best, some redundancy at worst.
Conclusion
The technical details here are not important or relevant. The example as well. The main point is as always, focus on the problem and understand it with an open mind. There may be better solutions, more adapted to the context.
Yes, putting it all in the cloud is likely the best solution of all, and maybe ultimately that's what will happen. Just not here, not now, not to solve a problem of unreliable internet.
Approach the problem in its context. Find solutions accordingly.