¿Qué industrias desarrollan el software de la más alta calidad? ¿La calidad más baja? ¿Por qué? [cerrado

StackOverflow https://stackoverflow.com/questions/2981731

  •  24-10-2019
  •  | 
  •  

Pregunta

A partir de su experiencia, de aquellas industrias que desarrollan software personalizado para uso interno, como las compañías de servicios financieros, ¿cuáles producen software de mayor calidad medido en tasas de defectos y, más cualitativamente, facilidad de mantenimiento a largo plazo?

¿Qué es lo que más contribuye a este logro de mayor calidad? ¿Se debe a mejores prácticas de desarrollo de software, como un mayor énfasis en las pruebas o especificaciones? ¿Los desarrolladores que entienden mejor las herramientas o que son solucionadores de problemas fuertes? ¿Mejor comunicación entre los miembros del equipo?

En el otro lado, ¿qué industrias crees que producen el software de menor calidad? ¿Por qué?

¿Fue útil?

Solución

Esta es una pregunta realmente compleja. Si bien la NASA ciertamente ofrece un código de alta calidad para sistemas críticos de vida, o sistemas robóticos que deben funcionar a grandes distancias (piense en la reciente solución de software en Voyager 2, trece horas de luz de la Tierra), la calidad de la NASA no es barata. , o rápidamente. Línea para línea, probablemente sea el software más caro de la industria.

Su aplicación de informes básicos en un negocio no necesita ese tipo de calidad. Tampoco es rentable. Hay muchas maneras de mejorar la calidad, y varían en costos, desde simples y baratos (estándares de codificación) hasta recursos intensivos, difíciles e inmensamente lentos (escritos, pruebas matemáticas formales de corrección en cada método).

Las herramientas de gestión de proyectos, como la evaluación de riesgos, las autopsias de proyectos y la mejora continua, pueden ayudar a una organización a llegar a un conjunto adecuado de prácticas de calidad.

Sin señalar un dedo a una industria específica, diré que la práctica más destructiva, en términos de calidad, es la presión de tiempo. Nada induce a un programador a escribir un código descuidado tanto como plazos artificiales.

¿Cuáles son los requisitos para una mejor calidad?

La comunicación es crucial. Todos los desarrolladores del equipo deben saber en qué está trabajando todos los demás desarrolladores, al menos en un amplio alcance.

En segundo lugar, entendiendo que la calidad comienza el día en que se acepta el proyecto. Los requisitos deben ser entendidos y validados. Los factores clave incluyen asegurarse de que los requisitos identifiquen el problema a resolver, en lugar de usar una solución propuesta para evitar la definición del problema; Asegurarse de que los requisitos sean medibles y lo suficientemente específicos como para que tanto el desarrollador como el cliente puedan reconocer que una solución cumple con los requisitos; Asegurarse de que los requisitos se comuniquen claramente a todos los consumidores de requisitos, incluidos desarrolladores, evaluadores, escritores tecnológicos, personal de apoyo y gerentes. La calidad se mide mejor con los requisitos claramente establecidos; Si sus requisitos están mal definidos, entonces la calidad es, en el mejor de los casos, un ahorro.

Las revisiones son cruciales. No solo las revisiones de código, sino el análisis de requisitos, los diseños y quizás lo más importante, los planes de prueba. El papel de las pruebas es verificar que se hayan cumplido los requisitos. No puede probar requisitos malos o inexistentes.

Y eso lleva a comprender el papel de las pruebas. No puede probar la calidad en un producto. Las pruebas pueden verificar la calidad. Las pruebas pueden encontrar defectos y verificar que se hayan solucionado. Pero si las prácticas de calidad no se han seguido hasta el punto de que comienzan las pruebas, las pruebas no pueden solucionar eso.

Si bien no soy fanático del modelo de desarrollo de la cascada, creo que el desarrollo ágil puede llevar las cosas demasiado lejos hacia el otro extremo, y puede ser abusado fácilmente de una manera que duele la calidad. Creo que Scrum ayuda a aliviar algunos de los problemas de Agile; Scrum promueve la comunicación dentro del equipo, y reconoce que las estimaciones no son más que conjeturas educadas que pueden refinarse a medida que mejora el conocimiento.

Otros consejos

Siempre me ha gustado "Escriben las cosas correctas" que detalla el proceso de desarrollo de software para contratistas de la NASA.

¡Shuttle Software es definitivamente uno de los últimos lugares que le gustaría ver persistir su error!

En el otro lado, ¿qué industrias crees que producen el software de menor calidad? ¿Por qué?

Yo diría la web. Principalmente porque es extremadamente fácil de implementar, se pueden realizar muchas actualizaciones/correcciones sin notificación del cliente (o entrada). Parece haber una mentalidad mucho más relajada que en comparación con, por ejemplo, el software en caja.

Voy a tener que seguir adelante y decir que los bancos escriben el peor código: necesitan todo tipo de soluciones personalizadas, pero escribir código no es su enfoque principal, por lo que tienden a "hacer que funcione de alguna manera". Combine eso con el código de tratamiento como un widget que puede haber hecho enviándolo al mejor postor, las cosas que salen pueden ser realmente dignas de vergüenza.

Por supuesto, esto varía de un banco a otro y a la organización a la organización dentro de dichos bancos, pero en general, no veo que salga mucho código de calidad. Como alguien que ha trabajado con Banks durante 10 años, me considero un experto en software de Bank Crappy :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top