At the end of December 2008, I was invited to one of the taxi services of Perm in order to automate existing business processes. In general, I had three fundamental tasks:
At that time I did not understand how this market and its nuances are arranged, but nevertheless two things were obvious to me. Call center must be built on the basis of open source asterisk software PBX. Information exchange between the call center and the mobile application is essentially a client-server solution with all the relevant design patterns of the future project architecture and its programming.
After a preliminary assessment of the tasks, deadlines and costs of the project, coordinating all the necessary issues with the owner of the taxi service, in January 2009, I started to work.
Looking ahead I will say right away. The result was a scalable platform running on 60+ servers in 12 cities of Russia and 2 of Kazakhstan. The total profit of the company was 100+ million rubles / month.
Since at that time I didn’t have practical experience in ip telephony, and was familiar with asterisk superficially in the framework of “home” experiments, it was decided to start working with developing a mobile application and server part. Along the way, closing gaps in knowledge of other tasks.
If more or less everything was clear with the mobile application. At that time, it could only be written in java for simple push-button phones, then with writing a server serving mobile clients, the question was somewhat more complicated:
As well as many other issues related to design and development.
Before starting work on the project, I offered the business owner the following strategic decision: since the project is rather complicated, its implementation will take a significant amount of time, so first I create an MVP version that will take not so much time and money, but which will allow his company to gain a competitive advantage the market is already "here and now", and will also expand its capabilities as a taxi service. To me, in turn, such an intermediate solution will give time for more deliberately to design the final solution and time for technical experiments. At the same time, the implemented software solution will not be guaranteed to be correctly designed and possibly subsequently be radically redone or replaced, but it will definitely perform the minimum necessary functionality for “separation from competitors”. I liked the idea of ​​the taxi founder, so in the end they did.
The first two weeks I spent on studying the business processes in the company, and studying the work of a taxi "from the inside". Conducted a business analysis, where, what and how you can automate and whether it is necessary at all. What difficulties and problems faced by employees of the company. How to solve them. How is the working day organized by the employees of the company? What tools are used.
By the end of the third week after starting work and studying issues of interest on the Internet, taking into account the wishes of the business owner, as well as my own knowledge and capabilities at that time, it was decided to apply the following stack:
Another two weeks went to the design of the protocol and database. It turned out 12 packages that provide the exchange of all the necessary data between the mobile client and the server and about 20 tables in the database. I did this part of the work taking into account the future, even if it is necessary to completely change the technology stack, the package structure and the database should remain unchanged.
After the preparatory work it was possible to begin the practical implementation of the idea. In order to speed up the process a bit and free myself time for the remaining tasks, I made a draft version of the mobile application, sketched UI, partly UX and drew a programmer to a familiar java project. And he focused on the development of the server-side, design and testing.
By the end of the second month of work on MVP, the first version of the prototype server and client was ready.
By the end of the third month after the synthetic tests and field tests, fixing bugs, minor modifications of the protocol and the database, the application was ready for output to production. What was done.
From this moment begins the most interesting and the most difficult part of the work on the project.
In the process of switching drivers to new software, 24-hour duty was organized. Since not everyone could come during the day during working hours. By the same administrative, volitional decision of the founder of the company, it was organized in such a way that the taxi / manager manager entered them and they were not informed to the driver. For my part, technical support was needed in case of failures and unforeseen situations.
Murphy's Law tells us: "Everything that can go wrong will go wrong." And that’s not how it went ... It's one thing when I, and a few taxi drivers, tested the application on several dozen test orders. And it is quite another thing when 500+ drivers on the line work in real time on real orders of real people.
The architecture of the mobile application was simple and the bugs in it turned out to be noticeably less than in the server. Therefore, the main focus of work was on the server side. The most critical glitch in the application was the problem of disconnecting from the server when the Internet was lost on the phone and the session was re-restored. And the Internet disappeared quite often. Firstly, the Internet on the phone itself was not stable enough in those years. Secondly, there were a lot of blind zones where the Internet simply did not work. We identified this problem almost immediately and, within 24 hours, fixed and updated all previously installed applications.
On the server, there were mostly errors in the order distribution algorithm and incorrect processing of some requests from clients. In fact, identifying glitches, corrected and updated the server.
In fact, there were not so many technical problems at this stage. The difficulty was that for almost a month I was on duty at the office, only occasionally getting home. 4-5 times, I guess. And I slept in fragments, because at the time I worked on the project alone and no one could fix anything except me.
Month, this does not mean that everything is constantly buggy for a month and I, without ceasing something there kodil. We just decided. After all, the business has already worked and made a profit. And it is better to be safe and rest later than to lose customers and profits now. We all understood this perfectly, so the whole team together paid maximum attention and time to the introduction of new software into the taxi system. And taking into account the current traffic of orders, in a month we will definitely eliminate all the shortcomings. Well, hidden bugs that can remain will certainly not have a critical impact on the business process and, if necessary, they can be corrected in working order.
Here it should be noted the invaluable assistance from the directors and foremen of taxi services, who with the maximum understanding of the complexity of the situation of transferring drivers to new software, worked around the clock with drivers. In fact, after the completion of the installation of new programs on the phones, we did not lose a single driver. And it is not critical to increase the percentage of non-export of customers, which soon returned to normal levels.
This completed the first phase of the project. And it should be noted the result was not long in coming. By automating the distribution of orders to drivers without human intervention, the average waiting time for a taxi by a client was reduced by an order of magnitude, which naturally increased customer loyalty to the service. This led to an increase in the number of orders. The number of taxi drivers also increased. As a result, the number of successfully completed orders increased. And as a result - increased company profits. Of course, here I am running a little ahead, since this whole process was not instantaneous. To say that the leadership was enough - to say nothing. I was open to no limit in the further financing of the project.
To be continued..
Source: https://habr.com/ru/post/455405/
All Articles