Category Archives: Agile Methodology

How TDD clarified the Open/Closed Principle for me

OpenClosedThe open/closed principle (OCP) (a software concept whose definition I could recite, but whose meaning I hadn’t internalized until recently) simply states:

Software entities should be open for extension, but closed for modification.

Correct application of the open/closed principle results in classes with high reusability, as the classes are built with extension in mind. OCP also provides consistency because established classes do not change after completion. Any developer will agree that reusability is a noble goal, but how do we know when we have achieved it?

Continue reading

End of iteration demonstrations – The agile practice you probably aren’t practicing

How often do you demonstrate your development builds to your customers during development of a release?  Unfortunately if you are like most agile teams that I encounter the answer is not very often, if ever.  If you are practicing agile software development you know about the importance of working in short increments.  But do you really extract all the value you can from your iteration?  Let me elaborate with a real life example I encountered recently.

Continue reading

DONE equals DONE

As I said in a previous post, I had the pleasure of attending a presentation by Ron Jeffries at the St. Louis XP User’s group meeting back in January.  Another portion of his talk that really hit me was on the subject of “done equals done.” Continue reading

Smaller Releases Help Management as Well as Developers

Ron Jeffries presented at the St. Louis XP User’s group meeting back in January. As he put it, the topic of the presentation was anything that came to his mind at the moment. He simply stood at the front of a crowded room and talked while drawing on an overhead projector.

I won’t try to transcribe the entire meeting, but there was one statement that has stuck with me that I wanted to share.

Continue reading