Author Archives: Michael

MapReduce talk from Lambda Lounge Presentation

In September I presented on the foundations of MapReduce and MapReduce applications at the St. Louis Lambda Lounge.

It always surprises me how simple the MapReduce algorithm is and how few people really understand it. After the talk I had multiple people approach me and say “I have had elements of MapReduce on my applications for a long time and didn’t know it.”

Continue reading

VMWare + SpringSource: VMWare moves up the cloud stack

The VMWare/SpringSource acquisition announcement took me by surprise. My first question was what is VMWare getting themselves into? I have always thought of VMWare as the “Switzerland” of infrastructure tools. Whether you are Windows or Linux, C++ or Java, packaged software or open source VMWare can help you build, test, and deploy your environment. Why are they giving up their independent status by picking a Java framework like Spring?

Continue reading

Which principle was it? Open-closed or dependency inversion?

In my last blog entry I discussed how Test Driven Development (TDD) lead me to a greater understanding of the Open-Closed Principle (OCP). The general feedback from the post was very positive. However, several readers asked a question that I would like to answer. They pointed out that although I was discussing OCP, my example really displayed the Dependency Inversion Principle (DIP). Was my blog post misleading?

Continue reading

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