Mi jefe se acercó a mí hoy para preguntarme si podríamos implementar cierta función en 1,5 días. Le eché un vistazo y le dije que 2 a 3 días serían más realistas. Luego me preguntó: "¿Y si lo hacemos rápido y sucio?" Le pedí que explicara lo que quería decir con "rápido y sucio".
Resulta que quiere que escribamos el código tan rápido como sea humanamente posible (por ejemplo) copiando partes y fragmentos de otros proyectos, colocando el código all en el código subyacente de las páginas de formularios web. , deje de preocuparse por DRY y SOLID y suponga que el código y las funciones nunca tendrán que ser modificados o modificados. Lo que es peor, no quiere que lo hagamos solo por esta característica, sino por todos el código que escribimos.
Podemos hacer más ganancias cuando hacemos cosas rápidas y sucias. Los clientes no quieren pagar por usted teniendo en cuenta que algo podría cambiar en el futuro. Los beneficios para nosotros están en entregar el código lo más rápido posible. Mientras la aplicación haga lo que debe hacer, la calidad del código no importa. Nunca ven el código.
He intentado convencerlo de que esta es una mala manera de pensar como gerente de una compañía de software, pero simplemente no escuchó mis argumentos:
- Motivación del desarrollador: expliqué que es difícil mantener a los desarrolladores motivados cuando están constantemente bajo la presión de plazos y presupuestos poco realistas para escribir código descuidado muy rápidamente.
- Legibilidad: Cuando un proyecto se transmite a otro desarrollador, será más fácil de leer y comprender un código más limpio y mejor estructurado.
- Mantenimiento: Es más fácil, más seguro y menos costoso adaptar, extender o cambiar el código bien escrito.
- Probabilidad: Por lo general, es más fácil probar y encontrar errores en el código limpio.
Mis compañeros de trabajo están tan desconcertados como yo desde el punto de vista de mi jefe, pero parece que no podemos llegar a él. Sigue diciendo que al hacer las cosas más rápido, podemos vender más proyectos, pedirles un precio más bajo y al mismo tiempo obtener una mayor ganancia. Y al final, estos proyectos pagan los salarios del desarrollador.
¿Qué más puedo decir para hacerle ver que está equivocado? Quiero comprarle copias de Peopleware y The Mythical Man-Month, pero tengo la sensación de que tampoco cambiarán de opinión.
Muchos de ustedes probablemente dirán algo como "¡Corre! ¡Sal de ahí ahora !" o "¡Renuncio!", pero esa no es realmente una opción ya que los trabajos de desarrollo web .NET son bastante raros en la región donde vivo ...
Actualizar
Wow, no esperaba recibir tantas respuestas. ¡Gracias a todos por sus contribuciones y sus opiniones!
Como señalan algunas de las respuestas y comentarios, el tipo de empresa y el tipo de proyectos juegan un papel importante en este tema. He explicado algunas cosas aquí en los comentarios sobre algunas respuestas, pero probablemente sea mejor agregarlo también aquí.
La empresa para la que trabajo es bastante pequeña. Tenemos 4 desarrolladores, 1 diseñador, 1 jefe y 1 jack-of-all-non-técnico-trade (la esposa del jefe). Los proyectos que hacemos se pueden dividir en dos categorías:
- Sitios web pequeños construidos con nuestro propio CMS o marco de comercio electrónico (65%)
- Aplicaciones web de tamaño medio (35%)
Así que, si bien muchos de nuestros proyectos son bastante pequeños, se construyen sobre el mismo sistema. Este sistema tiene alrededor de 4 años y el código base está por debajo de la media, por decir lo menos. Siempre es un temor agregar nuevas funcionalidades o modificar funcionalidades estándar para clientes específicos.
Uno de los objetivos establecidos por el jefe es comenzar a mover nuestro enfoque hacia el desarrollo de productos. Eso significa que estaremos desarrollando aplicaciones más grandes que servirán de base para otros proyectos o son algo como SaaS.
Estoy totalmente de acuerdo en que hacer las cosas rápido y sucio puede ser la mejor solución para ciertos proyectos. Pero cuando extienda un CMS existente que será utilizado por todos los sitios que desarrollará en los próximos años o cuando cree un producto SaaS desde cero, hay mejores enfoques, creo.