"Guiando" a un experto en dominios para que se retire de la programación [cerrado]

7

Tengo un amigo que hace TI en una organización local sin fines de lucro, donde está utilizando una aplicación web personalizada que ya no es compatible con la empresa que la creó. (Fuera del negocio, el soporte era demasiado costoso, no estoy seguro ...) El desarrollo de esta aplicación comenzó hace más de 10 años, por lo que las tecnologías que se están aprovechando ya están bastante desfasadas: asp clásico con vbscript y SQL Server 2000. El dominio de la aplicación se encuentra en el ámbito de la contabilidad del gobierno, por lo que aunque el equipo de desarrollo se haya ido hace mucho tiempo, a menudo hay nuevos requisitos para este software. Ingrese el ...

El experto en dominios. Este es un experto en contabilidad de mediana edad sin mucha (¿o alguna?) Experiencia previa en desarrollo. Estudió las páginas, el código y las consultas y aprendió a imitar el estilo del equipo original que, créanme, es mediocre en el mejor de los casos. Es muy inteligente y tenaz, pero no tiene experiencia en software más allá de lo que ha aprendido de esta aplicación. De lo contrario, es un tipo agradable para hablar y definitivamente sabe su dominio.

Mi amigo en TI, y probablemente sus superiores en la empresa, lo quieren fuera del código. Lo ven como una pérdida de su experiencia en tareas de codificación que no debería estar haciendo. Mi amigo me involucró con algunos contratos pequeños que manejé sin muchos problemas, aparte de una barrera de comunicación con el experto en dominios. Explicó los requisitos muy rápidamente, asumiendo un conocimiento previo del dominio que no tengo. Este es parcialmente su estilo normal, y creo que tal vez un poco de resentimiento por mi participación. Entonces, creo que se siente como el propietario del código y se ha atrincherado en una posición de desarrollo.

Entonces ... su técnica de codificación. Uno de sus últimos esfuerzos fue crear una página que solo él pudiera alcanzar (teóricamente, el modelo de seguridad para el sistema es miserable) donde puede ingresar una consulta de SQL sin formato, ejecutarla y guardar la consulta para volver a ejecutarla más tarde. Originalmente, él implementó un informe en el que trabajé utilizando 6 consultas distintas, 3 o 4 tablas temporales para coordinar los datos entre las consultas, y el resultado final se obtuvo al importar los datos de la consulta final a Access y hacer un pivote y algún formato Funcionó, bueno, algunos de los resultados fueron incorrectos, ¡pero a qué costo! (Implementé el informe en una sola consulta con al menos 1/10 de la cantidad de código). Edita el código en el bloc de notas. Él no parece saber sobre el material de referencia en línea para los idiomas. Recientemente leí un artículo en Dr. Dobbs tituló "Qué hace a los programadores malos diferentes" , e instantáneamente pensó en nuestro experto en dominios. Del artículo:

  
  • Su código es grande, desordenado y está cargado de errores.
  •   
  • Tienen un conocimiento muy superficial de su dominio del problema y sus herramientas.
  •   
  • Su código tiene una gran cantidad de copiar / pegar y tienen muy poco interés en las técnicas que lo reducen.
  •   
  • El hecho de no tener en cuenta los casos perimetrales, al tiempo que se ocupa de manera ineficiente del caso general.
  •   
  • Nunca tienen tiempo para comentar su código o dividirlo en partes más pequeñas.
  •   
  • La evidencia empírica juega no poco papel en sus decisiones.
  •   

5.5 de 6.

Mi amigo quiere que yo discuta el caso con su gerencia; específicamente, recibí este correo electrónico de su gerente para responder:

  

... Además, necesito hablar con usted sobre el efecto que tiene el dominio   Experto continúa realizando modificaciones en el entorno en vivo. Si eso es   un problema para usted que necesito saber para poder bloquear su acceso.   Algunos ejemplos podrían ayudar.

En mi opinión, desde un punto de vista técnico, es peligroso que haga cambios sin supervisión alguna.

Por otro lado, solo estoy haciendo contratos puntuales en este momento y no tengo muchas ganas de involucrarme lo suficiente como para estar esencialmente discutiendo como uno de los Bobs de Office Space. Me gustaría ayudar a mi amigo, pero siento que estoy en medio de una batalla política.

