Recientemente comencé un proyecto que no parecía demasiado difícil de hacer, el concepto era una aplicación bastante simple que tenía que aceptar información de vez en cuando (tal vez 10 veces al día), e intentar realizar algunas operaciones en ellos y recopilar todos los resultados al final. Esta aplicación obtendría un portal web front-end que los clientes podrían usar para ver los resultados, no exactamente ciencia espacial.
Para esto, inicialmente hice un uso inteligente de las bibliotecas de concurrencia integradas de Python ( ThreadPoolExecutor
) y utilicé una biblioteca fácil de usar para el front-end (elegí Flask porque es fácil para principiantes y es relativamente fácil de mantener y probar).
Una vez que estábamos a la mitad del proyecto, el Primer Ministro declaró que teníamos que usar capacidades de cola de mensajes de terceros en lugar de hilos y tuvimos que implementar el equilibrio de carga, lo que finalmente terminó sucediendo fue que finalmente comenzamos a trabajar con Celery, Redis, RabbitMQ, Nginx, uWSGI y un montón de otros grandes servicios de terceros con los que nadie tenía ninguna experiencia real.
Al final, esto condujo a un montón de código de spaghetti, tareas no comprobables (debido a la complejidad de las bibliotecas de terceros, parchear el código ni siquiera funcionó) y un montón de dolores de cabeza porque nadie sabía cuál era el valor agregado de estos servicios .
Antes de decir "Sí, debe usar esos servicios", tenga en cuenta que nadie sabe cómo usarlos ni siquiera sabe lo que hacen además de introducir un código plagado de condiciones de carrera.
¿Qué debo hacer al respecto? En este punto, simplemente sería demasiado costoso volver a lo que teníamos y el PM está decidido a usar estos servicios, a pesar de que el producto final ahora está peor de lo que estaba al principio. ¿Hay algún uso en discutir esto con él? ¿Pido más tiempo? O la dura respuesta, ¿soy demasiado estúpido para mi trabajo?