Enabling Domain Experts to Develop Usable Software ... - Springer Link

3 downloads 26272 Views 2MB Size Report
Enabling Domain Experts to Develop. Usable Software Artifacts. Daniela Fogli and Antonio Piccinno. Abstract End-user development techniques are recently ...
Enabling Domain Experts to Develop Usable Software Artifacts Daniela Fogli and Antonio Piccinno

Abstract End-user development techniques are recently becoming a fundamental added value of information systems, since they allow system adaptation to the evolving needs of a company’s users. To adequately manage the life cycle and code quality of software created through end-user development activities, end-user software engineering literature proposes a variety of methods. However, the underlying assumption is that end users carry out end-user development activities to adapt or develop software artifacts for their personal use. For this reason, the usability of the software artifacts resulting from the end user’s work becomes a secondary issue. But, this is not true for multi-tiered proxy design problems, where the usability of software artifacts created by domain experts for other people is instead a fundamental issue. In this chapter, we analyze the approaches presented in literature that address this kind of problem, and propose a preliminary solution based on meta-design and meta-modeling. Keywords End-user development

 Meta-design  Meta-modeling  Usability

1 Introduction The human–computer interaction (HCI) community has promoted user-centered design (UCD) approaches for more than twenty-five years, in order to favor the development of systems that end users find easy to use and to learn [1]. While in D. Fogli (&) Dipartimento di Ingegneria dell’Informazione, Università degli Studi di Brescia, Brescia, Italy e-mail: [email protected] A. Piccinno Dipartimento di Informatica, Università degli Studi di Bari, Bari, Italy e-mail: [email protected]

P. Spagnoletti (ed.), Organizational Change and Information Systems, Lecture Notes in Information Systems and Organisation 2, DOI: 10.1007/978-3-642-37228-5_41, Ó Springer-Verlag Berlin Heidelberg 2013

419

420

D. Fogli and A. Piccinno

UCD potential end users are only interviewed or observed, thus playing a passive role in design, participatory design (PD) approaches make a step further, by promoting a more active involvement of end users throughout the system design process [2]. On the other hand, private and public companies are more and more frequently requiring information systems that are flexible enough to be adapted to the variety of their users and to the dynamic markets in which they need to operate [3]. Enduser development (EUD) methods are recently proposed to build such flexible systems and support their adaptation directly on behalf of end users [4]. More specifically, EUD leads to transfer to end users part of the activities that are traditionally performed by software developers, namely, not only software adaptation and extension by means of end-user programming (EUP) techniques, but also interaction design, system prototyping, and software design, customization, and maintenance. Particularly, EUD research focuses the attention on those people who use software systems as part of their daily life or daily work, but who are not interested in computers per se [5]. These people have no or few competencies in information technologies and often are not willing to acquire them. This aspect raises many doubts in the software engineering community, which insists on the importance of skilled, professional software developers to guarantee software correctness, efficiency, maintainability, and security [6]. The issue of software quality in EUD is being addressed in the so-called enduser software engineering (EUSE) area [7]. A variety of methods are proposed for requirement analysis and specification, system design and reuse, verification and testing, code debugging, which could be easily applied by non-professional software developers. However, a further and important issue related to EUD that has not been adequately addressed yet is the usability of the software artifacts developed by end users. In fact, in this research area, the term ‘usability’ is usually referred to the easiness of use of the end-user programming language/paradigm [8] or to the engaging metaphor of the EUD environment [9]; whilst, few words are spent for the usability of the results of the EUD activity. On the other hand, EUSE mainly considers EUP and EUD as activities that create programs for personal rather than public use, thus distinguishing them from professional programming, which has the goal of developing code for others to use [7]. In this perspective, the usability issue may not be a priority. However, this distinction becomes blurred when the so-called multi-tiered proxy design problems are considered [10]. These kinds of problems can be described as follows: (1) in a given domain there are end users who need software artifacts to carry out some personal activity, but who are neither able nor interested in participating in their development; (2) in the same domain, there are also domain experts, who are able to describe the software artifacts that should be designed for the end users, but who are not able to create the needed technologies; (3) finally, there are software professionals who know how to develop technical systems, but who are unable to offer this service directly to end users without the help of domain experts. This

Enabling Domain Experts to Develop Usable Software Artifacts

421

