Como un pequeno programa converteu unha pequena oficina nunha empresa federal cun beneficio de máis de 100 millóns de rublos ao mes

A finais de decembro de 2008, fun invitado a un dos servizos de taxi en Perm co obxectivo de automatizar os procesos comerciais existentes. En xeral, encargáronme tres tarefas fundamentais:


  • Desenvolver un paquete de software para un call center cunha aplicación móbil para taxistas e automatizar os procesos comerciais internos.
  • Había que facer todo no menor tempo posible.
  • Ten o teu propio software, en lugar de compralo a desenvolvedores de terceiros, que no futuro, a medida que se desenvolva a empresa, poderá escalarse de forma independente ás condicións do mercado en constante cambio.

Daquela, non entendía como funciona este mercado e os seus matices, pero, con todo, dúas cousas eran obvias para min. O centro de chamadas debe construírse sobre a base do software asterisco de código aberto PBX. O intercambio de información entre o call center e a aplicación móbil é esencialmente unha solución cliente-servidor con todos os patróns correspondentes para deseñar a arquitectura do futuro proxecto e a súa programación.

Despois dunha avaliación preliminar das tarefas, prazos e custos do proxecto, e ter acordado todas as cuestións necesarias co propietario do servizo de taxi, comecei a traballar en xaneiro de 2009.

Mirando cara adiante, vou dicir de inmediato. O resultado foi unha plataforma escalable que se executa en máis de 60 servidores en 12 cidades de Rusia e 2 en Casaquistán. O beneficio total da empresa foi de máis de 100 millóns de rublos/mes.

Etapa un. Prototipo

Dado que daquela non tiña experiencia práctica en telefonía IP e só estaba superficialmente familiarizado co asterisco como parte dos experimentos "casas", decidiuse comezar a traballar co desenvolvemento dunha aplicación móbil e parte do servidor. Ao mesmo tempo, pechando lagoas no coñecemento doutras tarefas.

Se coa aplicación móbil estaba todo máis ou menos claro. Nese momento, só se podía escribir en java para teléfonos simples con botóns, pero escribir un servidor para clientes móbiles era un pouco máis complicado:

  • Que sistema operativo do servidor se utilizará;
  • Partindo da lóxica de que se escolle unha linguaxe de programación para unha tarefa, e non viceversa, e tendo en conta o punto 1, que linguaxe de programación será a óptima para resolver problemas;
  • Durante o deseño, foi necesario ter en conta as altas cargas futuras previstas no servizo;
  • Que base de datos pode garantir a tolerancia a fallos baixo cargas elevadas e como manter un tempo de resposta rápido da base de datos a medida que aumenta o número de solicitudes á mesma;
  • O factor determinante foi a velocidade de desenvolvemento e a capacidade de escalar rapidamente o código
  • O custo dos equipos e o seu mantemento no futuro (unha das condicións do cliente é que os servidores deben estar situados no territorio baixo o seu control);
  • Custo dos desenvolvedores que serán necesarios nas próximas etapas de traballo na plataforma;

Así como moitas outras cuestións relacionadas co deseño e desenvolvemento.

Antes de comezar a traballar no proxecto, propuxen a seguinte decisión estratéxica ao propietario da empresa: dado que o proxecto é bastante complexo, a súa implementación levará un tempo notable, polo que primeiro creo unha versión MVP, que non levará moito tempo e diñeiro, pero que permitirá á súa empresa obter unha vantaxe competitiva no mercado xa “aquí e agora”, e tamén ampliará as súas capacidades como servizo de taxi. Á súa vez, esa solución intermedia darame tempo para deseñar con máis atención a solución final e tempo para experimentos técnicos. Ao mesmo tempo, non se garantirá que a solución de software implementada estea correctamente deseñada e pode ser redeseñada ou substituída radicalmente no futuro, pero definitivamente realizará a funcionalidade mínima necesaria para "separar dos competidores". A idea gustoulle ao fundador do taxi, así que ao final fixérono.

Pasei as dúas primeiras semanas estudando os procesos comerciais na empresa, e estudando o traballo dun taxi dende dentro. Realizou unha análise empresarial de onde, que e como se pode automatizar e se é necesario. Que dificultades e problemas se atopan os empregados da empresa? Como se solucionan. Como se organiza a xornada laboral dos traballadores da empresa. Que ferramentas usan?

Ao final da terceira semana, despois de comezar a traballar e estudar temas de interese en Internet, tendo en conta os desexos do propietario da empresa, así como os meus propios coñecementos e capacidades nese momento, decidiuse aplicar a seguinte pila :

  • Servidor de base de datos: MsSQL (versión gratuíta con límite de ficheiros de base de datos de ata 2 GB);
  • Desenvolvemento dun servidor que atende a clientes móbiles en Delphi baixo Windows, xa que xa existía un servidor Windows no que se instalaría a base de datos, así como o propio entorno de desenvolvemento facilita un rápido desenvolvemento;
  • Tendo en conta as baixas velocidades de Internet nos teléfonos móbiles alá polo ano 2009, o protocolo de intercambio entre o cliente e o servidor debe ser binario. Isto reducirá o tamaño dos paquetes de datos transmitidos e, como resultado, aumentará a estabilidade do traballo dos clientes co servidor;

