Hi Thorsten, all,

Thorsten Behrens schrieb:
Hey, and yes, having a feature documented is _also_ nice

IMHO it is not "nice", but an indispensable part of software engineering. A spec defines the _intention_ of a piece of software.

Without a clear and documented intention I cannot make something reliable, something that I want millions of people to use and enjoy.

Code defines the actual behavior. Without a I do not know, if that matches the intention. You once said, as long as nobody complains, that does not matter. I am not so sure. E.g. if some code has specific security features and that is not documented in a spec, further development may destroy that feature. Nobody will complain, until it is too late (security was hurt). Or some code aligns to a good UI rule, or some code provides output in a format that can be understood by another program. Such things are not always obvious and can be broken easily, if there is no spec.

> Fixing the root cause of your problem is not providing more
documentation, but providing more automated testing.

Tests (unit tests) check, if the code fulfills specific contracts. But tests can have errors or get outdated. Without a spec, one cannot say, if the code or the test is wrong.


As for the additional effort - should we require everyone to do this?

My thoughts: Contributing to OOo can be (and of course should be) fun, especially for those doing this in their free time and out of enthusiasm. But just, if I do something for fun, I normally want it to be something useful, don't I? If I contribute to OOo, I expect some million people to use the product with my additional feature and enjoy it. Is it really a tall order, if then I not only do the "fun-part" (coding), but also some things that are less fun, but helpful for a professional outcome?

Specs often are finished only after writing the code. That is because our imagination is limited. Often we need a tangible example, before we know what we really "wanted". There is nothing wrong about changing and polishing a spec after having written the code.

Still also the spec "after the fact" needs to reflect the _intention_ of the software. If the spec simply documents that code behaves unusable, than it can work as documentation for QA etc., but there would be still a bug: Its a pain for the user. Also the spec can not (must not) say anything about the design. A spec says _what_ the program does, not _how_.


Having said all that, nevertheless the overhead should be as small as possible. There is no sense in writing a spec, just for having one. For many features the spec may only need two sentences or 10 lines. And then it needs to be possible to indeed make it as short.

Nikolai

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to