Archive for software engineering

Guess who’s guessing?

Posted in The Industry with tags , , on February 24, 2010 by moffdub

Well well well, here we go again, yet another fit of February Fury from Mother Nature, but that won’t stop me from being away from my code or being away from my blog. MoffDub here on the one and only Excellence In Programming web-ring, here to present you with a tale of estimation happiness.

Eventually, getting wrongfully chewed out by incompetent PHBs gets old, so, one day during sprint planning, my cohort got out his pen and calculator and started guessing approximately how many days the work we had for each story would take. By “day”, I mean a relatively uninterrupted six-hour period, and multiply that by two for the two of us working together.

Why six? Because out of your eight hour day, you are liable to lose two hours to unplanned interruptions, and that context-switching cuts into the productivity you experience while in your “programmer flow“.

Continue reading

Test Incest

Posted in Testing with tags , , , on April 8, 2009 by moffdub

Don’t you just love my cutesy rhyming post titles?

You can’t hate me, though, because I make sure most of them are entirely relevant. And this post is about the incestuous unit tests I write, and how they have bitten me.

Professionally, I have never been in the position to use a mock object framework like JMock or NMock. My mocks have been more like fake objects, since they were hand-written and always returned pre-cooked responses.

Since I had to hand-write these objects, I took what seemed to be a smart course of action.

Continue reading

I can’t believe I get paid for this

Posted in Design Issues with tags , , , , , on January 6, 2009 by moffdub

Greetings ladies and gentleman, your favorite bitter clinger is here and back for 2009 with new material. Watch for a new episode of Nowhere To Run this Saturday.

I arrived back at work, after a two-week vacation, fearing the worst: public static everything, classes that I had carefully crafted to have one responsibility now having two or more, bloody red bars all over my unit tests, long parameter lists.

The damage wasn’t as widespread as I imagined. I wasn’t the only one on vacation, after all. There were scattered unit test failures. There is only a couple of slightly long parameter lists. There was even one constants class inheriting from another constants class, and based on its usage, I actually don’t have a problem with this.

Continue reading

Chaos Crusher

Posted in The Industry with tags , , , on December 24, 2008 by moffdub

From the EIP Chipotle Operations Center, somewhere in America’s Finest City, it is your humble host. You received fair warning that Nowhere To Run was likely finished for 2008, and this is likely true. Let me tell you how my Saturday went.

Depart Philadelphia International at 12 PM ET. Arrive Bush International in Houston at 3 PM CT. Scheduled departure for San Diego: 6 PM CT. Actual departure time: 8:30 PM. Arrive in San Diego 11 PM PT.

So yeah, my Saturday was ruined, and so was my Monday, due to a sore throat and fever, no doubt acquired while in my four-hour layover in Houston. Or maybe it was because I went from blue state to red state to blue state in the same day.

Continue reading

Anemic Re-use

Posted in Design Issues with tags , , , , on November 22, 2008 by moffdub

Anemic Domain Models have their vices, to be sure, but there is an argument to be made for their use, and it is a compelling one: re-use.

By separating data structure from behavior, the data structure can be re-used across multiple applications which have different behavior for entities. Of course, this is a big trade-off: readability, maintainability, and encapsulation for reusability. Nothing is ever for free in this line of work.

The problem is that this is quintessentially anti-OO, and anti-domain-driven design. If you are ever to make the move to DDD in a company with a stated goal for object re-use, like mine, then this issue has to be addressed.

Continue reading

What are we doing, again? Part 1

Posted in The Carbon Copy Whiteboard with tags , , , , on October 15, 2008 by moffdub

It might just be a dinky hypothetical project, but I have no doubt that I am capable of creeping requirements up on myself. This is also a chance for me to exercise my not-so-exercised system analysis and abstract thinking skills, as far as it applies to a high-level system that doesn’t exist.

Writing requirements forces you to think in terms of users, data, and interactions between the actors. You really have to fight yourself to keep architecture and design decisions out of requirements. It helps you distill what is important to the user versus what you find interesting technically.

And writing it down makes you realize all the holes in your thinking. Note that these requirements are for the software of the system. The image-capturing hardware is as of yet undetermined.

Continue reading

Why are we doing this, again?

Posted in The Carbon Copy Whiteboard with tags , , , , , , on October 11, 2008 by moffdub

The question every project has to ask itself is: is it even worth it? All of the hair-pulling, name-calling, and blood stains on the walls that will surely result might not even be worth the trouble. Will the end product really make your life easier?

The love-him-and-hate-him Professor Bernstein refers to this concept as the MOV — Measurable Operational Value. This is a concise statement of the quantitative benefits of a system. How it is quantified — be it amount of time saved, money saved, or amount of problem cases opened — depends entirely on the project under consideration.

MOV is a derived value. It is the FMO — Future Method of Operation — subtracted from the PMO — Present Method of Operation. Both of these are quantifications. The FMO is a quantification of how the users of the system will get their work done once it is complete. The PMO is a quantification of how the users of a system currently get their work done.

Continue reading


Get every new post delivered to your Inbox.