Software desde 0 – 1 – Proyectos vs Operaciones

Software desde 0 – 1 – Proyectos vs Operaciones

La creación de cualquier Software es un proyecto. Esa es la realidad de la industria y es un tema completamente normal para todos los que la formamos. Sin embargo, me encuentro con mucha gente que a veces no tiene claro todo el proceso que es definir y ejecutar dicho proyecto. Cuando están enfrente de un nuevo cliente, no saben qué hacer. O cuando les piden calcular los esfuerzos para una funcionalidad, no saben por dónde empezar.

En la siguiente serie de Posts, dejare un poco el código, y me voy a enfocar a explicar cómo funciona todo el proceso de hacer software. Como nace un proyecto, como se definen las funcionalidades, como se realiza la ejecución y como se realiza la entrega de dicho software. Todo desde un punto de vista del proceso, cuáles son las etapas, cuáles son los roles, y cuáles son las tareas que se requieren. Y veremos pequeñas guías para cada una de esas tareas. Todo con la finalidad de que no parezcas perdido durante la ejecución de un proyecto, y que puedas tener acordeones y guías de lo que tienes que hacer, fuera de escribir código. También te ayudará a entender cómo debe de ser el proceso para la decisión, y entender las actividades que ejecutan otros integrantes del proyecto.

Aunque estarán más enfocados para Programadores, principalmente nivel Jr., creo que te ofrecerá mucho valor a cualquier persona que participa en un proyecto de desarrollo de software, no importando si eres Usuario Final, Analista, Diseñador, de Sistemas o el Jefe. Todos los roles deberían de entender cómo funciona el proceso para poder maximizar el resultado del proyecto.

Diferencia entre Proyecto y Operación

Un concepto indispensable que toda persona en el mundo profesional debe de entender, es que todos los trabajos que todo el mundo realiza en una empresa se pueden dividirse en: Operaciones y Proyectos. No existe una tercera opción. No es una vs la otra. Es la realidad de cómo funciona una empresa y casi todas tienen las dos. Es importante entender cuál es la diferencia entre cada uno. Y para esto usare mi ejemplo favorito de una empresa de coches.

Proyectos

Un Proyecto es una serie de tareas que tienen un principio, y un final (duración), y con un resultado único esperado (nuevo), y requieren una serie de recursos finitos para ejecutarse (presupuesto). Todo para cumplir objetivos específicos. Dichos objetivos usualmente se documentan en lo que llamamos el alcance, que es un resumen de todo lo que se pretende hacer en el proyecto. El proyecto son todas las tareas que ejecutan los participantes para cumplir con dicho alcance, para que así el proyecto cumpla los objetivos. Una vez que se finaliza el alcance y se cumplen los objetivos, el proyecto finaliza. Como ejemplo:

“Proyectos son tareas con una duración predeterminada, con un presupuesto específico, para crear algo nuevo una sola vez.”

La empresa VW va a sacar un nuevo Jetta. Para esto junta a un equipo que participará en el proyecto.

  • El equipo consta de ingenieros mecánicos, ingenieros de producción, diseñadores de exteriores, diseñadores de interiores, personal administrativo, administradores de proyecto, marketing, proveedores etc.
  • Se pone una fecha de 2 años para la finalización del proyecto.
  • Se establecen los objetivos, (coche 4 puertas, 5 metros, moderno, costo de producción X, precio de venta Y. 5 estrellas de seguridad, etc.), y el alcance.
  • Se crea un listado de las tareas a ejecutar, se dividen las tareas por roles.
  • Se ejecutan las tareas, siendo cada área la responsable de ejecutar lo suya, pero participando entre todas para la toma de diferentes decisiones:
    • Diseñadores de Exteriores trabajan con Ingeniería Mecánica para verificar que las dimensiones queden en la plataforma, que los motores seleccionados entren, que todas las piezas mecánicas puedan funcionar.
    • Diseñadores de Exteriores trabajan con los de Interiores para verificar se siga la misma filosofía de diseño, y que el coche sea usable.
    • Equipo de Ingeniería Mecánica participa con Ingeniería de Producción para validar que los materiales seleccionados se puedan ejecutar en producción masiva.
    • El equipo de Marketing trabaja con los equipos de Diseño y de Ingeniería para crear la publicidad.
  • Se finaliza el diseño del coche. Se habilita la planta y a los proveedores para comenzar la producción, se pasa a operaciones.
  • Se finaliza el proyecto. Los participantes se mueven a nuevos proyectos o a áreas de producción.

Estoy seguro de que muchos hemos participado en proyectos que se extienden, y se extienden, y se vuelven a extender. Hay que tener cuidado con este tipo de proyectos, porque suelen finalizar en proyectos fallidos. No es lo mismo extender con proyectos adicionales que cambiar el alcance de un proyecto.

Operaciones

