faded picture of luke
a semi-random photo | click for the full photo gallery
click to browse photos
homepage navigation

Luke Melia

A new term: microtest

I learned the term “microtest” today. It’s a different (better, I think) word for what I’ve been calling unit tests. It describes the style of test you write when you’re doing test-driven development, and runs completely in memory (i.e. no interactions with a file system or database). Seems that the folks at IndustrialLogic have been using it, because I heard it from a fellow who had been coached by them. The only reference I could find online to it is in the this thread.

My question: if a test is NOT a microtest, what is it? An integration test? A macrotest?

Dynamic languages

An interesting thing I noted at SD Expo was the embracing of dynamic languages by the best in the business. Bob Martin predicted widespread adoption of Ruby and Python over the next 5 years. And Mike Hill told me that he has totally become a dynamic language guy, and that the only reason he still uses C++, Java & C# is because the people he is coaching use them.

The sentiment is that with test driven development, you have your tests to support you and you no longer need the compiler to do so. Giving up the compiler lets you take advantage of duck typing and metaprogramming and thereby be more productive.

I’m in. My only hesitation is that I don’t want to give up my refactoring tools…

Choice words from Mike Hill

My old friend Mike Hill is teaching in place of Joshua Kerievsky here at SD Expo. Yesterday, I attended his session on the risks of solo programming and the rewards of pairing. My team pairs near 100%, so I wasn’t attending to be converted but rather for some nuance.

Mike talked about the natural ebb and flow of energy when programming solo. With pairing, he contended, energy tends to stay near peak as each member of pair steps up to the task. I’ve found this to be true, and I agree with Mike that this pretty much equalizes the efficiency of the two methods.

Another gem gleaned from the session was this: XP says that ACT -> MEASURE -> DECIDE is better than THINK -> DECIDE -> ACT. This is a good thing to remember when you have two big egos pairing and they disagree about the approach to a particular problem. One might say to other, “OK, we’ll go with your idea for two hours and see how things look.”

Today, I was in his Code Smells and Refactoring class. He had some other gems here, too:

“In code, simplicity and mastery are the same values.”

“Increase clarity by reducing scope.”

Pair- vs. solo- programming statistic

Mike Cohn cited a statistic that pairing added 15% schedule overhead above solo programming for the construction portion of a feature. Not sure where it came from, but it’s a pretty compelling argument for pair programming, considering the intrinsic benefits of knowledge sharing and improved quality.

Iteration planning and the two minute timer

Mike Cohn had an idea that I’m looking forward to trying. Our team uses planning poker as an estimate technique. (BTW, Mike mentioned that he’s got a tool coming for playing planning poker with distributd teams (nothing there yet). Anyway, in planning poker, when you disagree, you discuss and those discussions can sometime go on a looooong time, leading eventually to consensus but also to frustration and burnout. Mike suggested using a simple 2 minute egg timer that any member of the team and start whenever s/he feels like the discussion is going on too long. When the timer goes off, everyone shows their estimates again. If there is agreement, you can move on; if not, you keep talking, but anyone can trigger a vote again in two-minutes by starting the timer.

Seems like a good way to stay focused and be able to bring the team back to estimation, even if one or two people are dominating the conversation.

Hello from Boston

I’m attending SD Expo East in Boston this week and will blog highlights. I attended a few years ago, and am far more excited about this conference than I was in the past. Not sure if that is because I’ve changed or because the software development world has changed. I imagine it’s a bit of both.

Today is Mike Cohn on “Agile Estimating and Planning”, Bob Martin on “Object-Oriented Principles of Component Design”, and then a Birds of a Feather on project retrospectives, though I hope there will be folks interested in talking about sprint retrospectives.

LukeMelia.com created 1999. ··· Luke Melia created 1976. ··· Live With Passion!
Luke Melia on software development freelance web development how to contact me Luke Melia, Software Developer letters and more from my travels photo gallery personal philosophy