2009-01-11 5 views
5

Trabajo para una pequeña compañía de software con menos de 10 programadores. Nuestro software está instalado en docenas de lugares en todo el mundo. Nuestra base de código es enorme, debido principalmente a un diseño deficiente y cantidades masivas de duplicación de código (IMO). Tenemos aproximadamente 30 proyectos diferentes, cada uno con un total de aproximadamente 600 KLOC, de los cuales aproximadamente 200 KLOC son nuestro código propio. Cuando llegué allí en 2006, este código ni siquiera estaba bajo control de revisión. Logré convencer a los poderes que es importante, y ahora usamos un sistema de control de código (cs-rcs, no es mi elección, pero es mejor que nada), y un sistema de seguimiento de errores. La gran pieza faltante es la falta total y total de control de calidad en el proceso. Nuestro proceso de lanzamiento no existe en el papel, y en la práctica consiste en "presionar ctrl-F9, copiar el binario al cliente, declarar el problema solucionado".¿Cómo convencer a la gerencia de que la garantía de calidad es importante?

¿Alguien me puede señalar algunos documentos oficiales o documentos de PHB o artículos que pueden explicar la flagrante locura en este proceso? Estoy seguro de que el jefe podría contratar a un consultor para que le cuente esto, y entonces él podría creerlo. Pero solo soy un modesto mantenedor con una licenciatura en Ingeniería de Software. Y mi origen étnico tampoco me sirve. ¿Cuál es la mejor munición para usar en este caso?

+0

Usted no está bromeando ¿verdad? ¿Cómo puede alguien trabajar sin control de revisión o un proceso de lanzamiento adecuado en una base de códigos tan grande? No tengo una solución para esto, creo que es irreparable ahora. – Naveen

+0

No estoy listo para tirar la toalla. No soy del tipo corporativo y me gusta ser Big Fish. Como dije, ya he obtenido la mayor parte bajo RCS. También he puesto cientos (¡miles?) De horas en todo el asunto y no quiero que falle. –

+0

Finalmente, he convencido al jefe de contratar a un analista de QA de tiempo parcial. Realmente, lo que tuve que convencerlo fue que los DESARROLLADORES NO PUEDEN PROBAR SU PROPIO TRABAJO. Es un conflicto de intereses. En segundo lugar, se molesta porque varios proyectos están atrasados ​​y no se pueden lanzar debido a errores. –

Respuesta

3

Tautológicamente, la única forma de convencerlos es ponerlos frente a algo que sea convincente. Esa cosa podría extraerse de una lista como:

  • La cara desastres predijo que solicita la adopción de la solución presentada anteriormente
  • El desastre unforetold con una solución de nunca volver confeccionada
  • una predicción brillantemente persuasiva de un desastre
  • un brillante recurso persuasivo a la codicia (ahorro el coste de oportunidad de un predicho d isaster)

O algo más. En todos estos casos, alguien tendrá que presentar el caso en algún momento para la solución de garantía de calidad que usted propone, y que alguien, por lo que se vea, tendrá que ser usted. Entonces comenzaría a aprender sobre ser persuasivo.

How to Win Friends and Influence People debería costarle algunos dólares como máximo. Getting To Yes también es barato.

¿Cómo se llegó al acuerdo con el control de origen? ¿Puedes seguir eliminando, mejorando el proceso un pequeño incremento a la vez?

Prueba Google "change your organization", parecía haber algunos enlaces prometedores.

Y en última instancia, recuerde que (como dijo una vez un sabio) si no puede cambiar su organización, entonces debe cambiar su organización. Realmente siempre hay una alternativa.

0

Quizás si consigue que algunos de sus colegas programadores lo respalden, la administración estará un poco más dispuesta a escuchar. No es necesario ser un genio para darse cuenta de que una base de códigos enorme e inmanejable es indicativa de mucho margen de mejora.

+0

Con respecto, esto nunca funcionará. Los programadores y probadores nacen enemigos. Ninguno de los programadores se ofrecerá voluntariamente para que sus proyectos "favoritos" sean examinados por algún QA punk de salario mínimo. El trabajo del probador es encontrar una falla con el programador. –

+1

La actitud de que los programadores y probadores son enemigos nacidos es contraproducente. Debería haber un conflicto saludable, pero no animosidad. Existe una gran diferencia entre una verdadera persona de QA (es decir, alguien que entiende el dominio y el software) frente a un probador. Las buenas personas de QA no * trabajan por el salario mínimo. También tienen una buena relación con el desarrollo. Cada lado necesita entender al otro y saber que están en el mismo equipo. Al haber estado tanto en Dev como en Control de calidad, nunca tuve un problema con la animadversión entre grupos. – ssakl

+0

