Esta historia sucedió en una compañía real, a pesar del hecho de que algunos nombres y eventos son ficticios.
Glory era un desarrollador ordinario en una pequeña empresa en la ciudad de N. La empresa se dedicaba a la prestación de servicios a organizaciones educativas. Había varias aplicaciones que debían ser compatibles, desarrollándose gradualmente poco a poco. Pero las autoridades de Glory no creían en sus esfuerzos y en el hecho de que él come su pan por una razón. Además, los jefes en tecnología de la información realmente no querían, pero querían entender qué estaban haciendo los empleados y qué tipo de productividad tenía el departamento de ventas (que debo decir que consistía en una persona y media).
Las autoridades miraron al gerente de ventas con astucia y le preguntaron: ¿qué hiciste hoy por la Patria? El vendedor respondió: celebró tantas reuniones, ofreció servicios a tanta gente. El liderazgo llegó a Glory y dijo: dime si los empleados están diciendo la verdad o no, llevan una mordaza. Necesito estadísticas
El diálogo tuvo lugar:
- ¿Los usuarios pagan por el servicio a través de un servicio de terceros para recibir pagos en línea? Entonces?
- Entonces.
- ¿La gerencia de la empresa tiene acceso a este servicio?
- los hay.
- Entonces, probablemente, hay una descarga de pagos allí.
- los hay.
"¿Pero necesita un informe adicional?"
- Necesario
- por qué?
- Porque es más conveniente, porque tienes que hacerlo, porque "tal y tal".
Para ser justos, debe decirse que se necesitaban datos adicionales.
Sin dudarlo, Glory realizó una consulta simple con la posterior selección en Excel.
El informe era un conjunto de datos en una columna en una página. Al principio se acercaron a Glory de manera caótica, a mitad del día y preguntaron. Pero denme un informe sobre esta organización, y ahora sobre esta. Sin dudarlo, Slava decidió que era suficiente para soportar esto y que se debía hacer algo hermoso y unificado para satisfacer las necesidades de quienes lo solicitaban.
Surgió un pequeño script que permitió enviar boletines a las personas interesadas:
import openpyxl, pymysql, os from smtplib import SMTP_SSL from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders import datetime
Hecho, por supuesto, no pensaba realmente Glory. Pero como dicen: "Ah, y así será".
Todas las mañanas, Slava venía a trabajar, ejecutaba un guión y enviaba un correo electrónico a las partes interesadas.
El siguiente paso fue configurar el envío automático. Funcionó algo como esto:
Docker build --tag = informes.
docker run -it --rm informaY en palabras en la corona:
0 8 * * * docker run --rm fooTodos los días a las 8 de la mañana se fue la carta. La gerencia era bonita e incluso comenzó a pensar que Slava venía a trabajar todos los días exactamente a las 8 de la mañana, redactaba un informe en Excel y luego lo enviaba por correo a sus manos. Y lo hizo el sábado y el domingo, y en la nieve, y bajo la lluvia, y en la noche polar.
GithubPor el momento, por un tiempo todo estuvo bien y el liderazgo aguantó, pero no por mucho tiempo. Una vez hubo una reunión en la que se anunció un nuevo orden. Escucha, escucha y no digas que no escuchaste. Sim declara que todos los empleados, todos los días deben reportarse a un ranking más alto, e incluso más alto. Bueno, en general, lo entiendes.
"¿Todos los días?" Preguntó Glory.
- Todos los dias. - respondió el jefe del departamento técnico.
- O tal vez no?
- Es necesario Gloria, es necesario.
Slava tenía varias preguntas sobre esta situación. La responsabilidad inmediata era finalizar el software y sus informes deberían consistir en algo como esto:
feat (Módulo) Se corrigió un error en NoteLineCount ... no en serio ...
upd (Módulo 2) No prestes atención al hombre detrás de la cortina
arreglado (Módulo 3) Me dijeron que lo dejara solo, pero tengo esta cosa llamada TOC, ya ves* Nota: el nombre de los mensajes para confirmar
se toma de aquíGlory decidió que redactaría un informe basado en ellos. Ha pasado una semana. Se produjo una nueva conversación sobre el siguiente contenido:
- Por lo tanto, envía informes todos los días, pero no hay progreso visible. Lo que, por ejemplo, es: "se ha agregado una máscara al ingresar un número de teléfono en el front-end".
- Pues mira. Anteriormente, tenía que ingresar su número de teléfono y verificar el número de dígitos y era inconveniente. Y entonces es conveniente.
- Hm. Bueno Ya veo Y cómo explica esto: “Refactorización de código para el módulo de contrapartes. La función de validación está en un método separado ".
- Bueno, ya ves. Existe tal cosa: sistema de control de versiones, que indica quién, cuándo y qué lo hizo. Mira aquí Aquí están los commits, y aquí está el código que ha sido cambiado. Aquí está el código agregado, aquí está el código eliminado.
- bien. Hagámoslo entonces. Haga un informe basado en estos compromisos, y luego nos reuniremos y verificaremos qué es lo que escribió allí.
Al final, esto es lo que sucedió:
GithubEl script tomó los cambios en el repositorio y envió una carta sobre lo que se hizo y lo que no.
Anteriormente, Slava se avergonzó de informar que aquellos que no verificarían nada no entenderían cómo escribir código. Tal vez la gerencia entienda las ventas, compras y todo tipo de otras cosas y pague dinero, pero verá ciertas líneas de código en un lenguaje poco familiar, observe cómo parpadean las líneas verde y roja al cambiar de commit a commit.
Sí, Slava es una persona responsable y el trabajo funcionó, pero hubo días en que el código apenas se finalizó o fue flojera. De todos modos, en general, el sistema funcionó sin fallas y no quería agregar otras 15 capas de abstracción, pero los informes tenían que enviarse todos los días.
No quedaba nada más que hacer que convertirse en un nuevo Mayakovsky y escribir una mordaza con una escalera. Pero todos los días no quería inventar uno nuevo. Como resultado, Vyacheslav comenzó a desarrollar la primera solución que vino a mi mente y resultó ser un código simple, donde, en ausencia de cualquier trabajo realizado y cambios impulsados, se compiló un informe. Se parecía a esto:
GithubQuedaba por hacer para que se formara un código falso con confirmaciones posteriores. ¿Hay alguna necesidad de hacer esto? El tiempo lo dirá.
PD: La historia de Glory no terminó ahí. Hubo varios eventos más que influyeron en su destino, pero esta es una historia completamente diferente. Es interesante leer en los comentarios historias similares de la vida y las decisiones que se crearon sobre su base. Es posible que el proyecto se desarrolle más sobre la base de estos comentarios.