¿Los programadores piensan que su trabajo es más fácil que los trabajos en la mayoría de los campos de ingeniería y científicos?

Creo que la programación es bastante fácil. Más fácil que la mayoría de los tipos de ingeniería, definitivamente. No estamos tan atados por los materiales o la física u otras restricciones naturales. Hay límites para la potencia informática, pero están mejorando todo el tiempo y el hardware es bastante barato.

Entonces sí, bastante fácil.

Probablemente el indicador más revelador es cuántos sistemas físicos y eléctricos están siendo reemplazados por software que se ejecuta en una CPU de uso general, especialmente durante la creación de prototipos. ¡Es mucho más fácil desarrollar y probar software que crear un nuevo hardware! Un chip ARM barato recorre un largo camino.

Pero los problemas escalan . Es decir, dado que la tarea básica es fácil, podemos hacer cosas cada vez más difíciles con ella. Si piensa que las personas tienen una capacidad fija para la “dificultad” (una simplificación excesiva, por supuesto), los proyectos en los que trabajamos completan la cantidad restante gracias a lo fácil que es fundamentalmente la programación.

En otras palabras: la “facilidad” subyacente de la programación nos permite construir cosas cada vez más difíciles. Piénselo de esta manera: un proyecto de software razonable del mundo real tiene millones de líneas de código. Cada línea puede tener varias partes móviles. Rutinariamente estamos armando programas con decenas de millones de partes móviles . ¡Y eso ni siquiera habla de proyectos verdaderamente gigantescos con cientos de millones de líneas de código!

Entonces: creo que la programación es más fácil, pero el trabajo en sí no es porque el trabajo puede escalar.

Tenga cuidado con lo que le puede preguntar a un programador, ¡porque podría obtenerlo!

Esa es la sabiduría común en la comunidad de ingeniería de software. Verá, la parte más difícil de “nuestro” trabajo es pasar de las ilusiones a su realización concreta. ¡Y ESO en sí mismo es MUY difícil!

Personalmente, creo que es increíblemente difícil hacer que el software sea correcto. De hecho, (casi) no hay forma de saber si su arquitectura / diseño es correcto y si realmente se mantendrá en la naturaleza. Hay muchos cruces de dedos (junto con todos los análisis detallados, pero si algunos “nunca” han cruzado los dedos, probablemente estén mintiendo 🙂

Otras disciplinas como el diseño civil / automóvil / avión son increíblemente difíciles, pero realmente pueden probar sus ideas mucho antes de construirlo. No es más fácil, pero al menos su producto NO es infinitamente maleable como lo es el software.

Es raro ver que un edificio / estatua / monumento / automóvil / puente se modifique “a mitad de camino” ya que todos pueden ver que será una tarea gigantesca, literalmente. Sin embargo, es muy común obtener una solicitud de cambio en medio de un proyecto de software, y no, la mayoría de las personas realmente no entienden cuán “difícil” podría ser, ya que literalmente no pueden “ver” la complejidad.

Como programador, creo que mi trabajo es MUCHO más difícil que la mayoría de las disciplinas científicas y de ingeniería. Especialmente lo siguiente, que todavía nos equivocamos en nuestro campo, pero otros han llegado a una ciencia precisa (o buenas matemáticas):

  • Estimación de esfuerzo
  • Alcance de funciones
  • Presupuesto esperado
  • Simulación previa a la ejecución para probar / validar ideas
  • Mejores herramientas de diseño que solo cuadros y líneas simples (también conocido como UML 🙂
  • Especificaciones estrictas de requisitos que se pueden traducir a la perfección en diseño / producto (a diferencia del software, donde la ambigüedad es el nombre del juego). Junto con un gran diseño que puede traducirse sin problemas en un producto (dibujos CAD / CAM, por ejemplo).
  • Sin síndrome IKIWISI (lo sabré cuando lo vea): la mayoría sabe lo que quieren y lo que implica.
  • Gestión de riesgos: principalmente baja / media / alta, ya que cada proyecto / situación es diferente. No hay números reales / históricos para jugar.
  • Desarrollo de productos como la línea de ensamblaje: no todos pueden cambiar / modificar las tareas de otros. Cada parte de la línea de montaje está especializada y también lo están los humanos asociados. Simplemente no puede andar con el proceso / producto completo como lo considere adecuado
  • … y MUCHOS más 🙂

Por lo tanto, no creo que mi trabajo sea más fácil que otras disciplinas científicas / de ingeniería. En todo caso, es mucho más difícil, muchas posibilidades para crear / resolver problemas de investigación y para personas como yo, ¡DIVERSIÓN INCREÍBLE y felicidad absoluta!