¿Cuáles son algunas malas experiencias que ha tenido con la gestión del desarrollo de software?

¡He trabajado en una empresa que tiene 40,000 ingenieros! En esta compañía, la mayoría del equipo de desarrollo todavía usa LOC (línea de código) para medir KPI.
Y no hay pruebas unitarias, ni revisión de código, y el cronograma es muy estricto. En la mayoría de los casos, el retraso no está permitido.
Hay otro gran problema: los desarrolladores experimentados renunciaron o se transfirieron a la administración y ya no hacen codificación, la mayoría del código está escrito por nuevos empleados y alguien con generalmente menos de 4 años de experiencia.

Tenemos el sistema CI (integración continua), pero la creación de interrupciones es un evento serio para los desarrolladores, afectará su KPI, el resultado es que los desarrolladores deben tener mucho cuidado (no quiero decir que mantener la compilación exitosa no sea importante) al enviar el código . Para reducir las interrupciones de CI, algunos desarrolladores solo envían código una vez por semana …

Puedes imaginar cómo es la calidad del producto. Hay muchas horas extras y el soporte / mantenimiento es la parte más difícil, pero no es un problema para la compañía: ¡hay 40,000 ingenieros!

Esto es algo sobre lo que fácilmente podría escribir un libro, pero pondré mis $ .02.

Una de las cosas más importantes para gestionar es el nivel en el que se produce la creatividad. Algunos equipos manejan pequeñas decisiones de desarrollo desde la cima, y ​​esto elimina toda la creatividad de la ingeniería de software y hace que los ingenieros odien sus trabajos. Otros equipos discuten sin cesar sobre los puntos finos de diseño y esto resulta en una gran pérdida de tiempo.

La mejor manera que he visto para administrar esto es hablar solo de interfaces en reuniones de diseño, a menos que el ingeniero lo solicite. El ingeniero que va a escribir el código debe ser responsable de todas las decisiones de implementación, siempre que su código tenga un rendimiento adecuado y responda a todas sus interfaces correctamente. Todas las demás opciones resultan en demasiadas reuniones incómodas y una reducción significativa en la satisfacción laboral.

Lamentablemente, este patrón requiere una gran confianza por parte de la administración. Si están realmente preocupados, deben pedirle al ingeniero que describa lo que están planeando y solo proporcionar sugerencias si ven algo que viola la política de la compañía, amenaza el desempeño o sugiere que el ingeniero no comprende el problema que está tratando de resolver. Deje que el ingeniero lo escriba y luego aborde todas las demás preocupaciones en la revisión del código.

En un momento u otro, todos hemos sido parte de equipos que hacen donaciones de gestión de software. Requisitos indocumentados, aumento de alcance, confirmaciones de DEV no comprobadas, etc. Pero también hay problemas de mentalidad y lo más destructivo es cuando la gente dice ‘somos desarrolladores de software’ y olvidamos que sin buena calidad y sin garantizar que se envía el código desarrollado / desplegado fácilmente, su trabajo no es bueno.

Excel es para rastrear errores como PowerPoint es para el liderazgo. *

* Eso es probablemente un poco duro; Excel es una gran herramienta y puede desempeñar muchos roles útiles en el desarrollo de software. Simplemente no es el mejor sistema colaborativo de seguimiento de errores que existe, o en absoluto.