No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Definiendo el “Code Complete”

14/25
Recursos

¿Qué es el code complete y por qué es crucial en el desarrollo de software?

El término "code complete" es fundamental en el mundo del desarrollo de software. Este concepto se refiere al momento en el que una tarea o funcionalidad está completamente terminada y no requiere más líneas de código antes de entregarse al cliente. Saber identificar cuándo hemos llegado a esta etapa es crucial para garantizar que un producto o funcionalidad está verdaderamente listo para ser lanzado. La relevancia de este concepto radica en asegurar que se cumpla con todos los requisitos de negocio y que el cliente reciba un producto de calidad sin defectos.

¿Cómo definimos que una funcionalidad está code complete?

Para definir que una funcionalidad está "code complete", debemos considerar varios puntos importantes:

  • Casos de uso: Son escenarios específicos que debemos desarrollar, implementar y entregar al cliente. Por ejemplo, un caso de uso podría ser que un editor pueda subir una reseña de una cámara.

  • Plan de pruebas: Es esencial tener un plan bien definido. Las pruebas pueden incluir registrar un usuario, crear una reseña y permitir que los visitantes la lean. Cada una de estas actividades se traduce en tareas concretas que debemos cumplir.

La evaluación de estos aspectos nos asegura que hemos satisfecho los requerimientos del cliente y que el producto está efectivamente terminado.

¿Qué herramientas nos ayudan a definir el code complete?

Los planes de pruebas, los casos de uso y herramientas de planificación como Trello son fundamentales para gestionar el avance de un proyecto. Aquí te comparto un ejemplo de cómo utilizar Trello para llevar un control efectivo:

  1. Backlog: Incluye las actividades o tareas necesarias para completar un caso de uso específico, como implementar un endpoint para una API de subir reseñas.

    - Implementación de endpoint para API de subir reseñas (API POST)
    
  2. Tareas de prueba: Crear pruebas unitarias para validar el correcto funcionamiento de las implementaciones.

    - Test unitario para endpoint de API
    
  3. End to end tests (E2E): Realizar pruebas integrales que simulen el flujo completo desde el registro de un usuario hasta la lectura de una reseña por un visitante.

    - Test E2E de subir reseñas y permitir su lectura
    

El uso de herramientas y una buena planificación permite asegurar que todas las funcionalidades necesarias están documentadas, desarrolladas y probadas, garantizando así que el proyecto cumple con los estándares de calidad establecidos.

¿Cómo aseguramos que no hay tareas pendientes al llegar al code complete?

Un proyecto solo se considera "code complete" cuando no quedan tareas pendientes en el backlog. Este estado implica que no hay necesidad de añadir más código, ni siquiera para realizar nuevos tests. Es importante recordar que:

  • Cada tarea debe ser acompañada de una justificación clara y procedimientos de prueba que verifiquen su correcta implementación.

  • La integración del desarrollo debe contemplar todos los pequeños detalles, como el funcionamiento adecuado del registro de usuarios para poder crear reseñas.

Al final, la clave está en documentar todos los procesos e integraciones en un backlog, lo que permitirá verificar que cada funcionalidad está lista para ser utilizada sin problemas.

Siempre recuerda que estos conceptos y prácticas son la base de cualquier proyecto exitoso. Continúa aprendiendo, planificando cuidadosamente y no olvides llevar a cabo pruebas exhaustivas para alcanzar el éxito en tus proyectos de desarrollo de software. ¡Mucho ánimo!

Aportes 5

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para esta clase, recomiendo MUCHO el Curso de Flujo de Desarrollo Moderno CodeStream. Ya que podemos usar CodeStream junto con Trello.
.
Lo genial de CodeStream es que puedes marcar una actividad como hecha una vez que tienes “Code Complete” y puedes adjuntar dicho código. Además CodeStream tiene muchas otras ventajas como enviar un Pull Request desde el editor o incuso mande un Feedback Request para no tener que esperar a el Pull Request para saber si tu código está bien o no, uando CodeStream puedes llegar a la etapa de “Code Complete” de una forma más rápida sin esperar a ver si hay algo no aprobado dentro de tu código ^^

Dentro del desarrollo de software, y dependiendo del comportamiento del equipo para con el proyecto, habrán metodologías que guiarán a la conclusión exitosa.

A mí me encanta Kanban, porque literalmente cada paso que hacemos para llegar al “code complete” esta ponderado para con la contribución del otro compañero, que en conjunto lo llamamos como cultura de trabajo

Les dejo el enlace de Kanban en platzi

Se puede relacionar con el Definition of Done de la metodología scrum.

Cada equipo Scrum tiene su propia definición, pero la «definición de hecho» puede ser una simple lista de actividades (comentarios de codificación, pruebas unitarias, documentos de diseño, etc.) o simplemente una serie de acuerdos que agregan valor verificable y demostrable al producto. Es un entendimiento compartido de lo que significa que una tarea está terminada.

Les dejo un enlace donde puede leer más al respecto

En la tercera forma normal hay probabilidades que ocurra esto?
.
https://platzi.com/clases/2164-practico-backend/34213-definiendo-el-code-complete/?time=554
.
En un equipo de desarrollo estas posibilidades se validan primero en papel antes de ir a código. Las reglas de validación de lo que entra y sale de cualquier modelo de datos es algo que se analiza muy al detalle y son estas reglas las que permiten automatizar las pruebas en la mayoría de los casos
.
Hay que tener mucho cuidado con el público que esta consumiendo esta historia de usuario.

En estos casos preferiblemente definir un CheckList para definir un flujo lógico dentro de la tarea

“Divide y vencerás…!”

https://platzi.com/clases/2164-practico-backend/34213-definiendo-el-code-complete/?time=350