home *** CD-ROM | disk | FTP | other *** search
/ ftp.umcs.maine.edu / 2015-02-07.ftp.umcs.maine.edu.tar / ftp.umcs.maine.edu / pub / WISR / wisr6 / proceedings / ascii / karllson.ascii < prev    next >
Text File  |  1993-10-19  |  21KB  |  453 lines

  1.  
  2.  
  3.  
  4.  
  5.                    Roles  and  role  conflicts  in  reuse  pro jects
  6.  
  7.  
  8.  
  9.                                          Even-Andre Karlsson
  10.  
  11.  
  12.  
  13.                                                    Q-Labs
  14.  
  15.                                                     Ideon
  16.  
  17.                                               S-223 70 Lund
  18.  
  19.                                                    Sweden
  20.  
  21.                                          Email:  eak@q-labs.se
  22.  
  23.  
  24.  
  25.                                                   Abstract
  26.  
  27.  
  28.     Reuse is seen as one of the main sources of productivity increase in software development
  29. within the next decade.  Up till now there has been mainly a focus on either organizational
  30. or technical aspects of reuse.  We argue that to achieve reuse we have to organize and plan
  31. both development for and with reuse within a project. In this article we identify different roles
  32. in connection to reuse, and the role conflicts that leads to many of the reuse inhibitors which
  33. block the full potential of reuse.  This work is done within the context of the ESPRIT project
  34. REBOOT. The REBOOT projects aims at producing methodologies and tools supporting reuse,
  35. but is also giving considerable attention to the equally important implementation of reuse in
  36. industrial environments.
  37.  
  38.  
  39. Keywords: Reuse projects, roles, conflicts
  40.  
  41.  
  42. Workshop Goals: Learning; networking; discuss ideas
  43.  
  44.  
  45. Working Groups: reuse project management, reuse organization
  46.  
  47.  
  48.  
  49.                                                  Karllson- 1
  50.  
  51.  
  52. 1      Introduction
  53.  
  54.  
  55.  
  56. Reuse  has  attracted  considerable  attention  lately  as  one  of  the  main  potential  for  productivity
  57. increase in software development.  Up till now the fo cus on reuse has mainly been on either technical
  58. or organizational aspects.  Techniquesfor e.g.  domain analysis, classification and development for
  59. and with reuse have been extensively covered, as well as how an organization shall be structured
  60. to achieve reuse, including incentives and education. All these aspects are important, but we think
  61. that the even more important role of the project manager, and how hehas to organize his project
  62. to achieve reuse, has been neglected. In this paper we will discuss his role,and how he can analyse
  63. his project, its stakeholders and their conflict to achieve reuse.
  64.  
  65.  
  66. We can distinguish two main forms of reuse activity:
  67.  
  68.  
  69.  
  70.     fflDevelopment for reuse which is concerned with making components which canb e reusedby
  71.        others.  Here we must identify the scope of the components, i.e.  how general is it optimal to
  72.        make it.  This is mainly done by analysing the needs andb enefits for p o- tential customers
  73.        and reusers versus the cost of the additional generalizations.
  74.  
  75.  
  76.     fflDevelopment with reuse which is concerned with finding, evaluating and adapting the general
  77.        components.  Here we have tomake a cost benefit analysis on whether it is cost effective to
  78.        reuse a component instead of developing it from scratch. We also have the possibility here to
  79.        negotiate with our customer based on the available components.
  80.  
  81.  
  82.  
  83. Both  forms  of  reuse  activity  will  exist  in  most  mature  reuse  organizations,  but  we  can  envision
  84. organizations only specializing in one.
  85.  
  86.  
  87. A mature reuse organization consists of different pro jects and a set of reuse assets.  Thereuse assets
  88. are seen as a long time investment reflecting the company strategic directions.  The organization
  89. can, based on strategic choices, decide in which pro duct lines to invest (development for reuse) and
  90. for which areas only development with reuse is interesting.  Within this framework it is important
  91. that the project managers know how to conduct the different kinds of pro jects, and what arethe
  92. pitfalls.  The project manager has a focal role, as he has to reconcile all the conflicting interests
  93. which are present in a reuse project.
  94.  
  95.  
  96. The project manager's role is becoming more complex in a mature reuse organization, as there will
  97. be many more stakeholders to relate to than in an ordinary development organization. In develop-
  98. ment for reuse there will be more customers, and in development with reuse there is uncertainty
  99. on how much can be reused.
  100.  
  101.  
  102.  
  103. 2      Roles  in  the  reuse  project
  104.  
  105.  
  106.  
  107. In  this  section  we  will  analyse  the  different  roles  which  are  stakeholders  in  reuse  projects.  The
  108. roles involved in reuse projects are suitably analysed usingfour views, management, development,
  109. customer and support. For each view we also try to characterize what is different for a reuse project,
  110. divided into development for and with reuse.
  111.  
  112.  
  113. For a reuse project it is important to identify which roles are present, and to agree which persons
  114. represent the different roles. There is no guarantee that this list is complete, and for any persons
  115. not allocated a role, it is important to analyse what interests he has in the pro ject.
  116.  
  117.  
  118.                                                         Karllson- 2
  119.  
  120.  
  121. It is helpful to identify which role a person represents when one is engaged in communication. By
  122. this knowledge many common communication misunderstandings can be avoided.
  123.  
  124.  
  125.  
  126. 2.1     Customer view
  127.  
  128.  
  129.  
  130. The customer view represents the projects interface to its customers. The different customer roles
  131. are explained in the sequel.
  132.  
  133.  
  134.  
  135. Development  for  reuse   In development for reuse there are several customers (some real and
  136. some assumed) all which requirements weshall incorporate in the development.  In the customer
  137. view we must also take intoconsideration the ones which are to adapt the reusable components.
  138. Thus the different customer roles are:
  139.  
  140.  
  141.  
  142.     fflIdentified customers are those which are waiting for the reusable components when they are
  143.        under development.  They are able to expresstheir requirements and validate that they are
  144.        taken into account.  Note thatthere is one customer role for each potential customer of the
  145.        system as they represent different requirements.
  146.  
  147.  
  148.     fflPotential assumed customers are any future reusers of the components. Their requirements
  149.        are much more difficult to guess, and are thus more dif- ficult to take into account.
  150.  
  151.  
  152.     fflIdentified  reusers  are  the  application  developers  who  shall  specialize  the  components.  We
  153.        distinguish between customers which are mainly interested in the functionality of the final
  154.        specialized components and those who are to make the specialization.
  155.  
  156.  
  157.     fflPotential assumed reusers are any future reusers of the components.
  158.  
  159.  
  160.  
  161. Development  with  reuse   In development with reuse there is only one customer, but here we
  162. have the possibility to negotiate the requirements based on the available components.
  163.  
  164.  
  165. Application customer is the one interested in a given application for which we want to reuse an
  166. existing  application.  If  there  is  not  a  complete  match  between  the  required  functionality  and
  167. the one offered by the reusable component, we can either adapt the component or negotiate the
  168. requirements with the customer.  Note thatthe earlier in the requirements capturing process we
  169. find potential reusable components, the easier it will be to adapt the customer'srequirements.
  170.  
  171.  
  172.  
  173. 2.2     Development view
  174.  
  175.  
  176.  
  177. The development view represents the transformation of the customers' requirements into a final
  178. product, including support and maintenance.
  179.  
  180.  
  181. In each of development for and with reuse there is only one role:
  182.  
  183.  
  184.  
  185.     fflReuse developers are to develop generalized solutions which incorporate all the different re-
  186.        quirements.  The solution must providea p ositive cost benefit ratio for all potential reusers
  187.        and in total be larger than the initial development. For each additional requirement we must
  188.        analyse how much benefit it provides to the customer versus howmuch it will decrease the
  189.  
  190.  
  191.                                                         Karllson- 3
  192.  
  193.  
  194.        benefit of the other reusers.  We must also here take into consideration the performance as
  195.        well as complexity of the components.
  196.  
  197.  
  198.     fflApplication developers with reuse are to develop specialized applications, and to their disp osal
  199.        they have a set of reusable components.  They have the choice of either implementing the
  200.        functionality from scratch or attempting to reuse and if necessary adapt existing components.
  201.  
  202.  
  203.  
  204. Support and maintenance is provided by the maintainer.  Maintainers are responsible for correcting
  205. errors, providing functional enhancements and supporting the reusable component. Maintenance is
  206. the grease between producers and consumers being a guarantee for the quality of the component.
  207.  
  208.  
  209.  
  210. 2.3     Management view
  211.  
  212.  
  213.  
  214. The management view consists of the project managers and those she interacts with outside the
  215. project.
  216.  
  217.  
  218.  
  219.     fflPro ject  manager  is  the  one  responsible  for  the  project.   She  has  a  finite  set  of  resources
  220.        allocated, primarily time and manpower, and shall achieve a set of goals.  She has to plan the
  221.        pro ject and allocate the resources so that she can achieve as many as possible of the goals.
  222.  
  223.  
  224.     fflResource allocator is the one allocating resources to the project. Initially the pro ject is given
  225.        some resources, but this allocation can be changed during the course of the project.  These
  226.        changes can be due to a change in goals or that the initial resources where to plentiful or
  227.        to  scarce.  Development  with  reuse  is  always  a  risk  as  it  is  impossible  to  fully  predict  the
  228.        amount of work needed to adapt a component for reuse. It is important that this risk is well
  229.        understood, and that sensible judgement is conducted, but there is no guarantee that there
  230.        will never be misjudgements resulting in overruns.
  231.  
  232.  
  233.     fflPro ject evaluator is responsible for assessing the project both as it is running and when it
  234.        is  over.  This  can  be  both  with  regards  to  project  planing  (process)  and  produced  results
  235.        (product).
  236.  
  237.  
  238.  
  239. 2.4     Support  view
  240.  
  241.  
  242.  
  243. The support view consists of line organization roles which can be useful for a reuse pro ject. For
  244. each role we have divided the discussion into development for and with aspects.
  245.  
  246.  
  247.  
  248. Reuse  development  methodology  expert   Development  for  reuse  experts  are  proficient  in
  249. general techniques for representing variability at different levels of abstraction, from requirements
  250. to code. This also includes how to document the intended reusability.
  251.  
  252.  
  253. Development with reuse experts support general techniques foradapting components into appli-
  254. cations.  This  includes  adapting  the  component  so  that  as  little  as  possible  need  to  be  changed
  255. regarding  more  concrete  abstraction  levels  (e.g.  design, code  and  test  if  we  reuse  analysis)  and
  256. documentation.
  257.  
  258.  
  259.  
  260.                                                         Karllson- 4
  261.  
  262.  
  263. Cost benefit analyzer   In development for reuse we must weigh the potential benefits of adding
  264. additional requirements against the costs. The benefits are the hardest to estimate as they depend
  265. on the future reuse of the components, and for future assumed customers this is difficult to estimate.
  266.  
  267.  
  268. In development with reuse we must weigh the cost of adapting the components or its environment
  269. or  developing  the  functionality  from  scratch  if  there  is  not  an  exact  match.  This  is  a  difficult
  270. decision where the main problem is to evaluate theamount of change needed.  In particular if we
  271. reuse large components early in the life cycle a wrong decision can have catastrophic impacts.
  272.  
  273.  
  274.  
  275. Application domain expert   In development for reuse an application domain expert is someone
  276. knowing the application domain, i.e. the customers world. She might be a product line manager,
  277. and will also be able to make predictions or strategic choices for what functionality which shall be
  278. represented in the assets.
  279.  
  280.  
  281. In  development  with  reuse  there  is  not  that much  need  for  a  domain  expert, as  we  are  now  to
  282. satisfy the specific requirements of one particular customer.
  283.  
  284.  
  285.  
  286. Asset expert   In development for reuse an asset expert knows existing components within the
  287. domain, and specific guidelines for how they are to be developed.  He willalso b e able to ensure
  288. that the functionality of the new reusable components will fit into the existing set of components.
  289. He can also have a quality assurance role for the new components.
  290.  
  291.  
  292. In development with reuse an asset expert knows the existing components within the domain, and
  293. are able to guide the reuser to the right component based ontheir sp ecific requirements.
  294.  
  295.  
  296.  
  297. Library expert   In development for reuse a library expert shall ensurethat the new components
  298. are inserted correctly into the library so that they can be retrieved by potential reusers.  She will
  299. also be responsible for introducing new terms if that is found necessary.
  300.  
  301.  
  302. In development with reuse the library expert will assist thereusers in retrieving a set of candidate
  303. components which can be evaluated, and possibly reused.
  304.  
  305.  
  306.  
  307. 3      Role conflicts
  308.  
  309.  
  310.  
  311. In this section we identify some of the conflictswhich can occur between different roles in a reuse
  312. project. These role conflicts will result in many of the well known reuse inhibitors which blo ck the
  313. full benefits of reuse. For each of the role conflicts we willtry to indicate possible counter measures,
  314. thus reducing or removing the reuse inhibitors.
  315.  
  316.  
  317. A role conflict will occur when there is a difference in interests and there are not enough resources
  318. to satisfy both sides. When this situation occurs it is important to be able to analyse the possible
  319. solutions from an objective standpoint.  To do this it is important to determine which roles the
  320. different persons involved in the conflict represents, and both their long and short term cost and
  321. benefits of different solutions.  It is often the case that the same person will have more than one
  322. role. It is then often difficult to get an objective view of the conflict, and make the most rational
  323. solution. In particular if some of the roles are more important than others.
  324.  
  325.  
  326.  
  327.                                                         Karllson- 5
  328.  
  329.  
  330. We have divided the discussion of the role conflicts into development for and with reuse. Most of
  331. the conflicts appear within and between the different roles in the customer and development views.
  332. The other roles are mostly used to represent the weak part in these conflicts, and as an arbiter.
  333.  
  334.  
  335.  
  336. 3.1     Development for reuse
  337.  
  338.  
  339.  
  340. The main problem in development for reuse is to find the right level of generalization; a too general
  341. component will be too complex and difficult to understand and specialize, whereas a too specific
  342. components  will  not  fit  many  reusers.  As  we  collect  the  requirements  from  different  potential
  343. customers we must always keep this trade-off in mind, as every role will try to maximize its benefit
  344. from the component.
  345.  
  346.  
  347. It is not a trivial to find the right level of generalization which satisfies all parties with respect
  348. to functionality, performance, complexity, maintainability and adaptability. There will always be
  349. conflicting interests when several different parties are involved.
  350.  
  351.  
  352. The conflicts do usually surface when the resources gets short, i.e. we are already late, up tillthem
  353. people have been shuffling the problems ahead, hoping that they will disappear. At this point it
  354. is difficult to find any satisfactory solution for all parties.  It is therefore recommendable that we
  355. analyse the stakeholders involved at an early stage to get the conflicts into the open.
  356.  
  357.  
  358.  
  359. Customer  _  customer  conflicts   Different  customers will  to  some  degree  have  differing  re-
  360. quirements - otherwise they would be the same customer. These differing requirements will lead
  361. to conflicts when it comes to what the software shall provide.  The aim of development for reuse
  362. is to identify common requirements which are invariant for many customers, and design compo-
  363. nents which reflect these and allow each customer to specialize the components for his particular
  364. needs. All customers will like the reusable components to be as close to their total requirementsas
  365. possible, thus minimizing their own effort in specializing the component.
  366.  
  367.  
  368. These  conflicts  are  particularly  dangerous  when  the  strength  relationship  between  the  different
  369. customers  is  uneven.  This  is  for  instance  the  case  between  identified  and  potentially  assumed
  370. customers, and  in  a  development  for  reuse  within  an  application  project  where  the  application
  371. customer is in command. In these cases it is important that we find someone which can represent
  372. the weaker interest, e.g. an application domain expert.
  373.  
  374.  
  375.  
  376. Designer _ designer conflicts   When we have brought the conflicts in the requirements into the
  377. open it is important that we identify the benefits of the different requirements so that the designers
  378. can take the most important into consideration. The designers will thus have many of the same
  379. internal conflicts as the customers, i.e.  the designers whichhave specific interests in reusing the
  380. components will ensure that it fits them as much as p ossible.  In many cases the different roles of
  381. the reusers will be represented by only one develop er, and if he has his own interests as well the
  382. other reusers will suffer. This is particularly common during development for reuse in application
  383. projects.
  384.  
  385.  
  386.  
  387. Customers _ designers conflicts   The customers (and potential reusers) would like the system
  388. to be as fine grained when it comes to representing the variability to minimize specialization effort,
  389. whereas the designers wants to have a coarse grained representation which is easier to develop and
  390.  
  391.  
  392.  
  393.                                                         Karllson- 6
  394.  
  395.  
  396. maintain.  This can be exemplified with a class hierarchy,  the customerswanting a fine grained
  397. and deep hierarchy,  whereas the developers will strive for a coarse grained and shallow. But even
  398. for the reusers there will be an advantage of a more coarse representation as it will be easier to
  399. understand. This conflict is continued between the reusers and maintainers of the components.
  400.  
  401.  
  402. There  is  also  a  second  source  of  conflict  concerning  variability  which  relates  to  combination  of
  403. different functionality,  i.e. someone wants to combine two pieces of functionality which were not
  404. designed together. This problem is similar to feature interaction in telecom systems and multiple
  405. inheritance problems in object-oriented programming. Thus for every pair of differing requirement
  406. we should perform an analysis to see if they can be needed together, and if that isp ossible inour
  407. design.
  408.  
  409.  
  410.  
  411. 3.2     Development with reuse
  412.  
  413.  
  414.  
  415. The main problem in development with reuse is to know when to reuse.  Is the effort to search for,
  416. evaluate, understand and possibly adapt a reusable comp onent less than the effort used to develop
  417. it from scratch?  Note that the process of reusing a component is divided into clearly separated
  418. steps, where each step requires effort. The savings for the reused components,must cover all these
  419. steps (also for the instances where we stopped the process discarding all candidate comp onents) as
  420. well as the investment in developing the reusable components.
  421.  
  422.  
  423.  
  424. Customer  and  developers   Application  customers  and  reusers will  have  a  potential  conflict
  425. if the reuser has found a component which fits some but not all of the customers requirements.
  426. The reuser will save considerably on reusing the comp onent, but the customer will not get all his
  427. requirements  fulfilled.  It  is  then  a  negotiation  process  between  the  customer  and the  reuser  to
  428. change the requirements.
  429.  
  430.  
  431.  
  432. Reusers and maintainers   Reusers are responsible for extractingand sp ecializing reusable com-
  433. ponents, whereas maintainers are responsible forcorrecting bugs and when necessary enhancing the
  434. component. There is a gray zone between what is enhancement which should be done to the general
  435. component, and what is specialization.  If the reuser can convince the maintainer to enhance the
  436. component so that he can reuse it as is the reuser saves b oth the development and maintenance
  437. of the specialization.  It might evenb e cost effective as the maintainer will know the component
  438. better than the reuser.
  439.  
  440.  
  441.  
  442. Reuse developers and reusers   Between developers of reusable components and reusers there
  443. need to be, as with any other piece of software, a relationof trust.  There is always a tendencyto
  444. regard any piece of code which one has not written oneself (with one's owns standards) as a risk _
  445. the not invented here syndrome. To increase the trust reusable comp onents must have a specified
  446. quality level, and to ease understandability it should follow development and documentation stan-
  447. dards.  If possible potential reusers should b e able to get in personal contact with the developers
  448. or maintainers of larger components, preferably before they commit to reuse it.
  449.  
  450.  
  451.  
  452.                                                         Karllson- 7
  453.