Disciplined Agility

I finished reading…

Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
by Robert C. Martin, Micah Martin

Read more about this book…


What an excellent book, seriously! It was written by Robert C. Martin and his son Micah. The following is a list of excerpts from the book that I can appreciate:

"Continuous attention to technical excellence and good design enhances agility. High quality is the key to high speed. The way to go fast is to keep the software as clean and robust as possible. Thus, all agile team members are committed to producing only the highest quality code they can. They do not make messes and then tell themselves that they’ll clean up when they have more time. They clean any messes as they are made."

"The goal of refactoring, as depicted in this chapter, is to clean your code every day, every hour and every minute. We don’t want the mess to build. We don’t want to have to chisel and scrub the encrusted bits that accumulate over time. We want to be able to extend and modify our systems with a minimum of effort. The most important enabler of that ability is the cleanliness of code."

"Specifying contracts in unit tests. Contracts can also be specified by writing unit tests. By thoroughly testing the behavior of a class, the unit tests make the behavior of the class clear. Authors of client code will want to review the unit tests in order to know what to reasonably assume about the classes they are using."

"Databases are implementation details! Consideration of the database should be deferred as long as possible. Far too many applications were designed with the database in mind from the beginning and so are inextricably tied to those databases. Remember the definition of abstraction: "the amplification of the essential and the elimination of the irrelevant." At this stage of the project, the database is irrelevant; it is merely a technique used for storing and accessing data, nothing more."

"This style of testing is called behavior-driven development. The idea is that you should not think of tests as tests, where you make assertions about state and results. Instead, you should think of tests as specifications of behavior, in which you describe how the code is supposed to behave."

About Mo Khan

mO, is just a kid who's excited about writing software. He's a student of his profession, and just wants to share his thoughts on software development.
This entry was posted in Books. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

3 Responses to Disciplined Agility

  1. Can’t agree more! Excellent book!

  2. Colin Jack says:

    Yeah great book, don’t apply everything that I learned from it but its full of great design points. You’ll probably also be interested in his new book “Clean Code”, not read it yet but I’m sure it will be great:


  3. Joe Ocampo says:

    I spoke with Bob Martin last week and his new book clean code contains the passion that he feels about the professionalism that we are lacking in pursuing excellence of clean code. Read it on the way back home, a very good sequel to this book.