小型计划如何将小型办公室变成联邦公司,每月获利100+百万卢布

在2008年12月,我被邀请参加Perm出租车服务之一,以使现有业务流程自动化。 通常,摆在我面前的是三个基本任务:


  • 为呼叫中心开发软件包,并为出租车司机提供移动应用程序,并使内部业务流程自动化。
  • 一切都必须尽快完成。
  • 要拥有自己的软件,而不是从第三方开发者那里购买,可以在将来随着业务发展而独立开发软件,以适应不断变化的市场环境。

当时,我还不了解这个市场的结构和细微差别,但对我来说有两点很明显。 呼叫中心必须建立在开源星号软件交换的基础上。 呼叫中心和移动应用程序之间的信息交换本质上是一种客户端-服务器解决方案,具有用于设计未来项目的体系结构及其编程的所有相关模式。


在对项目的任务,截止日期和成本进行了初步评估之后,我与出租车服务的所有者达成了所有必要的问题,于2009年1月开始工作。


展望未来,我马上说。 结果是可扩展平台运行在俄罗斯12个城市和哈萨克斯坦2个城市的60多个服务器上。 公司的总利润为100+百万卢布/月。


第一阶段 样机


由于那时我还没有IP电话方面的实践经验,并且作为“家庭”实验的一部分,我对星号有所了解,因此决定着手开发移动应用程序和服务器部分。 在此过程中,缩小了其他任务的知识鸿沟。


如果使用移动应用程序,一切都差不多。 那时,它只能用Java编写,用于简单的按键电话,然后编写用于移动客户端的服务器,这个问题就更加复杂了:


  • 将使用哪种服务器操作系统;
  • 基于为任务选择编程语言(而不是相反)的逻辑,并考虑到权利要求1,哪种编程语言将是解决问题的最佳选择;
  • 在设计时,有必要考虑服务的预期未来高负载;
  • 什么数据库可以保证高负载下的容错能力,以及如何通过增加对数据库的访问次数来保持快速的数据库响应时间;
  • 决定因素是开发速度和快速扩展代码的能力
  • 将来的设备成本及其维护(客户的条件之一-服务器必须位于其领土上);
  • 在平台的下一阶段工作中将需要的开发人员费用;

以及与设计和开发有关的许多其他问题。


在开始该项目之前,我向企业所有者提出了以下战略解决方案:由于该项目非常复杂,因此其实施将花费大量时间,因此首先我创建一个MVP版本,该版本不需要花费很多时间和金钱,但是可以使他的公司获得竞争优势市场已经是“现在和现在”,并且还将扩展其作为出租车服务的能力。 反过来,对我来说,这样的中间解决方案将使我有更多的时间来更仔细地设计最终解决方案以及技术实验的时间。 同时,不能保证所实施的软件解决方案能够正确设计,并且将来可能会被彻底重做或替换,但是它肯定会执行“与竞争对手分离”所需的最低限度的功能。 出租车的创始人很喜欢这个主意,所以最后他们还是喜欢了。


前两个星期,我花时间研究了公司的业务流程,并“从内部”研究了出租车的工作。 对何处,什么以及如何进行自动化以及是否有必要进行了业务分析 公司员工面临哪些困难和问题? 如何解决它们。 公司员工如何安排工作日。 您使用什么工具。


在开始工作并在Internet上研究有趣的问题后的第三周结束时,考虑到企业所有者的意愿以及我当时的知识和能力,决定使用以下堆栈:


  • 数据库服务器:MsSQL(免费版本,数据库文件最大限制为4GB);
  • 在Delphi中为Windows服务于移动客户端的服务器的开发,因为已经有一个Windows服务器将在其上安装数据库,并且开发环境本身有助于快速开发;
  • 考虑到2009年移动电话的互联网速度较低,客户端和服务器之间的交换协议应为二进制。 这将减少传输的数据包的大小,从而提高与服务器一起工作的客户端的稳定性;

