Business, Linux, Ethics and Standards - [Was]RE: [Sussex] Yet Ano ther Windows Bug
Trevor Marshall
trevorm at rusham.demon.co.uk
Tue May 6 21:58:01 UTC 2003
On Tuesday 06 May 2003 11:26, Geoff Teale wrote:
<lots of stuff I mostly agree with snipped>
> I've seen exactly the same more than once in this company as well. None of
> this is really Microsoft's fault. It's the fault of the developers
> involved.
Errr, I may just have to take issue with you here, depending on what you mean
by "the developers". The problem usually reduces to inadequate specification
of requirements and/or inadequate testing against those requirements. If the
requirement is to design a system capable of accurately recording all sums
(to the nearest cent) up to, say, a billion dollars then using it for larger
sums is outside the design requirements, and it's unreasonable to expect it
to work. Not only that, but if the requirement is as above, and you spend a
significant amount of extra effort making your product handle larger amounts
then you are effectively wasting that effort as it does not (directly) help
you to meet the requirements.
Of course, in the free software world, writing software to scratch your own
itch in your own time you can do what you want.
> Trouble is, people have this mental block about computers,
> anything a computer says is gospel,
There used to be a twist on the old GIGO (garbage in, garbage out) which
added 'but, having been through the computer this garbage is now infallible'.
> and this of course, is why we shold
> have independent qualifications for programmers and those qualifications
> should include a course of Assembly programming and an exam on computer
> science. The further away we get from the issues the less we understand
> them. It's fine to use high level languages and tools, they help, but you
> can't tell what they are an aren't doing unless you know where to look.
So do you need an elec. eng. qualification so you understand how the
transistors work, or some particle physics to understand properly how the
semiconductors are made? I think not. But you do need to have accurate
requirements, and a tracable means of testing your code to demonstrate that
you've met them. As for the high-level / low level languages stuff, you
should choose the language most appropriate for the problem domain. I'm not
going to attempt to manipulate registers directly in
[Perl|PHP|Python|Ruby|VB], but I'm unlikely to bother to write a script to
manipulate some database data in x86 assembler. (That may be because I don't
actually know much x86 assembler, although I do know a few others, mostly
obsolete now)
You might also think on this: if you meet all the customers requirements,
pass all the tests agreed with the customer and the software doesn't do what
the customer wants, who's fault should that be?
--
Trevor Marshall
More information about the Sussex
mailing list