Los aspectos típicos que he visto en las definiciones de hecho son cosas como:
- ¿Las pruebas unitarias están escritas y en ejecución para el nuevo trabajo;
- ¿Se puede implementar el nuevo código en dev / test / staging sin romper una compilación;
- ¿El código ha sido revisado por uno o más desarrolladores?
- ¿El código escrito cumple con los estándares de codificación del equipo? y
- ¿El PM / PO ha firmado el trabajo?
En última instancia, cada equipo debe decidir cuál es su definición de hecho, teniendo en cuenta las definiciones de los equipos de los demás listos para llevar su código a la siguiente fase del proceso.
Es importante recordar que la definición de hecho no se trata de cumplir con las expectativas del cliente o las partes interesadas. La definición de Listo se trata de que el equipo decida qué “verificaciones” técnicas deben implementarse para garantizar que lo que hicieron probablemente cumpla con un cierto nivel de calidad. Las pruebas automatizadas no aseguran que el cliente esté contento con el resultado, pero se aseguran de que lo que construyó cumpla con los criterios de aceptación de la historia en la que está trabajando. La revisión de código no garantiza que el cliente esté satisfecho con el resultado, pero minimiza la probabilidad de que un error pase por el equipo en función del código que se ha escrito.
- ¿Cuáles son algunas ideas de aplicaciones simples, mínimas y de una página?
- ¿Cuántos desarrolladores y cuánto tiempo tomaría escribir una GUI sólida para Linux desde cero para que coincida con la calidad de Windows y Mac OS?
- ¿Por qué las codificaciones de software no son visibles una vez creadas?
- ¿Cómo es que, a fines de 2014, todavía hay muchos desarrolladores de software que piensan que las pruebas unitarias son una pérdida de tiempo?
- ¿Es difícil aprender las pruebas de software?