¿Cómo puedo cambiar la cultura de la empresa descuidada? [cerrado]

28

A veces, cuando tengo un problema que necesita ser resuelto, encuentro que la forma más fácil de resolverlo es escribiendo un pequeño programa como herramienta personal. No lo hago súper usable o súper robusto, ya que soy el único que lo va a usar, y no tengo tiempo para refinarlo y probarlo a fondo.

Luego, un compañero de trabajo ve el programa y lo solicita, porque se ha encontrado con el mismo problema y la herramienta podría ayudar. Le doy el descargo de responsabilidad "No es bonito pero hará el trabajo" y le dejo que lo haga.

Lo siguiente que sé es que mi superior me está llamando y me dice que está tratando de hacer que el software funcione en la computadora de un cliente, pero muestra un mensaje de error X. WTF ?? Ese software no está listo para su lanzamiento, ni me dijeron que necesitaba estar listo para su lanzamiento. Pero por alguna razón, mi superior pensó que era lo suficientemente bueno y lo lanzó sin decirle al desarrollador original.

Ahora, este problema en particular es fácil de solucionar con a MessageBox.Show("DO NOT GIVE TO CLIENTS!");. Sin embargo, el problema es indicativo de un problema mucho más profundo: la cultura de nuestra empresa es descuidada. El software descuidado está bien y los procesos descuidados están bien. No se preocupe por el futuro: haga todo lo posible para que apenas funcione ahora, coloque los archivos binarios en un archivo .zip y envíelo. Lo suficientemente bueno para el trabajo del gobierno.

Esta es una pequeña empresa con 10 empleados a tiempo completo, está creciendo y ha existido por un tiempo. No me malinterpretes; Amo trabajar aquí y amo la compañía. No me digas que corra; Quiero ser parte de mejorar la empresa. ¿Cómo comienzas a traer un buen cambio a este tipo de cultura?

Phil
fuente
8
Viejo refrán ruso "¡Un pez apesta de la cabeza!"
3
Una vez que puede garantizar que se implementará el proceso es después de un gran problema. Parte de las consecuencias será que los clientes exigirán una revisión de los procesos para garantizar que no vuelva a suceder. Cuando la gerencia descubra que suceden cosas como esta, pronto encontrará un nuevo proceso brillante. Tal vez podrías hacer un truco. ¡BROMA! Por favor, no te lo tomes en serio :)
Paul T Davies
A mí me parece que esto debería haber sido una prueba (unidad o integración) en lugar de una aplicación ... ''
dijo Devlife el
2
No quiero ofenderte, pero ¿estás contribuyendo tú mismo a la cultura descuidada? Si está hablando de un problema experimentado tanto por los clientes como por los miembros del equipo, tal vez una herramienta improvisada que solo usted tiene no sea la solución menos descuidada.
Dan Olson
@DanOlson Tienes toda la razón, pero en ese momento no sabía que los clientes lo necesitarían. Si lo hubiera hecho, lo habría convertido en un proyecto de software completo.
Phil

Respuestas:

20

La única forma de cambiar es hacer que todos los demás vean las desventajas de una cultura descuidada y, quizás lo más importante, que la gerencia acepte su solución. Sin embargo, en realidad, eso no sucede y no podrás cambiarlo. Esa podría no ser la respuesta que esperaba escuchar, pero después de cinco años de intentar y fallar en varios trabajos para cambiar la cultura descuidada, puedo decir con cierta autoridad que generalmente no vale la pena hacer el esfuerzo.

El primer paso sería descubrir si alguien más conoce o se preocupa por la cultura descuidada; Si usted es la única persona que ve algún problema, sus esfuerzos serán en vano.

Wayne Molina
fuente
+1 por conseguir que la gerencia compre. Creo que sin las autoridades superiores dando el visto bueno y presionando sobre algo que hacer, la mayoría de las personas no estarán dispuestas a cambiar y cumplir con lo que están obligadas a hacer actualmente.
Dreza
+1 por el mismo motivo que @dreza. Pero la buena suerte con la compra de gestión.
talonx
8

