My organization produces end user software for design of industrial control systems; 
in consideration of the .org status of PPIG, I'll refrain from giving the URL.

Obviously, this gives me a different slant on what programming is about than Russell 
Winder's experience.  Our two biggest problems are (1) the software does not perform a 
function needed by the user and (2) it won't install.  The first causes people never 
to buy our products in the first place;
the second causes people to return what they bought.  If it will install and do 
something useful, people seem
pretty tolerant of crashes and other glitches.

Testing has entirely different meaning for me.  Unit testing is just the smallest part 
of what is needed to ship a commercial product.  Application testing is where the big 
effort is required.  This can be further partitioned into fault testing, to make sure 
the software doesn't crash and, much more important, that it will install, and 
functionality testing,to make sure it performs the functions required by the user.  

Fault testing is usually done with automated tools, given that trained monkeys or
college freshmen are usually unavailable in sufficient numbers.  It's the function 
testing that requires the really good people since they must understand what 
capabilities are provided by the software and how to use these capabilities to solve 
user problems.   A lot of the work the apps. testers do is writing the scripts that 
the automated tools will execute.  In some cases, although they are the ultimate 
experts on what a piece of software does, the actual coding skills of the apps. 
testers are limited to the test script language.

I didn't mean to give the impression that my organization still employs coders.  As I 
mentioned, people whose predominant skill is coding are only hired as temporary 
workers as dictated by short term needs.

Really good programmers in my organization spend most of their time discovered what 
customers requirements are, translating those requirements into product features and 
capabilities, developing architectures for implementing those capabilities, which may 
involve some coding exploration, and last but not least writing product and unit test 
code. If I measured what they were doing by what they had up on their screens, I guess 
that 50% of the time was spent using email or collaboration tools, another 25% was 
spent in word processors, and the remaining time in programming language editors.

It's my impression that by the time people have refined their designs to the point 
where it makes sense to code them, even on an exploratory basis, all of the important, 
critical and costly design decisions have already been made. If my conjecture is true, 
then we won't learn much about the programming process if all our studies and research 
are focused on the coding activity, and we won't be able to train good programmers in 
universities if all we do is train them to write and debug code and reason about the 
code and test cases they have written.

Ruven Brooks


- Automatic footer for [EMAIL PROTECTED] ----------------------------------
To unsubscribe from this list, mail [EMAIL PROTECTED]  unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED]         help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]

Reply via email to