situation occurred for example in the MAPS project, which aimed to provide a simple, PDA-based device that prompts instructions to support a person with cognitive disabilities in the accomplishment of her/his daily tasks [10]. Software professionals created a simple editing tool to allow caregivers (domain experts) developing prompting systems customized to the characteristics of the disabled people (end users). The use of the editing tool does not require caregivers to have programming skills. As the MAPS project, most proposals addressing multi-tiered proxy design problems are based on a meta-design paradigm [11] and on the development of a hierarchy of interactive environments (e.g., [12–14]). Particularly, in this hierarchy, EUD environments are crucial to support domain experts to play the role of end-user developers by creating software artifacts for the actual end users. As a consequence, the usability of such software artifacts goes back to being a fundamental feature. Here, we have a situation similar to that one leading to UCD and PD approaches: ‘‘designers are not users’’ [15] and this favors the development of systems that users find difficult to use. In addition, when such designers are enduser developers, the creation of usable systems becomes a greater challenge, because end-user developers are often unwitting programmers and have a vague understanding of the usability concept. In fact, the knowledge needed to design an effective and usable interactive system is usually distributed among domain experts, software engineers and HCI experts. Hence, the design of an interactive system should be a multi-facet activity requiring the collaboration of experts from these communities [16]. To cope with the multi-tiered and multi-facet design problem, we need a design approach where the usability of software artifacts is guaranteed in advance by the approach itself. In the following, we propose an approach that capitalizes on the ideas at the basis of the software shaping workshop (SSW) methodology [14], but that generalizes them to take care of the usability issue. For the sake of chapter clearness, let us briefly recall here the main characteristics of the SSW methodology. SSWs are software environments where professional or non-professional software developers find all and only the objects and tools necessary to shape their software artifacts. SSWs are organized according to a three-level hierarchy: (1) at the meta-design level, there are SSWs used by software engineers to create system workshops for domain experts; (2) at the design level, domain experts use system workshops to cooperate in the design, implementation, and validation of application workshops for end users; (3) at the use level, end users carry out their tasks through application workshops created at the design level and customized to their needs, culture, and skills. In this chapter, we describe an approach to enabling domain experts to cope with the usability of the software artifacts they develop (application workshops, in the SSW terminology). Then, we show how the proposed solution has been implemented in two different domains.

422

D. Fogli and A. Piccinno

2 Addressing Usability Through Meta-Design and Meta-Modeling With respect to the SSW methodology, the approach proposed here deepens the activities to be carried out in the meta-design phase. Particularly, a (meta-)design team, including not only software engineers, but also HCI specialists and domain experts, defines at first the conceptual model of the software environments devoted to end users. This activity should be carried out through participatory design techniques [2], such as meetings among all stakeholders to perform task and scenario-based analysis, or mock-up development. Metaphor and interaction style of the environments for end users are thus defined; they will strongly depend on domain characteristics and users’ habits. For example, in Ref. [12] the logbook metaphor was proposed to support the work of epathologists: a virtual logbook is the digital counterpart of a paper-based archive used by physicians to record their data and activities. In the mechanical engineering domain, we adopted the metaphor of the artisan workshop [9]; whilst, in the neuroradiology field, a workbench enriched with a virtual diaphanoscope became the metaphor to support medical image annotation and consultation exchange [14]. After the conceptual model definition, the design team must define a meta-model that describes and generalizes the structure and properties of the software environments devoted to end users. This meta-model could be represented as a UML class diagram, an ontology, or an XML schema. Then, members of the design team will collaborate to the development of the EUD environment that supports the creation of instances of the meta-model, namely of specifications of the software environments for end users. To conclude the meta-design phase, software engineers must create an interpreter of the meta-model instances, capable of generating the software environments described by such instances. This interpreter must generate environments that satisfy the conceptual model previously defined by the design team. In this way, the usability of EUD products does not depend anymore on the capability of end-user developers, but is a responsibility of the design team that designs the conceptual model, defines the meta-model and creates the EUD environment, and of the software developers who develop the software generator according to the defined conceptual model. Even though one can object that this approach may limit end user developers’ creativity, this is a way to have more control on their activity and avoid the creation of unusable products.

3 First Case Study: EUD in the e-Government Domain In Ref. [17] we presented a meta-design approach to the development of e-government services. Here, software engineers, HCI specialists and civil servants (domain experts), i.e., the design team, have collaborated to define the characteristics of online services for booking appointments at the different

Enabling Domain Experts to Develop Usable Software Artifacts

423

Fig. 1 EUD environment for the e-government case study