Yow. Como un QA/tester (utilizo tester en el sentido de que ssakl lo está usando para referirme a QA, creo), tengo que decir que si tienes ese tipo de problema de actitud en el equipo, cualquier probador que ingrese realmente va a ir tener dificultades para ser productivo ¿Cómo vas a apoyarlos? Si no lo hace, es probable que se encalle y nunca convencerá a la gerencia de que con un poco de apoyo, podrían haber hecho un buen trabajo. Nunca me he visto como un enemigo de los programadores con los que trabajo. Mi trabajo no es encontrar fallas, es vigía. Canto cuando veo un arrecife adelante, así que no encallamos. – testerab

4

Su mejor munición en este caso es esperar el desastre inevitable. Una vez que sucede, tenga todos sus patos en una fila con un plan que hará que este desastre nunca vuelva a ocurrir, uno que hace hincapié en que los costos de implementación son mucho más bajos que el costo del desastre en sí.

Ninguna cantidad de conversaciones hará que los PHB "lo obtengan" si no lo quieren "en primer lugar". Solo una gran bofetada de esa dura maestría, la realidad, los persuadirá al final.

Ah, y mientras lo haces, actualiza tu currículum y busca. Los desastres que tienden a convencer a las personas de que necesitan control de calidad son muy similares a los tipos de desastres que matan a las empresas.

+0

Oh, he/has/sido desastre. Perdimos un cliente de $ 100k este año que conozco, debido a la insatisfacción del cliente. He enviado planes, procesos, pautas de lanzamiento y una wiki completa con datos para sugerir la solución. Todo lo cual es inútil sin control de calidad. –

0

Consulte de Joel book

+0

¿Qué sección específica en ese libro? –

0

Si su gestión no piensa control de calidad es importante, algo tan obvio y "sentido común" hasta el punto de que cualquier profano estaría de acuerdo con el, entonces no creo que poner un montón de documentos académicos, o cualquier otra cosa para el caso, para ellos hará la diferencia.

Su única esperanza es probablemente intentar armar un documento que muestre los ahorros de costos, pero dudo que eso ayude en este caso.

+0

¿Y qué podrían ser las columnas en esta hoja de cálculo? La compañía no tiene una métrica actual para cuantificar cuidadosamente los costos de soporte. ¿Debería pasar por llamadas por día? –

1

Administración no va a entender nada, pero dos cosas: (1) costo beneficio & (2) La satisfacción del cliente. El segundo es difícil de cuantificar, pero el primero es fácil. Puede gastar $ 40k a $ 60k en un ingeniero de control de calidad decente que pueda entrar y comenzar a darle sentido al desastre y comenzar a desarrollar un plan para solucionarlo. El costo beneficio viene de asegurarse de que un ingeniero más capacitado no tenga que pasar 2 meses rastreando un error oculto en 100k líneas de código.

Hay otra manera de hacerlo ... Puedes hacer lo que estamos haciendo donde trabajo.Comienza a escribir pruebas para el código al principio y luego, cuando hayas terminado con el código si la prueba pasa, entonces estás dorado. Una vez que la prueba haya pasado, se realizará una prueba que garantizará que si alguna vez descifra ese código, lo sabrá casi al instante. Y si logra que sus compañeros programadores participen de esa acción, al menos todo el nuevo código se desarrollará bajo un marco de prueba. Test driven development no solo hace que el proceso sea más rápido (usted ya sabe lo que quiere que sea el resultado antes de comenzar a codificar), sino que también ayuda a refinar sus requisitos a toda prisa. Lo más importante es que con un poco de ingeniería social (trabajando con sus pares) puede cambiar la cultura de desarrollo poco a poco hasta que el proceso esté completo.

1

Puedo recomendar The Toyota Way. La versión corta a menudo es posible ordenar gratis en los sitios web de toyota. La gerencia ya debería haberlo leído, pero aparentemente no lo han hecho. Léelo, digerirlo, haz que la administración lo lea. Como fuente de inspiración, realmente puedo recomendar leer Lessons from Toyota's Long Drive (vale la pena conseguir algunos dólares para obtener el PDF).

+0

La administración tiende a no confiar en los libros. Los libros no son viscerales, como ves, entonces solo es "aprendizaje de libros". He pasado (leído: perdido) cientos de horas usando libros y documentos para tratar de convencer a los gerentes de cosas. Nunca he tenido éxito en eso. "Es conocimiento del libro" es el estribillo constante. – user53838

+0

Suena como un caso perdido. Pero el Toyota Way es especial. Describe los principios que han guiado al mejor fabricante de automóviles del mundo durante 70 años. Es bueno intentar aprender de los mejores. – PEZ

0

Trabajé en un departamento donde un grupo común rotaba entre las tareas de desarrollo y las pruebas. Esto logra dos cosas:

  • , probadores eficientes altamente cualificados, que en el peor, sabía lo que el código estaba tratando de hacer, y cómo
  • desarrolladores que conocían su vez venía a hacer la prueba, o que acababa de regresar de las pruebas. Así que el dolor de probar el código malo era conocido, como era el placer de probar un buen código.

El tipo más respetado en todo el grupo era un tester despiadado, y al desarrollarse produciría software de cero defectos.

Cuestiones relacionadas