March 9, 2016

Uncle Bob Martin: The Agile Manifesto, 15 years later

If you have ever wondered about the history of Agile Software Development ( which I have written about in this blog ) you should check out the new article published in TechBeacon, "Uncle Bob Martin: The Agile Manifesto, 15 years later", written by Malcolm Issacs.
"Robert 'Uncle Bob' Martin is one of the 17 software development visionaries who met at The Lodge at Snowbird ski resort in Utah in February 2001 to discuss the various lightweight development methods of the time. The result of that meeting would become known as the Agile Manifesto [...]

Robert C. "Uncle Bob" Martin

"The meeting started with a very brief call to action, namely to write a manifesto, although no one knew what it would look like, or whether it would be a large or small document.

"To seed the discussion, the participants all wrote down the issues that were most important to them on index cards. They then arranged the cards by topic and found that there were many ideas that were heavily represented. During the discussion that followed, someone, probably Ward Cunningham, was inspired to write down four sentences that would become the Manifesto, with the concept that they weren’t rejecting the ideas on the right, but rather valuing the ideas on the left more. This was the epiphany for the group, and it led to a lot of agreement. 'That was startling for that group,' said Bob, 'because we didn’t agree on anything!' [ MORE ]
You can read more about the article here.


Although I first heard about "Uncle Bob" back in grad school with "Agile Software Development: Principles, Patterns, and Practices", I've only encountered his blog articles (, free lectures on YouTube, and purchasable lectures on his Clean Code website only recently.

It's funny... even though I have been working in the software industry since the pre-Agile days of 1996, as a manual tester there has been much in the world of software development that I wasn't aware of.

Even though I earned my Masters of Software Engineering from Brandeis University back in 2008, we never touched upon the literary works of Kent Beck, Ward Cunningham, Robert Martin, or any of the Agile founders.

Only since I decided last summer that as an insecure newly minted developer I had to give myself a crash course in software development have I been encountering them:

... Maybe the insecurity will fade as I work towards my second year of experience?

... Or maybe if I watch enough of Uncle Bob's videos, his software design principles will sink into my brain?
InitialStands forConcept
SSRP [4]
Single responsibility principle
class should have only a single responsibility (i.e. only one potential change in the software's specification should be able to affect the specification of the class)
OOCP [5]
Open/closed principle
“software entities … should be open for extension, but closed for modification.”
LLSP [6]
Liskov substitution principle
“objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” See also design by contract.
IISP [7]
Interface segregation principle
“many client-specific interfaces are better than one general-purpose interface.”[8]
DDIP [9]
Dependency inversion principle
one should “Depend upon Abstractions. Do not depend upon concretions.”[8]
From Wikipedia,

All I know is that I would love to buy Robert a few of his favorite frosty beverages just to listen him storytelling.

... Anybody know if he frequents Boston?

-T.J. Maher
  Sr. QA Engineer, Fitbit

 // Software tester since August 1996
 // Automation developer for [ 1 ] year and counting!


ROCKY said...

Agile software development Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info.

David Soy said...

Your article is excellent! I've gone through both the previous and current ones. However, I noticed you haven't covered the topic of Non compete agreement between companies. Could you please consider writing about that?