Think Small

Posted by andy in : Agile,Teams on July 28, 2006. There is 1 response »

Here is a nice podcast from Jason Fried from 37Signals.com

He had an interesting spin on co-location. I always thought distance hurts, and having everyone working together in the same location was critical. Jason argues that if you can’t explain a design or a business strategy using IM or Skipe then it’s too complicated and you should choose something simpler. This made me re-think my views on this.

It’s a really interesting point of view. I have been mulling this over in my mind for a few days now. I wonder what impact people’s learning style has on this? I’m very visual, I really like being able to jump up and draw pictures with collegues around a white board. I wonder if Jason is more of a words person?

Fit Lesson 1

Posted by andy in : Testing on July 25, 2006. There are 2 responses »

Write the test so it reads like a requirement specification and not a test

I was trying to explain a FIT test to a new colleage. It soon became clear that it had been written as a test. It didn’t convey the intent of what was required. Nor did it communicate why it did what it did. There was a lot of tacit knowlege in my explanation of what was going on. It obvioulsy failed to communicate the requirements. It did, however, test that a particular feature of the system worked! So, what is the purpose of a FIT test?

Brian Marick makes the distinction between Business Facing tests and Technology Facing tests.

A business-facing test is one you could describe to a business expert in terms that would (or should) interest her. If you were talking on the phone and wanted to describe what questions the test answers, you would use words drawn from the business domain: “If you withdraw more money than you have in your account, does the system automatically extend you a loan for the difference?”

A technology-facing test is one you describe with words drawn from the domain of the programmers: “Different browsers implement Javascript differently, so we test whether our product works with the most important ones.” Or: “PersistentUser#delete should not complain if the user record doesn’t exist.”

The FIT tests should be business facing, they are a communication tool with the added benefit being executable. FIT tests should explain the requirements so that people know what the system does.  The collection of FIT tests forms an executable requirement specification. They should not really be called tests at all!

Our FIT test was clearly written from a developer’s point of view. It was technology facing. Fit is probably the wrong tool for technology facing tests. I would much rather write these in a more developer friendly tool such as Java or ruby.

Site Map | design by twothirty