Lessons Learned

July 2008 Entries

Whose Fault Are Poor Requirements?

I had thought I would do my first Lesson Learned about my control for the upcoming Silverlight Contest, but recent events changed my mind.

A phrase has been bandied about alot at work lately, a phrase we've all heard and uttered in one form or another at least once in our software careers. It exists in numerous variations, but essentially boils down to this:

"The software is bad because the requirements were bad."

I've seen it happen far too often: somebody complains that "<x> is broken" and the original developer goes on the defensive, blaming the customer for handing him faulty requirements. "It's not my fault! The customer asked for a button that rebooted the server! All I did was give them exactly what they wanted!"

I wholeheartedly disagree with this line of thinking. Claiming bad requirements is a copout.

We as developers have a responsibiltiy to find out why every feature is requested. We must get beyond that "I press a button and it does exactly what I'm thinking" requirement to the heart of the request. If you are handed a requirements document that doesn't make sense push back. Seek clarification. Learn more about the problem domain. Call the architect and tell him he's crazy, that it'll never work. And when you finally understand what the real requirement is, write it down. Save it for posterity. Communicate it with all parties. Find common ground. It can be done.

"But my boss told me to do it that way or I'd be fired!" you might say. Very true, but that's bad management, not bad requirements. That's a different copout.

Silverlight Contest

In case you haven't heard, there's a programming contest going on. It's the Silverlight Control Builder Contest and you've still got time to play for fabulous prizes and the awe of your fellow geeks!

I'm gonna enter. Are you? Wait, you haven't had the chance to mess around with Silverlight? Neither have I!

Won't it be fun?

So What's This Then?

And here it is. Another blog. Seems like everyone has one these days. Except me.

...Until now.

So yeah, I've finally decided to enter the blogosphere, whatever that is. It's not like there's anything roundish about the folks who write blogs.

Except maybe near the belly.

Ahem. Where was I? Oh, yes, blogging. So yeah, I'm blogging now. Mostly this blog will involve me posting about my pain developing software and the salves I used to soothe it. It will mostly be C# oriented, 'cause that's where I spend most of my time these days, although I may spend almost as much talking about software architecture and unit tests.

I may throw in the occasional item of interest to me so be prepared for that, too, dear reader.

Whomever you are.

Recent Comments