¿Hay comportamientos descuidados similares entre otros ingenieros, como la forma en que los ingenieros de software tienen código de espagueti?

Si. Considero que el código de espagueti es un caso específico del antipatrón más amplio de no pensar sistémicamente. Cuando diseña pensando en todo el sistema, organiza su código en módulos o clases o subrutinas o cualquier paradigma que permita su lenguaje. La incapacidad de comprender todo el sistema y, por lo tanto, imponer algunos resultados de estructura en el código de espagueti.

Algunos ejemplos análogos de ingeniería mecánica o industrial:

Se le dijo a un ingeniero de herramientas que construyera un conjunto de punzones para hacer un patrón de agujeros X en un producto. Las variaciones comunes a ese producto requieren patrones de agujeros Y y Z que son similares, pero diferentes. Darse cuenta de este diseño común / diferencia por adelantado le permitiría tomar una decisión informada sobre si es más rentable (inicialmente y en curso) construir tres herramientas separadas o una herramienta que tenga componentes que pueda intercambiar para crear los diferentes patrones. Al igual que el software, cualquiera de las decisiones podría ser correcta en diferentes situaciones dependiendo de variables como el costo de la herramienta, la tasa de trabajo por hora en el taller, la velocidad de producción y la velocidad del cambio de herramienta. Si el diseñador de la herramienta construyó una herramienta para X a ciegas porque le dijeron que lo hiciera sin pensar sistemáticamente, el taller más tarde requerirá construir una herramienta separada para Y y Z o desechar la herramienta X y reemplazarla con una herramienta modular para implementar las tres variaciones . De cualquier manera, este es un “proceso de espagueti” que quema tiempo y dinero que podría haberse implementado mejor con un pensamiento sistémico inicial.

Una compañía ha invertido en formadores de rollos alimentados con bobinas para producir un canal de chapa de metal de tamaño y grosor específico en cualquier longitud requerida. Este canal es bastante barato de producir y, como resultado, se reutiliza en muchos lugares de la línea de productos de la compañía. Después de varios años, surge una oportunidad de negocio para hacer un producto similar, que es el doble del tamaño total del producto convencional. La compañía quiere seguir reutilizando la forma estándar del canal, pero sus propiedades de sección, que antes eran adecuadas, ahora no son suficientes para resistir las cargas resultantes del producto más grande. Responden agregando refuerzos y miembros adicionales para reforzar la estructura inadecuada. Esta solución “parcheada” debe implementarse correctamente porque la soldadura de estas abrazaderas en algunos casos cambia las cargas distribuidas en cargas puntuales, lo que hace que la estructura falle de formas nuevas e inesperadas. La mejor solución general sería elegir no usar la forma de canal estándar, reemplazándola por un canal con bridas adicionales para mayor rigidez. ¿Se darán cuenta de esto o seguirán intentando diseñar este producto utilizando el canal estándar? Veo esto como análogo a tener una API que funcione bien en una situación, luego intentas aplicarla a otra y tienes que llamarla “solo así” estableciendo propiedades en un orden particular y asegurándote de no llamar a ese método porque Todo estallará. . . en lugar de simplemente importar en una biblioteca diferente optimizada para su nueva situación.

More Interesting

¿Qué pasa si nos deshacemos de las personas en el Gobierno y dejamos que una IA lo maneje?

¿Cuáles son los pros y los contras de SDLC?

¿Tendrán mayor demanda los ingenieros de firmware y hardware de sistemas integrados que los ingenieros de software de aplicaciones?

¿Qué significan algunas plataformas como Youtube para desarrolladores?

¿Algún ingeniero de software con experiencia de 1 a 3 años ha tenido una entrevista con Morgan Stanley, Bangalore? Si es así, ¿cómo fue?

¿Puedo hacer una aplicación móvil con HTML / CSS y JavaScript? Leer detalles

¿Cuáles son las especificaciones que debe buscar un programador al comprar una nueva computadora portátil?

Cómo medir el software de trabajo entregado diferente de contar Story Points entregados en un sprint

¿Puedes ganar más como desarrollador de software independiente que trabajar para una empresa?

¿Cuáles son los problemas legales relacionados con tener el número de seguro social o el número de impuestos y la dirección de un usuario en la base de datos de un sitio web?

¿Cuáles son las oportunidades de trabajo para los ingenieros de software en el campo del cricket?

¿Por qué a los programadores les encanta trabajar de noche?

¿Cómo desarrolla un analista de control de calidad los casos de prueba de cualquier documento? ¿Los casos se deciden al azar o hay una ruta establecida?

¿Cuáles son las ventajas de trabajar en Qualcomm como ingeniero HW / SW?

Cómo aprender a gestionar mejor los proyectos personales