Es posible que deba reunirse con un compañero de trabajo y un jefe y explicarle que lo que tenía era un prototipo y que no estaba listo para que lo utilizaran los clientes. Si querían que estuviera listo para que los clientes lo usaran, podría hacer esos cambios con el tiempo suficiente, pero no tome las cosas "rápidas y sucias" y se las pase a los clientes. El hecho de que algo funcione no hace que sea una buena lección para aprender. Si bien dio un descargo de responsabilidad, hay algo que decir para darle un poco de respeto, de lo contrario, esto es lo que puede suceder.

JB King
fuente
55
Como OP, me gustaría ver una explicación de por qué esto fue rechazado.
Phil
44
por no hablar de esas cosas rápido y sucio todavía puede contener información vital que nunca debe salir del edificio (contraseñas codificado para probar por ejemplo)
monstruo de trinquete
3

No puedes arreglar estúpido. Si su jefe está haciendo cosas como usted describe, es poco probable que pueda cambiar eso. Especialmente si él no es el dueño; recuerde, tiene presión proveniente de la otra dirección, y esa dirección firma su cheque de pago. Lo mismo con tus otros compañeros de trabajo. El mejor primer curso de acción que puede tomar es adquirir el hábito de protegerse. Use técnicas como el cuadro de mensaje que describe. Guarde todos los correos electrónicos. Obtenga todo lo que pueda en forma escrita. De esta manera, no se lleva la peor parte cuando se produce la estupidez. Luego, a medida que asciende, instituya los cambios que desee con aquellos bajo su supervisión.

Gran maestro B
fuente
Por mucho que estoy de acuerdo, es una estrategia triste después de todo. ¿Quién quiere trabajar en ese entorno? Tal cultura matará silenciosamente la creatividad a largo plazo. Intenta ser lo mejor que puedas ser, no lo más protector. Si la cultura ya no encaja, sigue adelante.
JensG
2

El otro día, un colega me contó una historia de una herramienta de prueba simple para permitir que un ingeniero en un laboratorio emita un solo comando a un widget y cambie una variable que vaya con el comando. Esto fue escrito hace 9 años, y lo último que supo, todavía está en uso hoy. Una herramienta que fue escrita en un par de horas con pruebas mínimas para demostrar, en el laboratorio, que algo funciona, fue la base de toda una herramienta de prueba de laboratorio de ingeniería. Una vez que escribe el código, existe. Si hace algo útil y lo ven otras personas, la gente va a quererlo. Si es bueno en lo que hace, la gente va a pedir que haga X. Lo siguiente que sabes es que tu herramienta simple es un componente importante.

Creo que la primera responsabilidad recae en el desarrollador de software para asegurarse de que cualquiera que mire el código o use la herramienta entienda que es un prototipo o no un sistema de producción y diga por qué ese es el caso. Parece que lo hiciste, sin embargo, tus compañeros de trabajo no cumplieron con esa responsabilidad. Para abordar esto, recomendaría hablar con ellos, reiterando que este no era un código de producción y que solo estaba escrito para facilitar su trabajo. Si lo encuentran útil, quizás ofrezca trabajar en la herramienta o ayudar a otras personas que trabajan en la herramienta para mejorarla y hacerla más adecuada para la producción.

En cuanto al proceso organizacional o la cultura de cambio, espere que tome un tiempo. Comience por dar un ejemplo. Si no has leído El programador pragmático , hazlo. Tome nota sobre consejos como Cuidar de su oficio, Ser un catalizador para el cambio (mostrar a las personas mejores formas), No vivir con ventanas rotas, Arreglar el problema, no la culpa. Parece que reconoce algunos problemas abordados por estos consejos, así que comience a trabajar y vivir un ejemplo para sus colegas.

Thomas Owens
fuente
Estoy totalmente de acuerdo contigo. Mi idea es que cuando escribes código, escribes lo mejor que puedes, generalmente requiere el mismo tiempo para escribir código incorrecto. La calidad es algo que no puede obtener en medio de su proyecto.
Andrea Girardi
1

Hasta que los tomadores de decisiones ya no toleren las consecuencias del código incorrecto y estén dispuestos a pagar / cambiar sus formas de solucionar el problema.

