The organization I work for develops software products (in Jonathan Grudin's sense of the term) - things may be different in in-house or contract development. Our major product is released on approxmately a six month cycle. The time breakdown of this cycle is roughly: 42 percent of the time is spent on requirements, design, and coding (Guess: 40 percent design, 60 percent coding) 58 percent is spent on productization What activities are included in productization? Preparation of install procedures and scripts On-line documentation and manuals Writing and running code testing scripts Install testing (the biggy!!) Packaging design Manufacturing (printing the boxes and burning the CDs) Note that productization IS primarily a software development activity!! It is done by people sitting at terminals and writing code in notations. In fact, my guess is that there are more lines of install scripts, test scripts, manufacturing scripts, etc. than there are of C++. Productization is also an area in which schedule slips are likely to occur. It's at this point in which it is discovered, for example, that the new development system that we've just switched to has libraries that are incompatible with the ones most of our older products are using, etc... Where could we use help? Well, as the above time distributions indicate, notations such as help authoring systems, install scripts, test scripts, etc. are probably slightly more important than ones like Java/Python/C++. My memory isn't what it once was, but, to date, I don't recall seeing any usability analysis of ANY of these notations. Is Installshield the best we can do, or would we be better off doing installation scripts in Python or Perl, etc. Ruven Brooks
