Designing is easy, implementation is hard
Sri Lanka is facing a never before seen fuel crisis due to the nation’s foreign exchange crisis. While scrolling through my Twitter feed, I came across a tweet from someone suggesting why no one is creating a database to track fuel distribution, accoring by doing that fuel can be distributed equally among everyone, and prevent hoarding and black markets.
I see these kinds of suggestions all the time. Why can’t we create a database for the X problem? Why can’t we create an application to solve the Y problem? Most people who make these suggestions think that creating a database or application is the most difficult part of the process.
On the contrary, it may be one the easiest thing to do when solving this X or Y problem. With the tools and technologies available today, a talented group of people will be able to create the MVP within a week or less.
But the most challenging part comes after development when you have to implement the solution.
For example, let’s take the above fuel distribution problem.
We can create a database to store the vehicle information and the amount of fuel pumped and the date time is very simple. And if someone pumps an abnormal amount of fuel within a short period of time can trigger an alert at the fuel station, where the station can stop offering fuel for that vehicle.
Now creating a solution like this is simple. However, people who make these suggestions don’t consider the challanges one will face when implementing the solution once it is developed, for example,
- We have to train people working at fuel stations which will be north of 10,000.
- All the fuel stations should have devices and working internet connections.
- The deploying institute will have to pay the internet bills, provide new connections, and sometimes will even have to provide new smartphones.
- The people working at fuel stations need to continue using this and can’t abandon it within several weeks. Because this is extra work they have to do and they don’t get any benefit in return with our solution.
These are some of the problems in implementation that comes to my mind. But there are many more hurdles to cross before implementing a system to achieve the desired target.
So the point I’m making is superfically, it may look an easy problem to solve, or you might even question why there is no solution for the X problen. Not all problems can be solved just by launching an application or database, because there are many more invisible implementation challenges to overcome to successfuly solve a problem.
Even though the idea for an app seems so simple, there might be difficult implementation problems to overcome in the background.
If you are trying to build something, the easiest way to find out these implementation challenges is to talk to the people who are in the field where you are trying to solve the problem. Even though they don’t know how to create the app, they have the first hand experiences in challenges, and regulation issues that you will have to overcome.
If you are lucky, you might get to know about previous attempts by people like you who have tried to solve the problem and failed. So you can avoid these problems your predecessors faced, or stop pursuing the idea. By talking to the industry insiders you will get to see opportunities and perspectives that you’ve never seen before.
And if you are creating something, always research these implementation problems before you write your first line of code. And if you are one of those who suggest why there is no app for X and Y problem, always thnk about invisible obstacles and implmentation problems other than developing an app, and that might be the reason no one has created an app.
Member discussion