About the Book
The authors of the book have been working as software developers and coaches for years, accumulating more then half a century of experience. During this period working in the trenches of teaching software design we created lots of content and shared many stories of real professional life among us. From the feedback we had, we thought it would be a good idea to organize all the information in a single place, following a logical sequence, creating a sort of learning journey. We touch all the principles we consider important to master, dropping too many details. In our profession the information are far too many to be all memorized, let alone mastered. The ability to select what to focus on is maybe more important then the ability of learning itself. We all are very excited to be able to share with you our personal selection of content and the lessons we learned the hard way. We genuinely hope that at the end of it you will find some new ideas for improving your Software Design skills, the relationship within your team and your business as well.
About the Authors
Over 25 years experience in software, from embedded systems, aviation, media, retail, to cloud-based enterprise applications. In recent years, I've focused on educating, and inspiring other developers.
I coach and mentor. I've spent hundreds of hours doing pairing sessions, coaching and tutoring developers at all levels of proficiency. I've worked with developers on everything from programming basics, to object-oriented design principles, to refactoring legacy applications, to pragmatic testing practices, to architecture decisions, to career development choices.
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 based on Systems Thinking understood and implemented at every level in businesses and public administrations.
With 20 years experience in building software, Alessandro worked within companies ranging from small start ups to large enterprises.
He helps companies embrace Agile Technical Practices in London where he currently resides, and previously in Italy and Norway.
Adopting Agile methodologies, especially eXtreme Programming reshaped the way he builds software and think about the whole life-cycle of the solutions he delivers from inception to delivery.
He likes concise, expressive, and readable code as well as pragmatically improving existing solutions.
He is passionate about developing and designing OO and functional code. Using his skills to lead digital transformation through cultural change and architectural evolution to scalable distributed asynchronous systems.
Being a continuous learner, he loves to share his experience with others through coaching, mentoring, delivering workshops and talks.