Friday, October 31, 2014

Verbos vs Nombres



Flujo análisis (continuo) en un proyecto
  • Centrar conversaciones en identificar comportamientos (behaviours). Intentamos identificar acciones, verbos, flujos, eventos. Viene fenomenal para OOP centrado en casos de uso o para un enfoque DDD y flujos de negocio complicados.
  • Centrar conversaciones en identificar comportamientos concurrentes en el sistema. Nos obliga a identificar relaciones entre esos comportamientos y nos ayuda a hacer un diseño escalable y fácilmente implementable mediante servicios independientes que encapsulan estado y que se comunican mediante mensajes (perfecto para implementaciones con Actores, Pipelines, microservicios, etc.)
Como se puede ver estos dos enfoques se centran en las interacciones de los usuarios con nuestro sistema o las acciones del propio sistema (Verbos) y  no tanto en las entidades con las que trabaja (Nombres)
Sin embargo el análisis más típico que se suele hacer en OOP (mal entendida por supuesto) se centra en identificar primero las entidades, perdiendo el contexto de las interacciones (mensajes, flujo, reglas, etc...)  derivando, no necesariamente, pero si típicamente, en modelos anémicos y pobres.

Conclusión:

Valoramos la identificación de las entidades (Nombres) con las que trabaja nuestro sistema, pero valoramos mucho más la identificación de los comportamientos (Verbos) que definen cómo interactuamos con nuestro sistema y qué tareas facilita.

Recordemos que los clientes NO quieren software/sistemas, quieren facilitar sus tareas o resolver sus problemas.

Nota adicional:

Este análisis de negocio se puede hacer a distintos niveles en el sistema, por lo que este enfoque de centrarnos en los verbos, nos puede servir para identificar servicios de nuestro sistema o eventos de negocio, o en un nivel mucho más cercano a una aplicación concreta para poder identificar los hilos de ejecución concurrentes o orientar el diseño hacia un sistema más reactivo.

Podcasts/Talks 2014 24-30 Oct

These are the most interesting talks I saw these last days:
  • Life is easy. Why do we make it so hard? Jon Jandai at TEDxDoiSuthep Inspirational talk
  • RubyRogues 178 Refactoring Ruby with Martin Fowler Quite entertaining episode with some interesting explanations/points about refactoring/reestructuring and the perverted use of the "refactoring" term.
  • The art of destroying software Greg Young Some good points about the easy evolution of a system when the services are small enough to be understandables and to be rewritten without fear. 
  • Crafted Design Sandro Mancuso Very interesting talk about architecture, general desing of an application. Very aligned with the DDD movement and the classic OOP architectures without framework coupling.
  • The Next Decade of Agile Software Development J. B. Rainsberger  Reflexive talk about the agile message, the (real) impact, the misunderstanding of the message and our attitudes and practices. An opportunity to reflect.

Saturday, October 25, 2014

TDD/BDD práctico para aplicaciones con dominio rico / scbcn14



Este domingo en la Barcelona Software Craftmanship 2014, Nestor y yo (@eferro) llevamos una sesión en la que queriamos obtener feedback sobre el flujo de trabajo con TDD que estamos haciendo en Alea Soluciones.
La sesión es una evolución de la que presentamos en la AOS de Valladolid (de tests unitarios de clases a tests untarios de funcionalidad) y las slides de la presentación que usamos están en:
Por supuesto las slides sin contexto son un poco densas y no aportan mucho, pero se grabo la sesión por lo que en cuanto tenga el enlace actualizaré el post.

Creo que a la gente les aporto algunas cosillas y lo mejor fue que obtuvimos un feedback muy bueno y se genero un debate que nos ha enriquecido muchísimo...

Muchas gracias a todos los que participasteis, ni os imagináis lo valioso que es el feedback Gracias.

Referencias:

Friday, October 24, 2014

Podcasts/Talks 2014 16-24 Oct

These are the most interesting talks I saw these last days:
  • Towards an Evolutionary Architecture Venkat Subramaniam. Good advise about how to delay decision and maintain the options open. Don't resolve problems that you don't have and of course make decision based on knowledge.
  • CQRS/DDD Greg Young. Very interesting talk about CQRS and Event Source with a very good introduction about Bounded Contexts, Ubiquitous Language and DDD economics.

Saturday, October 18, 2014

Software Craftsmanship Barcelona 2014 / Charla TDD/BDD práctico para aplicaciones con dominio rico


Este fin de semana que viene (25 y 26 Octubre) tengo el placer de poder ir al Software Craftsmanship Barcelona 2014 para poder compartir mi pasión por el desarrollo del software con otros profesionales del gremio.

El evento está creado por y para profesionales que comparten los valores y principios de la artesanía del software por lo que el ambiente de aprendizaje creo que va a ser inmejorable.

Nestor Salceda, Guillermo Pascual y yo (eferro) aportaremos nuestro granito de arena presentando la charla TDD/BDD práctico para aplicaciones con dominio rico.

En la charla mostraremos el flujo de desarrollo que usamos (TDD/BDD) y la evolución que hemos tenido desde un TDD mockists a un TDD más clásico y orientado a la funcionalidad.
Vamos a intentar que la presentación no dure más de media hora para que nos de tiempo a discutir esta forma de trabajar con el resto de artesanos.

Esta presentación es una evolución de la presentación que realizamos en el AOS 2014 de Valladolid.

Nos vemos en el Software Craftsmanship Barcelona.

Wednesday, October 15, 2014

Podcasts/Talks 2014 1-15 Oct


The interesting talks I've seen are:

Until the past week I don't know Fred George ideas about software development and his talks have impressed me a lot (although I have ethical restrictions on some of the business that he describe). So I decide to see all the presentations I could find.

All the presentations have some interesting tips and ideas...

Sunday, October 12, 2014

Book Review: The Lean Mindset. Ask the Right Questions



Great book that explains using real examples, the lean thinking applied to product development, software mainly, but not only.

It has substantially changed my way of dealing with software projects. It has helped me to focus more on the objectives / intrinsic problems to solve, relegating the normal flow of creating software continuously without really asking myself "why".

I recommend this book to anyone in product development (not only software), especially to all  passionate developers that sometimes forget "why" we develop software.
“What’s next is to stop thinking about software development as a delivery process and to start thinking of it as a problem-solving process, a creative process.”

And remember:
“There is nothing quite so useless as doing with great efficiency something that should not be done at all.”

Passionate developer, Read it now!!!

https://www.goodreads.com/review/edit/18635263
http://www.amazon.com/The-Lean-Mindset-Right-Questions/dp/0321896904

Thanks @pasku1 for the recommendation...

Wednesday, October 08, 2014

Taller y charlas seleccionadas para la PyConES 2014 Zaragoza



Ya se han seleccionado las charlas para la PyConES 2014 (Zaragoza). De las que habíamos presentado, finalmente han seleccionado las siguientes:


Podéis ver la descripción de todas las charlas en http://2014.es.pycon.org/talks

Para el caso del taller, el objetivo es poder crear una aplicación en la que el negocio sea el centro y que la arquitectura emerja del propio proceso de creación. Se trabajara en parejas y usaremos TDD para la creación. Por supuesto se requiere que los asistentes se lleven un portátil con un python + virtualenv instalado.


Nos vemos en Zaragoza !!!!