Ingeniería del software: resolver
problemas mediante código
Hay que entender el problema
Hacer un modelo del mismo
... Y de la solución
Mentalidad ágil:
Enfocada a las
personas, afronta necesidades reales
Empatizar
Problema: los
agricultores necesitan vender a precios más
justos
Empatía: personalizar los tipos
de usuarios de una aplicación
Historias de usuario
Los deseos de los clientes
Todos los clientes
Los hitos se organizan alrededor de
productos mínimamente viables
Algunos pueden ser internos: diseño
de una clase, por ejemplo
Hitos: hoja de ruta del
desarrollo
Hito 0: diseño e implementación de la(s) clase(s) necesarias
para trabajar con los precios de los productos en
lonja
Válido: si compila
Hito 1: Hito 0 + lógica de validación y
procesado de precios
Entender
el sistema de tipos que ofrece el lenguaje
Privacidad de las variables
Herencia/encapsulación
Mutabilidad
Domain
driven design: DDD
Puente entre HUs (deseos) e issues (implementación)
Objeto valor: precio individual
¿Necesita un histórico?
Si → inmutable
No → Fácil de recuperar
Entidad: histórico de precios (¿por
producto?) + lógica de negocio
Agregado: Todas las entidades
(todos los productos).
Nunca hay una sola forma de
hacer las cosas
Documentar la toma de decisiones
Issues: puentes entre HUs y PMVs
Como programador, necesito conocer
los precios con 2 decimales, con las unidades estándar para
cada producto, identificando de forma única la lonja y
la fecha.
Los issues plantean problemas
Se abren para discutir detalles de
implementación, o se proponen en un PR