Any fool can write code that a computer can understand. Good programmers write code that humans can understand. "

Martin Fowler in Refactoring: Improving the Design of Existing Code


Agile Technical Practices Distilled

A Journey Toward Mastering Software Design

This is a book on Agile technical practices. The intent of this book is to show you how to improve your overall software design skills. Mastering these skills will get you one step closer in your journey, whether that’s to join a top-class Agile development team, take on more projects and responsibility, or progress in your professional development.

We (the authors) have been working as software developers and coaches over the years, altogether accumulating more than half a century of experience. During this period of working in the trenches teaching software design, we have created a lot of content and shared many anecdotes of real professional life. Based on the feedback we’ve had, we thought it made sense to organize all the information in a single place, following a logical sequence and creating a learning journey.

In Agile Technical Practices Distilled, we touch on all the principles we consider most important to master software design. All too aware that in our profession, too much detail can obscure the ability to learn, we have carefully selected our topics of focus. You’ll learn individual practices (namely, XP practices like TDD, refactoring, pair programming, simple design, and more) in a step-by-step journey.

We are very excited to share with you our personal selection of content and the lessons we have learned the hard way. It is our genuine hope that in Agile Technical Practices Distilled you will find many new and useful tools to put in your software design toolkit.


Sometimes, when you’re trying to learn, reading a book just isn’t enough. We understand that you might have questions: learning something new usually requires a lot of clarification, especially in the beginning.

If you want to receive feedback on your progress, discuss the ideas presented in the book, get help on a specific topic, we are very happy to help. For this reason, we’ve set up a free community where we will try to answer your queries and participate in discussions about the topics covered in our book.

Agile Tech Praxis community


Agile Tech Praxis community

We have been teaching and coaching others on the book's material for years with such amazing results that we felt that writing our book was something we owed to the community.

We have identified a journey that could take the most diligents to mastery in a matter of weeks. If you want to get feedback over a videocall, discuss the ideas of the book and get help on a specific topic via a dedicated Slack channel, or have us coaching live to your team, we can help.

We have multiple services available:

Individual mentorship

By joining our mentorship program, you’ll be able to:

  • Get help when you’re stuck
  • Evolve your technical practices with our support
  • Post your own code to receive constructive feedback
  • Access to time saving expert advice and answers to your questions
  • Learn real world software engineering skills to level up your career
  • Get targeted help using screen sharing and pair programming (weekly time limit apply)

Teams and Corporation

We have a range of services we can offer to Teams and Corporations:

  • Coaching program: a very effective intense learning program delivered at your premises on a regular base.
  • Techincal assessment: we can come there, review your current technology and give you feedback
  • Technical direction: part time consultancy work to train your trainers so you can run your learning program internally
  • Techincal interviews: we can do the technical interviews for you with an immediate feedback


Pedro Moreira Santos

Pedro Moreira Santos

Pedro has over 25 years of experience in the software industry. He has worked in finance, aviation, consultancy, media and retail industries and built a wide range of software, ranging from embedded systems to cloud-based distributed applications.

He has lived in Portugal (Lisbon), Brazil (São Paulo), Spain (Madrid, Barcelona), Netherlands (Hilversum), Belgium (Gent) and currently he is based in the UK (London), where he focuses on educating and inspiring other developers. He has spent hundreds of hours in pairing sessions as well as coaching and mentoring developers at all levels of proficiency. His tutoring experience covers almost every aspect of software development: programming basics, object-oriented and functional design principles, refactoring legacy applications, pragmatic testing practices, architectural decisions and career development choices.

Marco Consolaro

Marco Consolaro

Describing himself as a Software Craftsman, Systems' thinker, Agile technical coach, entrepreneur, philosopher, restless traveler – all blended with Venetian humor – Marco learned coding in Basic on a Commodore when he was nine years old. He graduated from Venice University in 2001 with a degree in Computer Science.

Since then, Marco has worked in Italy and the UK, always looking to learn something new. When his journey led him to the Agile principles, he quickly realized the effectiveness of such an approach for both technical and organizational areas. He now strongly believes that an iterative approach based on trust, transparency, self-organization and quick feedback loops is the key to success for any team in any discipline.

His dream is to see these principles understood and implemented at every level in businesses and public administrations.

Alessandro Di Gioia

In the past 18 years Alessandro has helped a variety of companies (from small start-ups to large enterprises) embrace Agile technical practices.

He has worked in Italy and Norway. For the past few years he has resided in London.

His professional life changed when he came across Agile methodologies, especially eXtreme Programming (XP). He likes concise, expressive, and readable code as well as making existing solutions better when needed. He is always trying to learn better ways of designing asynchronous distributed architectures and crafting software, in either an object-oriented or functional style.

Although Alessandro considers himself a forever learner, he is also a coach and a mentor because he loves to share his experiences with others.

Contact us

Your questions, comment and feedback is important to us. Please send us an email, and we will get back to you as soon as we can.
Although we are physically based in London (UK), there are many solutions for connecting remotely via Web.

Optimism is an occupational hazard of programming:
feedback is the treatment."

Kent Beck in Extreme Programming Explained