When a Small Program Solved a Big Problem
Sometimes, solving a big problem in a software project does not require large or complex software. A small program can sometimes perform a task that would otherwise require a significant amount of time and human effort.
One of my experiences in this area began when someone contacted me about a work-related problem.
He explained that their organization had received a file in Excel format and needed to transfer the information from that file into another Excel file according to a specific format. The task had to be completed within a short period, and they had only five days to deliver the final file.
The problem was that performing the task manually was extremely time-consuming. Their estimate was that even with around 10 people assigned to the work, it would still take about 10 days, while the deadline was only five days.
I told him:
“Yes, there is a solution. I can write a program that performs this conversion automatically.”
There was no need to design a large software system. The problem was specific, and the solution could be simple and focused.
Developing the small program took about two days. Once it was ready, the files could be converted automatically, and processing a file took only about five minutes.
As a result, instead of spending days manually entering and converting information, they were able to complete the task in a very short time and deliver the required file on the third day.
But this was not limited to one company.
Because the program proved useful, around seven contracting companies were able to use the solution and complete their work much faster.
If each company would have needed 10 people and around 10 days to complete the task manually, a total of approximately 700 person-days of human effort would have been involved. A small program that took only two days to develop was able to automate a significant part of this work.
This was interesting to the other contractors and even to senior managers, and it helped demonstrate that solving some problems does not always require large and complex systems.
The Lesson This Experience Taught Me
This experience reminded me of a simple but important principle:
Before assigning a large amount of time and human effort to a problem, we should first ask whether it can be automated with a simple software solution.
Sometimes, a problem initially looks so large that we assume the only solution is to assign more people to it. But if we analyze the problem properly, we may discover that a significant part of the work can be automated.
In this experience, the goal was not to build a large product. The objective was simply to handle a repetitive and time-consuming task differently. Yet this small change produced a significant result for several companies.
Sometimes, the value of software is not determined by its size or complexity; it is determined by the problem it can solve.
Your Comment
If you have an experience or opinion about this article, I would be happy to hear it and share it with me and other readers.