counters of a government agency. The conceptual model of these services is based on a form-based, step-by-step interaction style; indeed, it recalls the traditional way of communication between citizens and government agencies. The design activity led then to define a meta-model representing the considered class of services, which was then represented by software engineers through an XML schema. Then, the team designed an EUD environment able to support civil servants in creating instances of the XML schema, namely XML documents describing the steps of the appointment reservation services. The EUD environment does not force domain experts to write any XML code, neither to know the underlying meta-model, but just requires them filling in forms that allow defining the requests for citizens in each interaction step of the service under creation. Steps may be mandatory or optional, and the civil servant can decide their sequence order. A screenshot of the EUD environment is shown in Fig. 1. Here, the user has just created two steps of the e-government services: (1) the step for choosing the date of the appointment among a set of dates specified by the civil servant through a set of constraints, (2) the step for choosing the time of the appointment from a list of times. These two steps have been created by selecting the respective buttons in the toolbar on the top of the page, and have become available for future access and modification as selectable widgets in the summary section on the right side of the page. In the current state (Fig. 1), the domain expert is defining the step ‘‘Topics and Notes’’, by creating the list of appointment topics among which the citizen can make a selection and by associating text that indicates the papers the citizen must bring to the appointment. The domain expert can also add a request for notes, but,

424

D. Fogli and A. Piccinno

Fig. 2 A step of a web application for citizens

in this case, she decided not to include it. The XML document obtained after the interaction with the EUD environment is interpreted by a software application developed by software engineers to generate the actual web pages of the service. For example, Fig. 2 shows the page implementing the ‘‘Topics and Notes’’ step defined in the EUD environment. Both the EUD environment and the web applications created through EUD have been judged usable by civil servants and citizens respectively [17]. In particular, we have conducted a test with four citizens to assess the usability of two appointment reservation services created with our EUD environment. Only the two oldest participants (age ranging from 60 to 70) encountered some minor problems, due to their low familiarity with computer technologies. However, their performance improved significantly during the use of the second service, thus demonstrating that a little experience is sufficient to interact easily with e-government services generated with this approach.

4 Second Case Study: EUD for Mass Customization The second case study is in the classic style furniture domain [18]. In this case, a company (Maiellaro s.r.l.) producing classic style furniture only produces those pieces that are ordered by a customer. Customers provide a description of the piece of

Enabling Domain Experts to Develop Usable Software Artifacts

425

Fig. 3 EUD environment for the classic style furniture case study

furniture they want, which may be composed of parts chosen from different items in the available catalogues, by possibly specifying dimensions, type of wood and other characteristics. One of the main problems in this case study is that the information needed to customize a piece of furniture are scattered in different archives, i.e., the catalogue of Maiellaro company and the catalogues of Maiellaro’s suppliers. These suppliers’ catalogues are very diverse and heterogeneous because they refer to various crafts and arts (e.g., glass suppliers, wood artisans). Thus, it is really difficult to have an overall view on all existing information. Another problem is driving customers in selecting components of items in the catalogues and allowing them to assemble such components in reasonable ways to create a new piece. To cope with this problem, the design team including software engineers, HCI experts, and domain experts (managing director, technical department employees, sales office employees) defined the conceptual model of a software environment for customers (end users). This conceptual model resembles the current end-user practice: the sales office employee helps customers choose and customize their pieces of furniture by showing pieces in different catalogues taken from a bookcase and put on a bench; customers are thus allowed to customize the desired furniture by replacing and personalizing components chosen from different pieces of furniture belonging to possibly different catalogues. As a consequence, the adopted meta-model consists of an ontology describing the components of each piece of furniture and their properties. The ontology allows also setting all rules and constraints to assemble various components in order to generate all and only those pieces of furniture that are considered by the ontology. The design activity then led the design team to develop a prototype of an environment able to support technical department employees in accessing and updating ontology properties and rules (Fig. 3), without being aware that they are manipulating an ontology.

426

D. Fogli and A. Piccinno

Fig. 4 The customization of classic style furniture by end users

The design team finally developed the software environment for customers, whose specific instantiation depends on the underlying ontology. A possible environment for customers is reported in Fig. 4, which shows a bench providing a unified view of all available catalogues of Maiellaro and Maiellaro’s suppliers and allowing the shaping of the desired piece of furniture by means of piece selection and composition. A preliminary usability evaluation of this environment, involving three customers, has been conducted with very positive results.

5 Discussion and Conclusion The approach presented in this chapter does not conceive EUD as direct creation of code on behalf of end-user developers, but as the instantiation of a meta-model that represents a domain-dependent class of software environments for end users. Usability of the resulting environments is achieved through a meta-design activity, carried out through user-centered and participatory methods. To guarantee usability, however, flexibility of the EUD activities must be restricted. In our approach this is obtained by creating domain-dependent conceptual models and by driving and controlling end-user developers’ interaction with the EUD environment. The trade-off between the flexibility of EUD tools and the usability of EUD products is an important aspect that deserves, in our opinion, an additional

