¿Cuáles son algunas cosas interesantes relacionadas con la ingeniería de software que solo los ingenieros antiguos saben?

Estas son algunas de las cosas que me han pasado por la cabeza, cosas que me he dado cuenta a lo largo de los años, principalmente como resultado de la gran cantidad de años:

  • La programación orientada a objetos está sobrevalorada: sí, los objetos son excelentes para pensar en un problema, pero tienden a interferir cuando llega el momento de GSD (Hacer las cosas ). Todavía soy un profesional y defensor de la OOP, pero mi celo ha disminuido a lo largo de las décadas. Mantener el modelo de objetos “puro”, al mismo tiempo que hace que las abstracciones sean útiles e intuitivas es como pulir una bala de cañón. Quiero decir, proyectil brillante o no, se trata de dar en el blanco.
  • Las soluciones elegantes no son mejores soluciones: el cliente / usuario normalmente no puede ni quiere ver su arquitectura, diseño y código. En lugar de perseguir la elegancia, vuelve a GSD. La elegancia, y con esto quiero decir simplicidad, claridad y brevedad, aumenta a medida que el desarrollador madura. Los desarrolladores más antiguos, naturalmente, producen soluciones más elegantes, si no por otra razón que tienen más experiencias para sacar.
  • Los desarrolladores son malos optimizadores: no puedo decir cuántas veces me he preocupado por exprimir el rendimiento de una solución solo para descubrir que era al menos diez veces más rápido de lo necesario antes de comenzar a ajustarlo. Y muchas veces mis intentos preliminares de optimización simplemente no valen la pena. Es mejor terminar una versión del producto, ponerla en manos de algunos usuarios, luego perfilar la solución, ya que se está utilizando para encontrar los lugares que necesitan ajustes.

More Interesting

¿Cómo alguien que teme programar entrevistas se convierte en ingeniero de software?

Soy ingeniero de software, y mi equipo actualmente está luchando con la calidad del software que estamos lanzando. ¿Qué tipo de enfoque puedo adoptar yo / mi equipo para lograr una mejor calidad de software?

Cómo renunciar a su trabajo como ingeniero de software

Cuando se enfrenta a un problema, ¿en qué se diferencia el proceso de pensamiento de un ingeniero de sistemas de un ingeniero de software?

¿Qué debe hacer un estudiante indio de nivel 2 o 3 para conseguir un trabajo en Google, Microsoft o Facebook? En qué competencias como Codejam, Topcoder, etc. y exámenes como APACetc deberían participar.

¿Quién es el mejor ingeniero de software del mundo?

Cómo lograr la transición de QA a ingeniero de software

Tengo 38 años, tengo una maestría en CS, pero nunca he tenido un trabajo como ingeniero de software. ¿Cómo puedo conseguir un trabajo SE decente en el área de SF Bay?

¿Qué valen los ingenieros de software después de graduarse de la Universidad Técnica Estatal de Bauman Moscú? ¿Qué empresas están asociadas con BMSTU?

¿Qué debo comenzar a hacer para sentirme bien conmigo mismo como desarrollador de software?

¿Qué te enseña tu Uni / College en Computer Sci y Software Engi?

¿Por qué las personas trabajan en campos especializados como los sistemas operativos?

¿Qué opciones tiene un ingeniero de software harto en la vida, excepto por el sufrimiento?

¿La vida de un ingeniero de software / TI es muy dura en la India?

¿Puedes ser ingeniero de software si solo conoces Python y tienes un título que no es STEM?