Wednesday, September 07, 2005

To Function or Not to Function, That is the Question

Question:
What is the difference between a functional and non-functional requirement?

Answer:
If a requirement uses a verb to describe the feature then it is functional; What will the system *do*? If a requirement uses an adverb or adjective to describe the feature, 'how' will it do whatever, then it is non-functional.

I've almost always been interested in the importance of language in discussing requirements. There are two ways to listen to your customer, literally and figuratively. That the customer has difficulty describing their requirements has been a problem in the software field for so long that it's now a cliche. What some analysts have done in to start reading between the lines to capture what the customer is "really" saying. There can be some benefit to this figurative approach but I would always to to listen to them literally. In many cases this meant inconsistent or confusing descriptions, the key was to realize that those questionable points were just that, points to question. In getting clarification about those requirements, we can get a more detailed understanding of the problem domain. If their choice of words or phrases contradict, ask them about it.

Sometimes we need to listen figuratively or "between the lines" to get the overall picture but listening literally can be indispensable for uncovering the things you need to dig into for more details.
Delicious Bookmark this on Delicious

Sunday, September 04, 2005

In the beginning...

Hello out there. You know, this is an awfully large place we've got here. If you won't mind the echo, I'll overlook the lack of applause. When I shield my eyes from the bright glare of the spotlight I can just make out a few people sitting in the back row wondering what all the fuss is about. If you've come here for a show, you're in the wrong space, Streisand is already gone so you'll have to make due with Celine a few doors down and to the left.

To be honest, I haven't really gotten over the idea that a blog is narcissistic. That's why I never bothered with a personal web page. Hey look at me, I can write markup tags! Aren't I special? Just a modern equivalent to those old home movies people used to bore their neighbors.

I know what you're thinking, "Well, what am I doing up here then?" Well, a good friend of mine has been asking me when I was going to start a blog. Even though my spare time is scarce, I try to get away from my desk during lunch when I can. Some of these times I head over to talk with him, to discuss one thing or another; to rehash old news, talk about current events or even bring up new ideas. It would seem that this might be a good time to clear the air and confess that I have a disturbing and most shameful secret. It's not one that gets you shunned at parties, makes small children stare or otherwise cause calamities with which only country music can compare but it is something that can be rude, in polite company, to share. What is this nasty, dirty little habit of mine?

I THINK

Wow, I wouldn't have thought so few people could produce so much laughter! Either that or the crowd is growing. I'll chalk it up to the crowd anticipating a NASCAR moment. They don't mind watching something going 'round in circles as long as they get to watch the crash. Hey, you with the Celine shirt and designer shoes, you're in the wrong place. You want the one that's two sites down and a page to the left.

So, is thinking really a bad habit and what does that have to do with this blog anyway? It's like this. I'm addicted to thinking. I have to have my daily 'fix'; can't go very long without it. Doesn't have to be anything special like 'Why are we here?' or 'Is there a God? And if so what is her name?' (Ha! Caught you!) but can be more down to earth like 'Why do people who drive SUV's complain about the price of gas?' I'd go on but seeing as 'why' is a four-letter-word I'll refrain from such talk in mixed company. That's right, I'm counting the waitress. Ask me about 'why' later; if I'm in a good mood I might give you an earful. Who am I kidding, I'll give you an earful about anything, just keep the drinks coming. Pepsi on the rocks and don't bother putting the cap back on the ol' 2-liter.

Where were we? Oh, that's right, the blog. I guess if I'm going to think, I might as well have a place to keep my thoughts. That way I can nurse along the ones that aren't ready for the light of day and give you a peek at the ones in which I have pounded out the kinks even if they are nothing more than my opinion. Yeah, yeah, I've heard that one before, "Everyone's got one and it stinks." I didn't say I'd put all my dirty laundry out. Yes, I could keep them to myself and yes I've tried using a tape recorder. Listening to myself is such a chore. Did I say that? I didn't mean it, come back! If I'm going to type up my thoughts, I might as well have a single place for them. This way if I discover a gem in the rough, I can get help to hone and polish it and only share it when it glitters in the reflected light of reflective thought. But some thoughts are stronger than that, more malleable and can withstand the forge of public opinion. One of those I can share with the public and use them to pound it into shape and quench the fire until what is left is tempered and ready to be sharpened to a degree that would make old man Occam proud.

What's that? Yes, you in the back row, speak up. You'll have to excuse me, 'My Heart Goes On' is getting louder. What am I going to write about? Oh that's easy. I'll spare you the long list and give you the highlights. Hmm, let's see. There is code 'scar tissue', and bad smells, how to tell the difference between a Code Wright and a Code Monkey; how about the importance of Design, using patterns and identifying anti-patterns, the pitfalls to code reviews both new code and maintained code, the questions to ask that can help to keep you from doing design during analysis. Not only that, if I hear any news from the 'Extreme Programming' front, I'll pass it along to those developers next-of-kin.

Am I boring you yet? I did warn you. I better stop there, I only have the place for the hour and the manager keeps telling me he'll kick me to the curb as soon as he finds a better act to fill my slot. I'll just take a quick break from juggling all these thoughts, don't want too many hot ones out at the same time, I didn't wear my asbestos undies today.

Good night and thanks for all the fish.
Delicious Bookmark this on Delicious