Book Image

Agile Technical Practices Distilled

By : Pedro M. Santos, Marco Consolaro, Alessandro Di Gioia
Book Image

Agile Technical Practices Distilled

By: Pedro M. Santos, Marco Consolaro, Alessandro Di Gioia

Overview of this book

The number of popular technical practices has grown exponentially in the last few years. Learning the common fundamental software development practices can help you become a better programmer. This book uses the term Agile as a wide umbrella and covers Agile principles and practices, as well as most methodologies associated with it. You’ll begin by discovering how driver-navigator, chess clock, and other techniques used in the pair programming approach introduce discipline while writing code. You’ll then learn to safely change the design of your code using refactoring. While learning these techniques, you’ll also explore various best practices to write efficient tests. The concluding chapters of the book delve deep into the SOLID principles - the five design principles that you can use to make your software more understandable, flexible and maintainable. By the end of the book, you will have discovered new ideas for improving your software design skills, the relationship within your team, and the way your business works.
Table of Contents (31 chapters)
Free Chapter
Section 1
Section 2
Section 3
Section 4
Chapter 21
License: CyberDojo

Chapter 15


"We know the past but cannot control it. We control the future but cannot know it."

-Claude Shannon

This Claude Shannon quote is controversial and usually generates interesting conversations. The main observation is this: we don't really have full control of the future. That's actually a meaningful observation if we consider the latter portion of the quote about the future at a higher philosophical level (our inability to change the past being much less debatable).

What if we apply the latter portion of the quote to software development? Theoretically, in software development, we fully control the future, in that it's the way we are going to write the next piece of code. And the amount of control we have is proportional to how much we understand and how effectively we can act on the code base. In your code, the control you can have over your future is deeply connected to how you have been building in the past.