Y lo que es más importante, si me involucro y sugiero que se eliminen sus privilegios de edición, debe manejarse con cuidado para que no se sienta menospreciado. Él es, sin lugar a dudas, el principal experto en este sistema.

Espero que este sea un territorio familiar para algunos otros apiladores, porque me siento un poco desconcertado. ¿Cómo debo responder? ¿Debo argumentar que no se le debería permitir tocar el código? ¿Debería expresarlo como "ningún desarrollador, sin importar cuánta experiencia tenga, debería estar trabajando en el código de producción sin marcar"? ¿Debo argumentar para mantenerlo involucrado con el código, pero con un proceso de revisión? Debería decir "me alegro de poder ayudar, pero uh, ¡ahora estoy ocupado!" ¿Otras opciones?

¡Muchas gracias!

    
pregunta James Kolpack 03.07.2012 - 02:17

2 respuestas

18

Tome la perspectiva a largo plazo sobre este tema. Muchos de los elementos que mencionó se eliminan cuando coloca una lente de objetividad sobre la situación.

Usted tiene una apariencia mínima en este juego y no tiene ningún deseo / prospecto real para un trabajo de contrato significativo con la PFN. En última instancia, ¿qué beneficio tiene para usted responder de una manera u otra a la solicitud de administración?

Está bien dentro del decoro simplemente para decir "No tengo suficiente de la historia de este proyecto para hacer una declaración como esa". Y luego puede continuar con "Una buena práctica es tener un sistema de prueba para hacer y probar los cambios antes de hacer esos cambios en la producción. Nadie, incluyéndome a mí mismo, debe realizar cambios directamente a la producción en una situación que no sea de emergencia. . " Y sí, incluso en la mayoría de las situaciones de emergencia, debe presionar Test antes de Prod.

El PFN le está pidiendo a una persona técnica que emita un juicio sobre el personal, que realmente está fuera del ámbito de su función, especialmente como contratista a tiempo parcial / ad-hoc. No hay beneficio para usted ni beneficio para su reputación profesional al involucrarse en su asunto interno.

Actualización:
Esto no estaba directamente en su pregunta, pero se relaciona con los aspectos más técnicos de la misma. Y proporciona pasos más concretos de lo que realmente puede hacer para ayudar a esta situación. No afecta mi respuesta original para mantenerse al margen del problema del personal. Siempre vale la pena recordar que el código es el producto de las circunstancias que lo crearon. Intento no ser demasiado rápido para juzgar cualquier conjunto de código que no escribí personalmente porque no conozco todas las circunstancias. He escrito un código de mierda bajo presión, y me recuerdo a mí mismo cada vez que veo nuevos ejemplos. Se realista. Mantenlo humilde.

Algunas personas simplemente no saben que lo que están haciendo está mal. En su próximo contrato, puede ofrecerle mostrarle algunas técnicas para mejorar sus habilidades de codificación. Comience con un cumplido y / o reconozca su experiencia en el dominio. Luego muéstrele una simplificación fácil y señale por qué le hará la vida más fácil. Comienza pequeño y encuéntralo siempre para su beneficio, no como para superarlo. Especialmente no quieres anunciar que estás tratando de "entrenarlo"; Enmárquelo como simplemente ofreciendo trucos y consejos simples. A pesar de su personalidad brusca, todos aprecian aprender los trucos del oficio que les facilitan la vida.

    
respondido por el GlenH7 03.07.2012 - 02:37
4

Parafraseando tu pregunta "Mi compañero trabaja para una compañía que quiere despedir a alguien que no cree que esté haciendo un trabajo lo suficientemente bueno, me pidieron ayuda y estoy feliz de hacerlo porque estoy de acuerdo. ¿Algunos consejos sobre cómo torcer realmente el cuchillo a este tipo? "

Todo lo que puedo agregar a la excelente respuesta de @ GlenH7 es que este es un problema serio de empleo. Aparte de su ética, discutirlo abiertamente en Internet podría poner a varias personas en el fondo ... Glen indicó que no tiene nada que ganar ... Iría tan lejos como tenga mucho que perder.

Mi consejo es que te mantengas al margen, no es tu batalla.

    
respondido por el mattnz 03.07.2012 - 05:23

Lea otras preguntas en las etiquetas