另外两个星期花在了协议和数据库的设计上。 事实证明,有12个软件包可以在移动客户端和服务器之间交换所有必需的数据,并且可以交换数据库中约20个表。 我做了这部分工作是为了将来,即使我必须完全更改技术堆栈,软件包的结构和数据库也应保持不变。


在准备工作之后,有可能开始对该想法进行实际实施。 为了稍微加快该过程并使自己腾出时间来完成其余任务,我制作了移动应用程序的草稿版本,草绘了UI,部分使用UX,并吸引了熟悉的Java程序员参与该项目。 他专注于服务器端的开发,设计和测试。


在MVP的第二个月工作结束时,原型服务器和客户端的第一个版本已准备就绪。


在综合测试和现场试验,修正错误,对协议和数据库进行较小改进之后的第三个月月底,该应用程序已准备好输出到生产环境。 完成了


从这一刻开始,项目最有趣,最困难的部分开始了。


在驱动程序过渡到新软件的过程中,组织了全天候的工作。 由于并非所有人都能在白天上班时间到达。 另外,在管理上,根据公司创始人的强烈意愿,组织了这样的工作,以便出租车服务经理输入登录名/密码,并且不将其告知驾驶员。 就我而言,在出现故障和意外情况时,我需要用户的技术支持。


墨菲定律告诉我们:“所有可能出错的地方都会出错。” 那不是全部。。。当我和几个出租车司机在数十个测试订单上测试应用程序时,这是一回事。 另一件事是,当500多名司机实时按实际人员的实际订单工作时。


移动应用程序的体系结构很简单,并且其中的错误明显少于服务器中的错误。 因此,工作的主要重点在服务器端。 该应用程序中最严重的故障是当电话上的Internet消失并且会话再次恢复时,与服务器断开连接的问题。 互联网经常消失。 首先,在那些年中,电话本身的互联网不够稳定。 其次,有很多盲点,互联网根本无法正常工作。 我们几乎立即发现了此问题,并在24小时内消除并更新了所有以前安装的应用程序。


在服务器上,主要是订单分配算法中的错误以及对客户某些请求的不正确处理。 在发现故障的事实后,更正并更新了服务器。


实际上,现阶段并没有太多的技术问题。 整个困难在于,我在办公室当值将近一个月,只是偶尔回家。 大概是4-5次。 而且他睡得很香,因为当时只有他一个人从事这个项目,除了我之外,没人能修复任何东西。


一个月,这并不意味着一切都在一个月内不断出现故障,而我一直在不停地编写一些代码。 我们只是这样决定。 毕竟,该业务已经运作并获利。 与现在失去客户和获利相比,最好安全地使用它并稍后放松。 我们都非常了解这一点,因此整个团队共同投入了最大的精力和时间将新软件引入出租车系统。 考虑到当前的订单流量,我们肯定会在一个月内消除所有缺点。 好吧,可能仍然存在的隐藏的bug不会对业务流程造成严重影响,并且,如果有必要,可以按工作顺序进行修复。


在这里,值得一提的是出租车服务主管和团队负责人提供的宝贵帮助,他们在最大程度地了解将驱动程序转移到新软件方面的复杂性之后,全天候与驾驶员合作。 实际上,在手机上完成新程序的安装后,我们没有丢失任何驱动程序。 他们并没有严格提高非出口客户的比例,后者很快恢复了正常水平。


这是该项目的第一阶段工作。 应当指出,结果很快就到了。 通过自动向驾驶员分发订单,而无需人工干预,客户的出租车平均等待时间减少了一个数量级,这自然提高了客户对服务的忠诚度。 这导致订单数量增加。 以下增加了出租车司机的数量。 结果,成功完成的订单数量增加了。 结果,公司的利润增加了。 当然,我在这里要领先一些,因为整个过程不是瞬时的。 说管理就足够了,什么也没说。 我无限制地为该项目提供更多资金。


待续..

Source: https://habr.com/ru/post/zh-CN455405/


All Articles