Outras dúas semanas pasaron a deseñar o protocolo e a base de datos. O resultado foron 12 paquetes que aseguran o intercambio de todos os datos necesarios entre o cliente móbil e o servidor e unhas 20 táboas na base de datos. Fixen esta parte do traballo tendo en conta o futuro, aínda que teña que cambiar a pila tecnolóxica por completo, a estrutura dos paquetes e da base de datos debería permanecer sen cambios.

Despois do traballo preparatorio, foi posible comezar a implementación práctica da idea. Para acelerar un pouco o proceso e liberar tempo para outras tarefas, fixen un borrador da aplicación móbil, esbocei a IU, en parte a UX, e participei no proxecto a un programador java familiar. E centrouse no desenvolvemento, deseño e probas no servidor.

Ao final do segundo mes de traballo no MVP, a primeira versión do prototipo de servidor e cliente estaba lista.

E a finais do terceiro mes, despois de probas sintéticas e de campo, corrección de erros, melloras menores no protocolo e na base de datos, a aplicación estaba lista para a produción. Que é o que se fixo.

A partir deste momento comeza a parte máis interesante e difícil do proxecto.

Durante a transición dos condutores ao novo software, organizouse un servizo de 24 horas. Xa que non todos podían vir en horario de traballo durante o día. Ademais, administrativamente, por decisión decidida do fundador da empresa, organizouse de tal xeito que o xestor do servizo de taxi introducía o login/contrasinal e non se lles comunicaba ao condutor. Pola miña parte, necesítase soporte técnico aos usuarios en caso de fallos e situacións imprevistas.

A Lei de Murphy dinos: "Calquera cousa que poida saír mal, sairá mal". E así foi exactamente como as cousas saíron mal... Unha cousa é cando eu e varios taxistas probamos a aplicación en varias ducias de pedidos de proba. E é unha cuestión completamente diferente cando máis de 500 condutores en liña traballan en tempo real en ordes reais de persoas reais.

A arquitectura da aplicación móbil era sinxela e había notablemente menos erros nel que no servidor. Polo tanto, o principal foco de traballo estaba no lado do servidor. O fallo máis crítico na aplicación foi o problema da desconexión do servidor cando se perdía a Internet no teléfono e se restablecía de novo a sesión. E Internet desapareceu con bastante frecuencia. En primeiro lugar, naqueles anos a Internet no propio teléfono non era o suficientemente estable. En segundo lugar, había moitos puntos cegos nos que Internet simplemente non funcionaba. Identificamos este problema case de inmediato e en 24 horas solucionamos e actualizamos todas as aplicacións instaladas previamente.

O servidor tiña principalmente erros no algoritmo de distribución de pedidos e procesamento incorrecto dalgunhas solicitudes dos clientes. Ao identificar fallos, corrixín e actualicei o servidor.

De feito, non houbo tantos problemas técnicos nesta fase. Toda a dificultade foi que estiven de servizo na oficina durante case un mes, só de cando en vez ía a casa. Probablemente 4-5 veces. E durmín a arrepentimento, xa que daquela estaba traballando só no proxecto e ninguén agás eu podía arranxar nada.

Un mes, isto non significa que todo estivese fallando constantemente durante un mes e que estaba codificando algo sen parar. Só decidimos iso. Despois de todo, o negocio xa estaba funcionando e obtendo beneficios. É mellor xogar con seguridade e descansar máis tarde que perder clientes e beneficios agora. Todos entendemos isto moi ben, polo que todo o equipo dedicou colectivamente a máxima atención e tempo a introducir software novo no sistema de taxis. E tendo en conta o tráfico actual de pedidos, definitivamente eliminaremos todas as deficiencias nun mes. Pois ben, os erros ocultos que poidan permanecer seguramente non terán consecuencias críticas no proceso empresarial e, se é necesario, pódense corrixir de forma rutinaria.

Aquí cómpre salientar a inestimable asistencia dos directores e capataces dos servizos de taxi, que, coa máxima comprensión da complexidade da situación de transferencia de condutores a un novo software, traballaron con condutores durante todo o día. De feito, despois de completar a instalación de novos programas nos teléfonos, non perdemos nin un só controlador. E non aumentaron críticamente a porcentaxe de non retirada de clientes, que pronto volveu aos niveis normais.

Rematou así a primeira fase do traballo do proxecto. E hai que ter en conta que o resultado non se fixo esperar. Ao automatizar a distribución de pedidos aos condutores sen intervención humana, o tempo medio de espera dun taxi por parte dun cliente reduciuse nunha orde de magnitude, o que naturalmente aumentou a fidelidade dos clientes ao servizo. Isto levou a un aumento no número de pedidos. Despois diso, aumentou o número de taxistas. Como resultado, tamén aumentou o número de pedidos completados con éxito. E como resultado, os beneficios da empresa aumentaron. Por suposto, aquí estou adiantandome un pouco, xa que todo este proceso non se produciu ao instante. Dicir que a dirección estaba satisfeita é non dicir nada. Ofrecéronme acceso ilimitado a máis financiamento do proxecto.

Continuar ...

Fonte: www.habr.com

Engadir un comentario