home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / software / 4968 < prev    next >
Encoding:
Text File  |  1992-12-15  |  8.5 KB  |  174 lines

  1. Newsgroups: comp.software-eng
  2. Path: sparky!uunet!spool.mu.edu!wupost!csus.edu!netcom.com!mcgregor
  3. From: mcgregor@netcom.com (Scott Mcgregor)
  4. Subject: Re: Request for reuse tool info
  5. Message-ID: <1992Dec15.065957.26815@netcom.com>
  6. Organization: Netcom - Online Communication Services (408 241-9760 guest)
  7. References: <1992Dec4.231659.22445@mole-end.matawan.nj.us> <2311@sousa.tay.dec.com> <Bz9Kzo.HAM@unx.sas.com>
  8. Date: Tue, 15 Dec 1992 06:59:57 GMT
  9. Lines: 163
  10.  
  11.  
  12. Several people have emailed me for more information about an article I
  13. posted here in the past concerning a case of reuse that I had seen
  14. that involved a technical librarian.  The volume of requests seems
  15. high enough to justify posting here, especially since mail
  16. connectivity to some requestors seems to be difficult.  I apologize
  17. for the length, but respondants seem to want many more details, and I
  18. couldn't find a way to tell this story more consisely.  Sorry. 
  19.  
  20. Re-used text starts here:
  21.  
  22. Unfortunately, I can't reveal names under the terms
  23. of the confidentiality agreement that I signed, even though this is
  24. now ancient history.  Hope it is useful anyway.
  25.  
  26. In the late '70s a software firm that I consulted for was doing a lot
  27. of projects in FORTRAN and COBOL.  One of the rules they had was that
  28. all subroutines in their shipped products had to be QA'ed and then put
  29. into a company subroutine library (aka directory). There was also a
  30. requirement that there be a comment block filled out by the programmer
  31. at the front of each subroutine, describing the parameters and what
  32. the program did.  Other than this, there was no formal reuse library
  33. requirements. QA was responsible for "managing" the library which
  34. amounted to checking in new subroutines as products were released, and
  35. replacing others as bugs were fixed and code updated, no more.
  36.  
  37. One of the QA engineers left the company and QA was short handed.
  38. Because of the company's financial situation at the time, management
  39. would not approve hiring someone from outside, though it did approve
  40. transfers from other departments of existing employees.  The QA
  41. manager published an internal openning req, and one person applied,
  42. one of the company technical librarians who had just finished a
  43. computer programming class at a local community college.  While this
  44. person's skills weren't what the QA manager wanted, the QA manager
  45. figured that some employee would be better than none. So he hired the
  46. technical librarian. He gave her the least technical (and from their
  47. perspective least desirable) task: maintaining the company software
  48. subroutines library.  However, the librarian's view of her new job was
  49. different from what QA had done in the past--she really took the
  50. librarian part of the job seriously.
  51.  
  52. In another interesting turn of fate, the librarian's office was the
  53. first office on the hall after you entered the building.  So every
  54. programmer walked past her office on entering the building in the
  55. morning and after lunch, on leaving for lunch and at the end of the
  56. day, as well as anytime they wanted to go to the restroom, or to the
  57. employee lounge and lunch room. 
  58.  
  59. In an apparently organic way, programmers started to ask her if she
  60. knew of any date routines in the library or other common subroutines
  61. they might reuse.  She would promise to get back to them by phone in a
  62. few minutes or as they returned from lunch, etc.   Then she would
  63. search the directory (i.e. the library) for potential matches and keep
  64. a list of the names, and they passed that on to the interested
  65. programmer. At first only subroutines that the programmers were sure
  66. existed were solicited, but over time they became more varied and
  67. detailed.
  68.  
  69. At the same time, some organic changes were taking place in the
  70. programming groups.  The programming department tended to operate in
  71. self-managed teams. Management didn't create any job differentiation
  72. between programmers.  However, once the use of the library started to
  73. grow a spontaneous job differentiation occured.  Programmers in teams
  74. started to divide some design tasks among themselves according to
  75. individual programmer preffernces.  People who preferred to
  76. research the library and develop alternative designs that maximized
  77. re-use, did so, while people who wanted to do "clean sheet development"
  78. worked on writing subroutines for areas where there were no
  79. alternatives. Some projects achieved 90% reuse while 40-60% was
  80. common.
  81.  
  82. Because programmers were thankful for the help of the librarian and
  83. liked her, they created tools to help her.  These included key word
  84. search tools, and exhaustive search (grep-like) tools.  They also
  85. created a thesaurus tool for her. This simplified her work.
  86.  
  87. After approximately three years, reuse levels and profits were way up.
  88. Then the librarian left the company. The company was doing well then,
  89. so QA was allowed to replace her with a skilled programmer from
  90. outside the company. Since the new replacement wasn't particularly
  91. interested by "librarian work", and because all of these tools were in
  92. existance, it was decided that no librarian was needed and that programmers
  93. could just invoke the tools themselves. 
  94.  
  95. Re-use started to plummet substantially and quickly.  The block comments that
  96. programmers wrote weren't very good until improved by the librarian,
  97. often using the thesaurus program. Now they had to be individually
  98. checked.  Pretty soon they were back to where they started in
  99. productivity. Things didn't get set up right and programmers started
  100. to only retrieve what they had contributed.
  101.  
  102. I asked the librarian why she thought there was a difference.  She
  103. said that the big difference was that she liked researching in the
  104.  
  105. but wide library and others did not. She thought of the library as this shallow
  106. but wide swamp that she would wade out into, grab a handful of mud
  107. bring it to the edge and wash it off, and then programmers would say
  108. "Thank you, thank you, thank you!!! Gems! Gems! You are terrific".
  109. This was very rewarding to her.  
  110.  
  111. But when the programmers took over doing the access themselves they
  112. saw it differently.  When I explained the swamp analogy to one he
  113. replied, "Yup, that's right--the library is this big muddy swamp. You
  114. have to wade out into it and go through all this muck.  Who needs it,
  115. I'll just sit on the shore and construct my own solution from
  116. scratch!"
  117.  
  118. In short, many programmers didn't feel rewarded by searching through
  119. libraries and re-using code.  Such activities were "de-skilling"
  120. compared to the more enjoyable tasks of writing new code. So, when
  121. people were busy they didn't do these or didn't do them well.  This
  122. wasn't intentional sabotage, nor malicious compliance, it was just
  123. people doing what they liked more intently and letting slip what they
  124. didn't like.  
  125. A
  126. I found that the success of the program (and subsequent failure) was
  127. dependent upon the roles that people played, their particular values
  128. and how the tasks they worked on fitted the tasks they like.
  129. A
  130. I've since noted that CS programs tend to discourage library research
  131. and reuse of existing designs, whereas other engineering programs such
  132. as civil engineering are just the opposite, and failure to reuse a
  133. known truss design could be considered a problem.  I think this tends
  134. to act as a filter that discourages people with certain values and
  135. encourages others, and in particular it discourages people who enjoy
  136. library research.  You can see this in the lower level of library use
  137. you see among software developers vs. hardware developers in company's
  138. I've worked at like HP. 
  139.  
  140. Someone planning  a reuse program might think intently upon
  141. using human support like technical librarians and take careful
  142. consideration as to how to make it easy for developers to talk with
  143. these people.  They might also consider intentionally hiring a new
  144. team of programmers with a particular pro re-use set of personal
  145. values. 
  146.  
  147. I could go on in more detail, but that would probably be more
  148. appropriate for a consulting engagement.  Interested parties should
  149. contact me off-line at one of the addresses below:
  150.  
  151.  
  152. Scott L. McGregor        mcgregor@netcom.com
  153. President            tel: 408-985-1824
  154. Prescient Software, Inc.    fax: 408-985-1936
  155. 3494 Yuba Avenue
  156. San Jose, CA 95117-2967
  157.  
  158. Prescient Software sells Merge Ahead, the tool for Merging Text or Code and
  159. offers consulting  & training in project management and design for usability.
  160.  
  161. -- 
  162.  
  163. Scott L. McGregor        mcgregor@netcom.com
  164. President            tel: 408-985-1824
  165. Prescient Software, Inc.    fax: 408-985-1936
  166. 3494 Yuba Avenue
  167. San Jose, CA 95117-2967
  168.  
  169. Prescient Software sells Merge Ahead, the tool for Merging Text or Code and
  170. offers consulting  & training in project management and design for usability.
  171.  
  172.  
  173.  
  174.