Comments on: The language of specifications http://blog.amber.org/2006/10/27/the-language-of-specifications/ Thoughts of a minor lunatic Wed, 21 Oct 2009 01:55:36 +0000 http://wordpress.org/?v=2.9.2 hourly 1 By: petrilli http://blog.amber.org/2006/10/27/the-language-of-specifications/comment-page-1/#comment-40061 petrilli Wed, 08 Nov 2006 19:30:14 +0000 http://blog.amber.org/2006/10/27/the-language-of-specifications/#comment-40061 Aslak, I see what you're trying to get at, and I do agree that language is critical to influencing how people think about problems. In this situation, I'm just a bit concerned that _should_ can represent a relatively weak encouragement to compliance. I suppose this is from my days working on protocols. The fact that the discussion is taking place is indicative of a healthy environment, however. I think it's also important to differentiate between what the specification wording says and what the testing does. Either that or we end up writing multiple sets of tests that duplicate 95% other than stringency. My point is that the @should@ method trickery has no tolerance (except in one case) for deviation, why should the language? Aslak, I see what you’re trying to get at, and I do agree that language is critical to influencing how people think about problems. In this situation, I’m just a bit concerned that should can represent a relatively weak encouragement to compliance. I suppose this is from my days working on protocols. The fact that the discussion is taking place is indicative of a healthy environment, however.

I think it’s also important to differentiate between what the specification wording says and what the testing does. Either that or we end up writing multiple sets of tests that duplicate 95% other than stringency. My point is that the should method trickery has no tolerance (except in one case) for deviation, why should the language?

]]>
By: Aslak Hellesoy http://blog.amber.org/2006/10/27/the-language-of-specifications/comment-page-1/#comment-40052 Aslak Hellesoy Wed, 08 Nov 2006 18:28:08 +0000 http://blog.amber.org/2006/10/27/the-language-of-specifications/#comment-40052 There has been a lot of debate and thinking among BDDers to figure out what the most appropriate language is. As repeated in countless other places, TDD is not abut testing. At least BDD is not. It is about design. I think that using the word "should" in the process of designing code with RSpec keeps the programmer in a more exploratory and critical mindset than whith the moe dogmatic "must". Maintaining and evolving software also means maintaining specs, and this is a lot like gardening. The specs have to be trimmed and watered regularly, and sometimes they die - because they're old. This is a good thing. It is a sign of a software system that is alive and adapting to external forces. Having specs that say "should" supports this kind of evolution, because it's easier to ask the critical question: "Should it really?" and then perhaps end up changing or even deleting the spec. If the spec said "must" people would be more hesitant to change the spec, which is actually bad - it's the opposite of embracing change: rejecting change. I believe that the concept of up-front and rigid requirements specifications only works in very few domains in computer science. I have never worked in an environment where requirements don't change. This is why I am more in favour of "should" than "must" in most cases. It may be a different case with specifications of protocols - they are much more rigid and can't change as easily. But very few people write protocols. There has been a lot of debate and thinking among BDDers to figure out what the most appropriate language is.

As repeated in countless other places, TDD is not abut testing. At least BDD is not. It is about design.

I think that using the word “should” in the process of designing code with RSpec keeps the programmer in a more exploratory and critical mindset than whith the moe dogmatic “must”.

Maintaining and evolving software also means maintaining specs, and this is a lot like gardening. The specs have to be trimmed and watered regularly, and sometimes they die – because they’re old.

This is a good thing. It is a sign of a software system that is alive and adapting to external forces.

Having specs that say “should” supports this kind of evolution, because it’s easier to ask the critical question: “Should it really?” and then perhaps end up changing or even deleting the spec.

If the spec said “must” people would be more hesitant to change the spec, which is actually bad – it’s the opposite of embracing change: rejecting change.

I believe that the concept of up-front and rigid requirements specifications only works in very few domains in computer science. I have never worked in an environment where requirements don’t change.

This is why I am more in favour of “should” than “must” in most cases. It may be a different case with specifications of protocols – they are much more rigid and can’t change as easily. But very few people write protocols.

]]>
By: Technology Architecture http://blog.amber.org/2006/10/27/the-language-of-specifications/comment-page-1/#comment-37675 Technology Architecture Sat, 28 Oct 2006 21:31:38 +0000 http://blog.amber.org/2006/10/27/the-language-of-specifications/#comment-37675 The Precision of Specification/Requirements Language... Chris Petrilli provides some excellent commentary on language and phrases used in specification and requirements documents. Over the course of my career producing specifications, requirements documents, project charters, etc. I have come to favor very ... The Precision of Specification/Requirements Language…

Chris Petrilli provides some excellent commentary on language and phrases used in specification and requirements documents. Over the course of my career producing specifications, requirements documents, project charters, etc. I have come to favor very …

]]>