¿Los codificadores encuentran útil la documentación tediosa? ¿Cómo justificas esta sobrecarga?

Dependiendo de la escala y la complejidad del proyecto, y el tamaño del equipo de desarrollo y la hoja de ruta futura del proyecto, esto puede ser un requisito importante y necesario.

Para el desarrollador mismo, así como para otras personas que podrían estar trabajando / manteniendo el proyecto en el futuro, esto es necesario. Es cierto que un buen código básicamente se documenta a sí mismo, pero cuando hay muchas dependencias entre módulos, plataformas, productos, etc., se necesita documentación explícita.

Dicho esto, estoy de acuerdo con usted en que esto (también) debería ser responsabilidad del equipo de control de calidad / operación. Los desarrolladores individuales no pueden ser los únicos responsables de esto. Incluso si todos hablan del mismo cambio, la forma en que cada persona describe un problema puede variar (bastante), y esto puede generar confusión en el futuro. Debe haber un protocolo de toda la organización sobre cómo se deben describir y clasificar / rastrear los problemas, de modo que cuando las personas * comiencen a buscar documentación pasada, haya una forma sistémica de encontrar cosas, en lugar de hacer Ctrl-F en más de 200 Documentos de Word, o peor aún, en Outlook.

Una buena práctica, en mi opinión, es integrar el control de origen, el seguimiento de problemas, la revisión de código y el control de calidad en un sistema interconectado, de modo que todos los datos estén intrínsecamente estructurados. Las personas documentan las cosas porque quieren verlas en el futuro. Por lo tanto, al construir un sistema, debemos asegurarnos de que cuando las personas necesiten examinar los datos, haya una buena manera de encontrar cosas.

Si está haciendo esto a mano, entonces suena un poco loco. Además del tiempo y el esfuerzo mental que roba el desarrollo del formulario, suena como un poco de CYA mezclado con una enorme lista de culpa. Incluso podría inducir efectos de cobra, de modo que las personas minimicen la “huella” del código que pisotean por miedo a ser culpados.

Habiendo dicho eso:

Si esto se puede automatizar (2 posiblemente se puede hacer con las herramientas de diferenciación del sitio, 3 se puede hacer con las herramientas de cobertura de código), y la administración usa esta información de manera responsable, esto podría minimizar el control de calidad, identificar áreas problemáticas del sitio y tener un mínimo Impacto en su productividad. Sin embargo, la gerencia debe estar dispuesta a asumir el éxito inicial en la implementación de 2 y 3.

http://en.wikipedia.org/wiki/Cob

Un aparte:

Cada desarrollador debe tener cuidado al construir una cerca entre ellos y el control de calidad y simplemente arrojar el código. Debe asumir la responsabilidad de su propio código en todo momento. Existe una fuerte tentación de simplemente registrar las funciones y tacharlas de su lista. Es importante recordar que una nueva característica con errores o efectos secundarios simplemente no se realiza.

A menos que esté trabajando en una caricatura de Dilbert, los gerentes no deciden ralentizar el desarrollo y crear procesos adicionales solo por diversión. Si introdujeron un proceso como este, supongo que fue en respuesta a algún problema que estaba ocurriendo. Parece que el problema era que el código se registraba y se activaba, lo que rompía el sistema de producción de maneras inesperadas. Probablemente alguien estaba despertando a las 2 de la mañana porque el sitio tenía problemas. La pregunta en la sala probablemente fue “¿cómo evitamos que ocurran estos problemas?” y la mejor solución que pudieron encontrar fue este proceso.

Mi atención se dirige a esta línea tuya:

Quiero codificar, incluir una descripción del cambio en mi check-in (siempre codificamos la revisión antes del check-in), y listo.

La cuestión es que registrar el código no significa que haya “terminado”. Ahora es parte del código que maneja su negocio, y debe implementarse, mantenerse, monitorearse, actualizarse a medida que se escribe el nuevo código, etc. Podría ser esa actitud exacta la que hizo que sus gerentes agregaran este proceso que obliga a los desarrolladores a pensar en el impacto de este cambio de código, cómo se ha probado, etc.

Si está interesado en conocer la justificación de esta sobrecarga, le recomendaría que tenga curiosidad sobre los problemas que esta documentación pretende resolver. Pregúntele a sus gerentes, o a los miembros más importantes de su equipo, qué está pasando aquí. Podría darle una visión más amplia de los problemas que ocurren con su software o su organización.

More Interesting

¿Realmente necesito aprender alemán si me han ofrecido un puesto en una empresa como desarrollador de software en Alemania?

¿Tiene sentido crear un colectivo para desarrolladores de software?

¿Cuáles son las mejores herramientas para la creación de perfiles de rendimiento de JavaScript?

¿Cuánta experiencia se requiere para un puesto de nivel de entrada en el desarrollo de software en una empresa financiera (banco, fondo de cobertura, IB) en Nueva York?

Como desarrollador de software, ¿hay alguna instancia en la que enfrentó un problema que le resultó demasiado difícil de resolver y cuestionó su elección de carrera?

¿Por qué los desarrolladores de software no escriben para cada código, un 'Documento de diseño'?

¿Cómo vería la industria del software a un candidato que haya trabajado como desarrollador de software en una universidad?

¿Cuál es la mejor computadora portátil para desarrolladores que aloja VMS y admite múltiples monitores externos?

Sacrifiqué mi tiempo, mi vida social, mis amigos para convertirme en desarrollador de software pero aún no puedo convertirme en uno bueno, ¿qué debo hacer?

¿Cómo puede un desarrollador de software profesional que trabaja, a mediados de los años 20, sin antecedentes financieros pasar a una carrera como comerciante de Wall Street?

Imagine que contrata a un profesional independiente para un trabajo de mantenimiento crucial en su software por una cantidad acordada de x. No concluye el trabajo, ¿cuánto de x le pagas?

¿Cómo puede un desarrollador de software aprender nuevas tecnologías mientras realiza un trabajo a tiempo completo?

Si desea convertirse en un desarrollador de software desde cero en 2017, ¿por qué aprender lenguajes de programación más antiguos como C ++ y JS en lugar de Rust, Go y Swift de hoy?

¿Dónde debería centrarme más: desarrollo web, diseño gráfico, aplicaciones de Android, aplicaciones de iOS, juegos o análisis de datos?

Aspirando a ser un profesional independiente en el desarrollo de software, ¿cómo empiezo?