Construir cualquier función de software tiene riesgos independientemente de los plazos. Existen técnicas que pueden usarse para mitigar los mayores riesgos a fin de aumentar las posibilidades de que entregue software de trabajo dentro de las limitaciones de tiempo que tiene.
Utilizamos estas técnicas todos los días para ahorrar tiempo y dinero a los clientes sin sacrificar la calidad. No es raro que creemos una aplicación en 2-3 meses en la que un cliente dijo que había estado trabajando durante años, o que muestren un aumento de 5 veces o más en la velocidad después de adoptar una mejor estrategia de gestión de productos.
El motivo es que una onza de prevención vale una libra de cura: una pequeña planificación inicial le ahorrará tiempo y lo ayudará a abarcar su trabajo para cumplir con los plazos. Estas técnicas pueden aplicarse a un proyecto que debe completar en 1 mes, 1 semana o incluso 1 día:
- ¿Cómo comenzó la cultura de oncall en la industria del software?
- ¿La metodología ágil está empeorando la vida de los desarrolladores?
- ¿Por qué a los programadores les encanta trabajar de noche?
- ¿Por qué alguien sería un desarrollador de juegos, si es más difícil, poco disfrutable y de bajos salarios en comparación con otros trabajos de ingeniería de software?
- ¿Dónde puedo comprar softwares matemáticos?
1. Utilice las herramientas y técnicas de descubrimiento rápido
No solo comience a escribir código. Identificar nuevos requisitos o cambios que debe realizar durante la fase de construcción de un proyecto es una práctica que requiere mucho tiempo. En su lugar, use técnicas de creación rápida de prototipos para definir los requisitos y examinarlos antes de construir. Esto le permitirá cambiar su prototipo en lugar de su código , lo que le ahorrará tiempo.
Ejemplo de proyecto pequeño: demuéstrate a ti mismo que UX funciona bien usando bocetos y tramas para maquetas del producto.
Ejemplo de proyecto grande: revise los bocetos y las tramas (o prototipos) con los principales interesados y usuarios antes de construir.
Esta semana hice 4 iteraciones de una aplicación en 2 días usando Balsamiq. Si se tratara de cambios en el código, podrían haber tardado de 2 a 3 semanas por iteración .
* El tiempo real empleado trabajando fue de aproximadamente 4-5 horas
2. Sea comprensivo durante el descubrimiento / creación de prototipos
Al definir los requisitos del producto utilizando técnicas de creación de prototipos, asegúrese de ser exhaustivo. Defina estados de error, estados vacíos, casos de uso requeridos y roles, etc. Elimine el texto lorem ipsum y use contenido real para evitar problemas posteriores con contenido no disponible o inesperado.
Defina cada botón, interacción, transición, etc. Estos son los detalles que se sumarán y le costarán tiempo. Más importante aún, le costarán tiempo que no planificó, lo que significa que estará operando con suposiciones poco realistas sobre lo que puede hacer.
La definición de estos detalles le dará una idea más clara del alcance de su proyecto.
Aquí hay un ejemplo de solo una pequeña parte de la página de resultados de un cuestionario. En el primer ejemplo, los diferentes estados y acciones no están definidos, y parte del texto sigue siendo lorem ipsum. En el segundo ejemplo, se consideran todos los casos, se define el texto y se definen todas las acciones:
Malo: alcance poco claro
Bueno: define el alcance completo:
3. Ajuste el alcance para que coincida con los plazos
Con sus requisitos integrales de producto (wireframes) ahora puede proporcionar estimaciones más precisas. Calcule el trabajo que debe hacerse, sea realista en función de su experiencia pasada, incluya tiempo para las pruebas de aceptación y los comentarios que obtendrá durante la fase de construcción.
Eche un vistazo a cuánto tiempo llevará construir su producto o función en función de sus estimaciones y la línea de tiempo actual, luego ajústelo en consecuencia. Cuando trabajo con un cliente cuyo alcance deseado no coincide con su presupuesto, siempre pregunto a los ingenieros “¿qué crees que podríamos eliminar para ahorrar la mayor parte del tiempo? ¿Existen formas alternativas de implementar alguna función que ahorre tiempo?”
En este ejemplo, eliminamos una función con menor prioridad que el resto de la aplicación. La función (indicada a la izquierda con la etiqueta “FUERA DEL ALCANCE”) se agregó en la siguiente iteración, lo que nos permite cumplir con la fecha límite y continuar creando iterativamente un gran producto:
Resumen
1. Utilice herramientas rápidas de creación de prototipos para realizar descubrimientos y alcance
2. Sea orientado a los detalles para descubrir el alcance completo de su próximo trabajo
3. Priorice las funciones y modifique su alcance para que coincida con su fecha límite