La Operaciones son una serie de tareas que ejecutan una y otra vez (sin duración especifica), con la intención de producir el mismo resultado múltiples veces (repetir), utilizando un flujo constante de recursos (costo). El objetivo de las operaciones es hacer más eficiente la repetición. Áreas de las empresas como Producción, Administración, Contabilidad, Compras, Ventas, etc., suelen ser áreas cuyas tareas trabajan más en un esquema de operación. Siguiendo con nuestro ejemplo:

“Operaciones son tareas que se ejecutan una y otra vez, con un flujo constante de recursos, con la finalidad de producir el mismo resultado múltiples veces.”

La empresa VW comienza la producción de su nuevo Jetta.

  • Se reciben las piezas.
  • Se inicia la línea de ensamblaje.
  • Se monta el motor.
  • Se instalan los interiores.
  • Se instala la carrocería.
  • Se pinta la carrocería.
  • Se envía a almacén.
  • Se reciben las piezas (volvemos a empezar)

Esto es lo que en desarrollo le llamamos un bucle. Y aunque en desarrollo casi siempre es un área que trabaja en proyectos, principalmente en consultoría y desarrollo a la medida, también se puede trabajar como un área de operación. En ejemplo son los equipos que trabajan en el desarrollo de un producto en especifico (como startups), donde se agregar constantemente nuevas funcionalidades y se publican a producción.

Tabla Comparativa

Recuerda, no es una competencia entre una y la otra. Ambas existen, y lo mas probable es que todos en algún momento participemos en las 2, incluso al mismo tiempo. Lo importante es que entiendas que existen. Y que entiendas que las tareas que estas ejecutando pertenecen a una o a la otra, y en base a eso saber cómo actuar. Como en el mundo del desarrollo de aplicaciones de línea de negocio casi siempre

El Software no se Fabrica

Hay un término en la industria que no me gusta mucho el de “Fabrica de Software”. Muchos usan este término para hablar de empresas que hacen desarrollo de software. Como cualquier persona que te dediques a proyectos de Software te pido, por favor, no los uses nunca. Es un insulto a la creatividad y el proceso que requiere tu trabajo. Si escuchas que alguien más lo usa, corrige a la persona de manera respetuosa. Simplemente dile: “El Software no se fabrica, el Software se construye”.

“No se siente igual perder algo fabricado, que la destrucción de algo construido”

Una fábrica se dedica a construir el mismo artículo, una y otra vez, de manera repetitiva (operaciones). Busca la eficiencia en la repetición. Una fábrica busca empleados funcionan más como engranes de una maquinaria. Si uno se descompone simplemente se cambia. Se busca la calidad en hacer la misma serie de tareas, para generar un producto estandarizado. El desarrollo de software no funciona así.

“Llevar una fábrica es Operación. Crear software es un Proyecto.”

La creación de software es más similar al proceso de construcción de un edificio o una casa. Cuando comienza puedes tener todos los materiales a la mano, pero el resultado final es único y se debe de adaptar a los requisitos del usuario y a la situación del momento. El desarrollo requiere de la solución constante de problemas y poderse adaptar. Puede que hagas muchos desarrollos similares y que reúses mucho de tu código, pero al igual que dos casas hechas con el mismo plano, el resultado final es diferente. Por eso muchas veces hablamos de Arquitectura de Software.

Antes de terminar es importante recordar que estamos hablando del proceso de construcción inicial del software. El proceso de instalación, mantenimiento y soporte en sistemas es otra historia. Una de las palabras de moda son los DevOps, que pretende conciliar la naturaleza del Proyecto de Software con la naturaleza Operacional que implica su instalación, soporte y mantenimiento.

Resumen

Este es el primer post de una nueva serie enfocada en explicar todo el proceso de un proyecto de software. Son las cosas fundamentales que creo toda persona que participa en este tipo de proyectos debería de saber. Puedes usarlo como referencia cuando estas comenzando un proyecto. La idea es darte una guía para cada una de las tareas que se requieren, quitando todo lo que es código o sistemas.

Para esto primero tenemos que entender que todas las tareas de una empresa se pueden clasificar en Proyectos u Operaciones. No son uno u el otro. Ambos existen, en casi todas las empresas en paralelo.

Los proyectos de Software suelen considerarse Proyectos, aunque hay casos en los que mas bien funcionan con operaciones (producto único que se le va a agregando funcionalidad, startups). Lo que, si es que el Software no se Fabrica, se Construye. Crear software no se puede comparar a la manera en la que funciona una fábrica, ya que cada producto es único, es mas comparable con Arquitectura y Construcción.

Como resumen del post:

  • Todas las tareas de una empresa se pueden clasificar en Proyectos u Operaciones.
  • Proyectos son tareas con una duración predeterminada, con un presupuesto específico, para crear algo nuevo una sola vez.
  • Operaciones son tareas que se ejecutan una y otra vez, con un flujo constante de recursos, con la finalidad de producir el mismo resultado múltiples veces.
  • El Software no se Fabrica, se Construye.

This Post Has One Comment

Deja un comentario

Close Menu