Estas son decisiones difíciles para las empresas pequeñas y en crecimiento. No saben dónde poner todos sus esfuerzos. Existe el riesgo de que el código sea demasiado robusto cuando las reglas comerciales y, a veces, líneas enteras de negocios aparecen, cambian y desaparecen durante la noche.

Esfuércese por escribir un buen código. Asegúrese de informar a todos sobre las consecuencias para que puedan tomar decisiones informadas. Si el código incorrecto se pone en producción, vigílelo si puede y continúe sugiriendo mejorarlo, especialmente si esa parte del negocio se vuelve crítica.

Hacer que la gente espere lo que ves como un código mínimamente viable parece estar más allá de sus expectativas actuales.

JeffO
fuente
+1 para "Hacer que la gente espere lo que ves como código mínimamente viable parece estar más allá de sus expectativas actuales". Tristemente cierto.
Phil
@ Phil - y la mayoría de ellos simplemente no quieren entrar en detalles. A veces puede tentarlos con la capacidad de realizar cambios fácilmente en el futuro, de seguridad o de manejar a más usuarios.
JeffO
1

Señalaría que parte del problema aquí es que has escrito una herramienta rápida y sucia en primer lugar. De acuerdo, había buenas razones. Por supuesto, hizo el trabajo. Pero descubrí que cualquier cosa que resuelva un problema caerá en la trampa de una solución "suficientemente buena", si comienza a pasarla por alto.

Si su compañero lo quiere, cortésmente dígale que no es completamente funcional y que se queda con las llaves. Puedes ejecutarlo para él de vez en cuando. O bien, agregue la funcionalidad adicional, preferiblemente desde el comienzo del proyecto.

Todas mis herramientas rápidas y sucias en este punto provienen de un archivo esqueleto muy probado. Me permite comenzar rápidamente, me proporciona un punto de partida funcional y me permite olvidarme de agregar todos los bordes romos necesarios. No tengo que preocuparme por la biblioteca de getopts y sus peculiaridades. No necesito recordar detalles sobre la administración de memoria cuando uso Python. Cree el programa para que realice una tarea simple y solo una . Eso hace que sea fácil probar si están tratando de doblarlo.

Finalmente, aproveche la arquitectura de máquinas de estados finitos. Si sabe ir en todos los estados posibles, es mucho más fácil asegurarse de que, pase lo que pase, el usuario nunca pueda saltar las pistas. Tengo un programa que escribí para seguir este paradigma. Acepta archivos de entrada arbitrarios, que lee byte a byte. Incluso si el cliente le dijera que leyera un ejecutable binario, no tendría ningún problema. Como no encontraría ninguna de las cosas que estaba buscando, su búfer interno se llenaría. Eso haría que limpiara, cerrara e informara al usuario que necesita que lo mire.

Spencer Rathbun
fuente
0

Bueno, la respuesta no tiene mucho que ver con la programación, excepto que el software es bueno y es difícil juzgar fácilmente la calidad.

Es posible que no pueda cambiar la cultura, porque las personas pueden no tener un motivo real para no ser descuidado, porque las personas afectadas por la calidad del software no tienen mucho que ver con el proceso. Por ejemplo, a sus clientes se les puede pedir que compren y usen software para hacer su trabajo, pero tienen poco interés personal en la eficacia de ese software, porque no se les culpará personalmente por sus problemas ni se les recompensará por sus virtudes (en gran parte porque nadie sabe realmente si el software de la competencia sería mejor). Por lo tanto, es posible que solo tenga que cumplir con sus solicitudes de funciones sin demorar demasiado , pero no tener que preocuparse demasiado por si tiene errores. Entonces, todos pueden ser bastante descuidados sin consecuencias (para cualquiera que tome decisiones que lo afecten).

No sé si es así, pero si es así, puede ser difícil cambiar la cultura, ya que las personas que está tratando de cambiar no estarán mejor si lo hacen.

Si estarán mejor, puede que sea más fácil, ya que puede convencerlos potencialmente de por qué lo harán. Desafortunadamente, si no hubiera algún tipo de situación política que hiciera bien el descuido, probablemente no serían descuidados en primer lugar, por lo que es probable que sea difícil. Siempre puedes probar el argumento "algún día podrías tener un trabajo que requiera hacer las cosas bien" (quizás más diplomáticamente redactado ...)

psr
fuente