Empieza con TDD
El primer paso para todo producto exitoso es un test.
Desarrollar producto es resolver un problema. Es construir una solución que cubra las necesidades de un usuario. Para ello, lo primero es tener claras qué necesidades tenemos que cubrir, cuál es la serie de requisitos que nuestro producto debe tener.
Y el primer paso para desarrollar un buen producto es escribir un test. Un test que capture justo esos requisitos.
El Test-Driven-Design o TDD es eso: empezar escribiendo un simple test que nace en rojo y que describe exactamente lo que quieres conseguir. Luego lo pones verde, implementando la solución que resuelve el problema.
La clave aquí es hacerlo de la manera más directa posible1, yendo al grano. La idea es poner el test en verde con la menor complejidad que puedas, esto hace que evites sobre-ingeniería en esta etapa y que tu código acabe siendo todo lo simple que puede ser (no te vas por las ramas vaya).
Después es momento es refactorizar ese código (porque claro, luego lo tendrás mantener). Es hora de restructurar, de limpiar, de aplicar consensos y de dejar las cosas para la posteridad.
El ciclo vuelve a empezar, escribes un nuevo test describiendo el siguiente requisito a cubrir y sigues iterando en ciclos: test en rojo, test en verde y refactor.
Y es que todo empieza con un test. Definiendo el primer test estás alineando el código con lo que quieres que ocurra. Implementando la solución te centras única y exclusivamente en resolverlo. No te fijas tanto en la estructura o los pequeños detalles, sino en solucionar el problema que has venido a resolver.
Y es que usar TDD no es solo una cuestión técnica sino no también psicológica. Al escribir primero los tests te aseguras de tener una visión clara de lo que quieres conseguir y de cómo vas a medirlo. Al escribir después el código te aseguras de que funciona y de que hace lo que debe hacer. Ni nada más, ni nada menos. Al ponerlos en verde te aseguras de que has cumplido con tu objetivo y de que puedes entregar un producto de calidad.
Cuando terminar un ciclo de TDD has conseguido lo que pretendías: resolver la necesidad del usuario.
Algunas de las ventajas que irás descubriendo haciendo TDD es que mejorarás la calidad de tu código ya que obtendrás el diseño más simple posible. Reducirás el número de bugs ya que los podrás detectar y corregir antes de que se acumulen o se propaguen. Y refactorizarás más cómodamente ya que, siempre que los tests sigan en verde, sabrás que no has roto nada.
Y lo más importante: aumentarás la confianza y satisfacción de tus usuarios ya que les entregarás un producto que primero, cumple con sus expectativas, y segundo, no falla.