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]
