¿Cuáles son las tareas comunes y poco creativas involucradas en el desarrollo de software?

Pregunta interesante: la respuesta ideal es “No hay ninguna”

Podría pagar a un equipo de personas de desarrollo de software poco creativas para desarrollar y mantener una aplicación. Ellos lo harían. La aplicación no haría lo que necesitabas cuando se hizo; pero su equipo estaría seguro al saber que siempre tendrán trabajo arreglando las cosas mientras la aplicación esté activa.

Alternativamente, le paga a un equipo de personas creativas de desarrollo de software para desarrollar y mantener una aplicación. Ellos lo harían. La aplicación probablemente no se vería como se imaginó cuando comenzó porque su equipo habrá colaborado para hacer mejoras durante el proceso de desarrollo. No tendrá que pasar mucho tiempo después del lanzamiento solucionando problemas o realizando tareas manuales porque tenía un equipo creativo de control de calidad que entendía los requisitos originales y era capaz de probar los requisitos, no solo los casos de uso aleatorio.

Como dijo Steve Jobs:

“Observé algo bastante temprano en Apple, que no sabía cómo explicar en ese momento, pero desde entonces he pensado mucho en ello. La mayoría de las cosas en la vida tienen un rango dinámico en el que el promedio al mejor es como máximo 2: 1. Por ejemplo, si va a la ciudad de Nueva York y obtiene un taxista promedio versus el mejor taxista, probablemente llegará a su destino con el mejor taxista un 30% más rápido. Y un automóvil; ¿Cuál es la diferencia entre el automóvil promedio y el mejor? ¿Tal vez 20%? ¿El mejor reproductor de CD versus el reproductor de CD promedio? ¿Tal vez 20%? Entonces 2: 1 es un gran rango dinámico para la mayoría de las cosas en la vida. Ahora, en software, y solía ser el caso en hardware, la diferencia entre el desarrollador de software promedio y el mejor es 50: 1; Quizás incluso 100: 1. Muy pocas cosas en la vida son así, pero lo que tuve la suerte de pasar mi vida haciendo, que es software, es así. Así que he construido mucho de mi éxito al encontrar a estas personas verdaderamente talentosas, y no conformarme con los jugadores ‘B’ y ‘C’, sino que realmente voy por los jugadores ‘A’. Y encontré algo … descubrí que cuando consigues suficientes jugadores ‘A’ juntos; cuando pasas por el increíble trabajo de encontrar a estos jugadores ‘A’, realmente les gusta trabajar juntos. Porque la mayoría nunca ha tenido la oportunidad de hacer eso antes. Y no funcionan con los jugadores ‘B’ y ‘C’, por lo que es auto-policial. Solo quieren contratar jugadores ‘A’. Entonces construyes estos bolsillos de jugadores ‘A’ y simplemente se propaga ”.

De: Steve Jobs en promedio vs mejores ingenieros de software

Configurando herramientas. IDEs. Supongo que hacer que funcionen correctamente, resonando con el código existente en el nivel global, es una de las cosas más comunes, aburridas y no creativas en sí. Por ejemplo, para configurar un host local en su sistema, debe seguir varios procedimientos predefinidos. Por ejemplo, si su empresa está usando php, y se supone que debe configurar localhost en su sistema usando WAMP (o la herramienta que elija), debe instalar y configurar dbs. Se supone que debe clonar el código de la compañía que se encuentra en su repositorio github, en su unidad local y configurarlo para tortoisegit o smartgit o cualquier herramienta que elija, para permitir que las cosas de pago, extracción, confirmación, etc. funcionen. Configurar localhost en WAMP es (muchas veces / o puede ser, a veces convertirse) en algo complejo en sí mismo.

Siendo ingeniero de software, ¡odio seriamente configurar entornos locales en mi sistema! No solo pone a prueba tu paciencia, sino que apesta, en serio. Quiero decir, todo el asunto puede llevar largas horas y puede salir mal, al final, arruinando todo tu día (¡o noche!).

Todas las tareas son comunes o “poco creativas” si las observa de esa manera. Pero alguien que no tiene pasión por el papel puede decir:

  1. Revisiones de código: es como escuchar un controlador de asiento trasero.
  2. Prueba de unidad: es más divertido construir algo que probarlo meticulosamente. Además, mi Ego me acaba de decir que todo funciona perfectamente.
  3. Comentarios y documentación – Ugh, ¿por qué escribir las cosas, a quién le importa?
  4. Corrección de errores: ¿quién quiere corregir los errores, y lo que es peor, los de alguien más?

Una vez más, estas tareas pueden considerarse “poco creativas”, pero hay formas muy creativas y poco comunes de realizarlas si uno estuviera tan inclinado.

Las pruebas unitarias son bastante poco creativas, escribir documentación (por ejemplo, JavaDoc, no documentos externos que pueden ser creativos) es otra. Configurando nuevos entornos, probando el mismo código en múltiples navegadores / resoluciones / plataformas / configuraciones también.

Estas son solo tareas que los desarrolladores normalmente hacen. Alrededor de los desarrolladores hay muchas más personas involucradas en el desarrollo de software, como QA, que implica mucho trabajo de prueba no creativo.

Reuniones