Bibliografía y recursos para meterse en el movimiento SoftwareCraftsmanship

Durante este último fin de semana, se ha organizado la Barcelona Software Craftsmanship (28 y 29 de Septiembre). Ha estado muy bien y recomiendo que estéis atentos a los eventos que va a ir organizado esta asociación. Les deseo los mejores éxitos.

Es posible que todavía no os suene el movimiento o no hayáis tenido tiempo de profundizar, así que os intento arrojar un poco de luz y pasar material para que os podáis poner rápidamente al día. Por favor, completar las listas con vuestros comentarios (he intentado añadir lo básico pero me dejo mucho material).

¿Qué es?

Una corriente en el mundo del desarrollo de Software que aboga por la profesionalidad y el trabajo de calidad.

Manifiesto

Como aspirantes a Artesanos de Software estamos elevando el listón de desarrollo de software profesional mediante la práctica y ayudando a otros a aprender el oficio. A través de este trabajo hemos llegado a valorar:

No sólo que el software este trabajando, pero también que el software este bien diseñado
No sólo responder al cambio, pero también constantemente agregar valor
No sólo los individuos y las interacciones, pero también una comunidad de profesionales
No sólo la colaboración de clientes, pero también asociaciones productivas

Es decir, en la búsqueda de los valores del manifiesto ágil, hemos encontrado creemos que los elementos en negrita son indispensables. Puedes ver el original en su web.

Material

No hay material concreto sobre el movimiento Software Craftsmanship, pero si tuviera que elegir lo básico y separarlo en aspectos, estos serían: Profesionalidad individual, código y arquitectura, metodologías ágiles y sus prácticas.

Profesionalidad Individual

¿Qué es lo que identifica a un buen profesional del desarrollo del software? ¿Qué tipo de actitud? ¿Cómo gestiona su carrera profesional? ¿Cómo escribir código comprensible y de calidad?

  1. Pragmatic Programmer (Dave Thomas)
  2. Clean coder (Robert C. Martin) – Puedes visitar el post que hice sobre él

Metodologías ágiles

Aunque el movimiento no está directamente relacionado con las metodologías ágiles, sí que es cierto que la gran mayoría usan estas metodologías (Scrum, XP, etc.) y sus prácticas (Tarjetas CRC, Pair programming, TDD, etc.).

  1. Extreme Programming Explained: Embrace Change
  2. The Scrum Field Guide: Practical Advice for Your First Year
  3. Growing Object-Oriente​d Software, Guided by Tests (Addison-Wesle​y Signature Series (Beck))
  4. Writing Effective Use Cases (Crystal Series for Software Development)
  5. User Stories Applied: For Agile Software Development
  6. Test Driven Development (By Example)

Código y arquitectura

Cómo escribir código limpio y comprensible, así como aprender cómo arquitecturar tu código para que sea más fácil de mantener, testear y deployar.

  1. Clean code (Robert C. Martin)
  2. Implementing domain-driven desing
  3. Domain driven design
  4. Agile Principles, Patterns, and Practices in C#
  5. Object-oriented Software Construction
  6. Literate Programming (Center for the Study of Language and Information Publication Lecture Notes)
  7. Design Patterns: Elements of Reusable Object-Oriented Software (Addisonwesley Professional Com)
  8. Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)
  9. Implementation Patterns
  10. Working Effectively with Legacy Code

Especial mención…

a los vídeos de cleancoders.com donde Robert C. Martin se ha currado unos 22 videos hasta la fecha donde repasa de todo, desde ponerle nombre a nuestras clases y funciones, pasando por SOLID y TDD al detalle hasta cubrir los principios sobre Componentes. El blog de la consultora que dirige también es de interés: http://blog.8thlight.com/

¿A quién seguir?

Si quieres estar al tanto de lo que se mueve deberías seguir a varias personas.

  1. Robert C. Martin (@unclebob)
  2. Martin Fowler (@martinfowler)
  3. Kent Beck (@KentBeck)
  4. Dave Thomas (@pragdave)

Espero que os haya sido de ayuda. Si necesitáis algo, podéis enviarme un PM a @buenosvinos en Twitter.