Enabling Domain Experts to Develop Usable Software Artifacts

427

reflection within the EUD community in the next years. This aspect is even of particular importance in the case of information systems, where end-user developers are often business managers who must design or customize software artifacts for other users, such as company employees or customers. Maybe the trade-off could be balanced by realizing the vision of ‘‘EUD as a learning process’’ discussed in [19]. Anyway, the approach proposed in this chapter tries to respond to the doubts of the software engineering community with respect to EUP and EUD [6]: the responsibility of developing the meta-model and its interpreter should remain on the shoulder of software engineers, who may thus guarantee that what is created by end-user developers is not only usable, but also effective and efficient.

References 1. Norman, D. A., & Draper, S. W. (1986). User-centered system design: New perspectives on human–computer interaction. Hillsdale: Lawrence Erlbaum Ass. 2. Schuler, D., & Namioka, A. (1993). Participatory design. Principles and practice. Hillsdale: Lawrence Erlbaum Ass. 3. Dörner, C., Heß, J., & Pipek, V. (2007). Improving information systems by end-user development: A case study. In: Proceedings ECIS 2007 (pp. 783–794). St. Gallen, Switzerland. 4. Lieberman, H., Paternò, F., & Wulf, V. (2006). End-user development. Dordrecht: Springer. 5. Cypher, A. (1993). Watch what i do: Programming by demonstration. Cambridge: The MIT Press. 6. Harrison, W. (2004). The dangers of end-user programming. IEEE Software, 21, 5–7. 7. Ko, A. J., Abraham, R., Beckwith, L., Blackwell, A. F., Burnett, M., Erwig, M., Scaffidi, C., Lawrance, J., Lieberman, H., Myers, B., Rosson, M. B., Rothermel, G., Shaw, M., & Wiedenbeck, S. (2011). The state of the art in end-user software engineering. ACM Computing Surveys, 43(3), 21:1–21:44. 8. Blackwell, A. F. (2006). Psychological issues in end-user programming. In H. Lieberman, F. Paternò, & V. Wulf (Eds.), End-user development (pp. 9–30). Dordrecht: Springer. 9. Fogli, D., & Piccinno, A. (2005). Environments to support context and emotion aware visual interaction. International Journal of Visual Languages and Computing, 16, 386–405. 10. Carmien, S., Dawe, M., Fischer, G., Gorman, A., Kintsch, A., Sullivan, & J. F. J. (2005) Socio-technical environments supporting people with cognitive disabilities using public transportation. ACM Transactions on Computer-Human Interaction, 12, 233–262. 11. Fischer, G., Giaccardi, E., Ye, Y., Sutcliffe, A. G., & Mehandjiev, N. (2004). Meta-design: A manifesto for end-user development. Communication of the ACM, 47(9), 33–37. 12. Mussio, P., Finadri, M., Gentini, P., & Colombo, F. (1992). A bootstrap approach to visual user-interface design and development. The Visual Computer, 8(2), 75–93. 13. Ginige, A., & De Silva, B.: CBEADSÓ: A framework to support meta-design paradigm. In: Proceedings HCII 2007. LNCS (Vol. 4554, pp. 107–116). Heidelberg: Springer. 14. Costabile, M. F., Fogli, D., Lanzilotti, R., Mussio, P., & Piccinno, A. (2006). Supporting work practice through end-user development environments. Journal of Organizational and End User Computing, 18(4), 43–65. 15. Nielsen, J. (1993). Usability engineering. San Diego: Academic Press. 16. Fogli, D., Marcante, A., Mussio, P., Parasiliti Provenza, L., & Piccinno, A. (2007). Multifacet design of interactive systems through visual languages. In: F. Ferri (Ed.), Visual languages for interactive computing: Definitions and formalizations (pp. 174–204). Hershey: IGI Global.

428

D. Fogli and A. Piccinno

17. Fogli, D., & Parasiliti Provenza, L. (2012). A meta-design approach to the development of egovernment services. International Journal of Visual Languages and Computing, 23(2), 47–62. 18. Ardito, C., Barricelli, B. R., Buono, P., Costabile, M. F., Lanzilotti, R., Piccinno, A., & Valtolina, S. (2011). An ontology-based approach to product customization. In: Proceedings IS-EUD 2011. LNCS (vol. 6654, pp. 92–106). Heidelberg: Springer. 19. Repenning, A., & Ioannidou, A. (2006). What makes end-user development tick? 13 design guidelines. In H. Lieberman, F. Paternò, & V. Wulf (Eds.), End-user development (pp. 51–85). Dordrecht: Springer.

Suggest Documents