October 5, 2020
First job. #
In 2014 after getting my bachelor degree on accounting I started to look for the first job in my life. Fortunately I have found one very quickly. I started my career as a manager assistant in a small logistic company in China. One day I was given the task to find someone who could create a management system for our company to automate some business processes.
That time we had been using simple Excel spreadsheet synced trough the cloud. Such a kind of method to manage and share data was an error-prone approach since it often caused loss of data, different versions of the same file could emerge with no reason, occasionally synchronization might take a few minutes. At the end of the day using spreadsheet was very inconvenient and inefficient way of managing the data.
Furthermore, Excel spreadsheet is limited by its nature. Yes, you can connect it to SQL database, you can write VBA script. Yet you can’t customize its UI, you can’t run it on mobile. After all, it is just a spreadsheet, not an actual software.
Our manager had clear requirements, not from programmers point of view, but he knew how it should look like. We needed:
- Store all information about our shipments, customers and accounting.
- Mobile and PC client.
- Real-time synchronization.
- PDF/Excel reports.
- A nice UI.
- Customized business logic. For example, barcode printing and scanning, scheduled emails and notifications, event triggers, etc.
- Cheap and in short time!
Finding right solution #
We contacted a few workshops and individuals giving them our requirements, and in most cases answer was the same. Price was in range between 200k and 300k US dollars plus minimum 6 month of development. That price was unacceptable because we were a small company with staff of about 15-20 people. Although we could not find anybody who might provide suitable and cheap solution, I continued to search on Google for something such a “no code programmable database” because as you already know I didn’t have any experience or knowledge of coding except some concepts such as Java, Database, PHP, script. It took a few days before I found the tool, which 100% fited our requirements. It’s FileMaker.
Description for Wikipedia:
FileMaker is a cross-platform relational database application from Claris International, a subsidiary of Apple Inc. It integrates a database engine with a graphical user interface and security features, allowing users to modify the database by dragging new elements into layouts, screens, or forms
Introduction to FileMaker #
Before we go further I would like to say that FileMaker really is a good solution for automating some simple business processes in a small company. If you know programming, you should know that basically any web application nowadays consist of frontend (website, PC or mobile client), backend (server application) and database. Giving that concept I would say that Filemaker is a mix of all those parts running on one server and managed in a single UI. In addition, there are Windows, MacOS and iOS client applications ready for use. FileMaker has UI editor to create layouts, schema editor to mange your database schema and create relations between them, also script editor to write scripts in order to add some business logic and link the data with its representation. Also it has scheduler for running scripts or backs ups. No need to say it’s a robust piece of software, so a newbie like me didn’t have to bother himself with problems we face as developers like panics, data loss or ACID. It just works. Yet we still had been backing up all the data and print out some critical information on the daily basis. As my father says, ‘paper is real, it is touchable, bytes and bits are not’.
So, I downloaded the trial version, searched for some video tutorials and just in 4 months we got ‘v1.0’. Development process was funny and quite easy. All of the UI layouts were drawn in the way you do it in Xcode, scripts were written by dragging some commands and functions and adding variables to it. In fact, although I’ve been developing that system and achieving my goal, I still had no idea about those simple concepts such as functions and variables. I was like a little child, who knew the figure of what shape should fit that ‘hole’, but without any knowledge of the existence of geometry.
The first version’s functionality was enough to boost efficiency of some departments' work. For instance, in the past every time we receive any goods in our warehouse a worker was to take photos of the product, write down a required information into his textbook and then go back to computer adding that information into the Excel file. Simple calculations showed, that each time this process could take 5 to 10 minutes, depending on the amount of goods and their type. After implementing our new management system the whole procedure of ‘warehouse goods processing’ became much easier and took no more than 1 minute due to the access from mobile device.Nevertheless, all the information was synchronized between all clients in real time, which even lessened amount of phone calls and emails within our team.
Using FileMaker and creating my first solution for real business was the first step in my career of developer, although I didn’t write a single line of code (IMHO, scripting in FileMaker is not coding). Honestly, the system had some bugs, UI wasn’t the best, yet that simple piece of software solved the problem and it helped us a lot. Since then the system has evolved, extended by small services written in Go. Public API and web UI were developed later.
In the future posts I will talk about what kind of problems we have encountered, why my solution wasn’t scalable and how I actually started to code!