IN5320 - Development in Platform Ecosystems Lecture 5: Design in - - PowerPoint PPT Presentation

in5320 development in platform ecosystems
SMART_READER_LITE
LIVE PREVIEW

IN5320 - Development in Platform Ecosystems Lecture 5: Design in - - PowerPoint PPT Presentation

IN5320 - Development in Platform Ecosystems Lecture 5: Design in Platform ecosystems 5th of October 2020 Department of Informatics, University of Oslo Magnus Li - magl@ifi.uio.no 1 Today 1. Designing usable and locally relevant technology 2.


slide-1
SLIDE 1

1

IN5320 - Development in Platform Ecosystems

Lecture 5: Design in Platform ecosystems

5th of October 2020 Department of Informatics, University of Oslo Magnus Li - magl@ifi.uio.no

slide-2
SLIDE 2

1. Designing usable and locally relevant technology 2. Types of software projects - some concepts 3. Design of and with generic enterprise software 4. Relation to platform architectures and ecosystems 5. Platform appliances

2

Today

slide-3
SLIDE 3

Usable and relevant technology

3

slide-4
SLIDE 4

Usable

  • Usability → how well something (e.g., a software) works / easy it is to use for a specific set
  • f users in a specific context of use.
  • Usability is thus relational.
  • For instance; how easy it is to learn, memorize, efficiency, pleasant to use, etc.

Locally relevant

  • That the technology is perceived as useful to the user (e.g., that software has

functionality that is relevant to the end-users work)

  • Both of these are contextual: what is easy to use and relevant in one context for some

users, may be hard and irrelevant to others.

  • As we have seen; organizations differ!

4

Usable and relevant

slide-5
SLIDE 5

Two dimensions of ‘usable’ related to the scope of what has been designed:

  • Audience

Who will use the software and in what context

  • Purpose

What activities and tasks is the software intended to support

5

Usable and relevant

Potentially less usable

slide-6
SLIDE 6

The gap between designers, developers, and end-users

  • A prominent issue related to contemporary software development and design, is that

the people developing the software are not the intended end-users. This is a challenge for several reasons:

  • Developers typically has a different understanding of technology than the common

end-user.

  • Developers often lack knowledge of the domain of use, especially when developing

enterprise software.

  • Developers often see software and technology as an end in itself, rather than a means to

an end. For normal users, software and technology is just a tool to do some activity.

  • Developers are often more feature-oriented than end-users (related to the aspect above)

6

Usable and relevant

slide-7
SLIDE 7

“The Inmates Are Running the Asylum”

  • Some have argued, including Donald Norman and Alan Cooper, that the development of

modern digital technology are runned by developers (the inmates).

  • Their interests lie in technical sophistication and the opportunities for new features.
  • Results in unusable technologies, filled with irrelevant features that makes private and

work life harder. “Imagine, at a terrifyingly aggressive rate, everything you regularly use is being equipped with computer technology. Think about your phone, cameras, cars-everything-being automated and programmed by people who in their rush to accept the many benefits of the silicon chip, have abdicated their responsibility to make these products easy to use.” Alan Cooper’s book ‘The Inmates Are Running the Asylum’

7

Usable and relevant

slide-8
SLIDE 8

8

Usable and relevant

slide-9
SLIDE 9

9

Usable and relevant

slide-10
SLIDE 10

Donald Norman (1998; 2013):

  • We need to shift from developing multi-purpose software to information appliances
  • Based on the actual needs and activities of humans, rather than potential features seen

as ‘cool’ and feasible by developers.

10

Usable and relevant

slide-11
SLIDE 11

Approaches to ‘use-oriented’ design

  • To build ‘things’ that work well and are relevant for end-users, we need to understand

the users and their activities in their respective context.

  • A general argument is that we need to apply methods to

a) understand the users, their activities and their context, and/or b) actually involve them as decision-makers in the design process.

11

Designing usable and relevant

slide-12
SLIDE 12

Approaches to ‘use-oriented’ design Several methodologies has been developed around this idea. Some examples:

  • Human/user-centered design
  • Participatory Design (this also to empower users and democratize the workplace)
  • Activity-oriented design
  • Usability engineering
  • Scenario-based design

12

Designing usable and relevant

slide-13
SLIDE 13

Approaches to ‘use-oriented’ design Common to them:

  • Emphasis on understanding the users established practices, activities, needs, and

context of use → basing design of user interfaces and functionality on this.

  • Working in rapid iterations of:
  • requirements gathering
  • analysis
  • prototyping
  • Evaluation
  • Actual end-users may inform or participate in decisions in several of these stages

13

Designing usable and relevant

slide-14
SLIDE 14

Unit of analysis: user, shared practice, or activities?

  • One debate within this stream of ideas is what designers and developers should focus
  • n when understanding practice and designing new artifacts.
  • Some argue that understanding the specific user is irrelevant when designing for many.
  • Rather, focus should be on what is common for the group of users designed for. For

instance, common patterns in practise or concrete ‘activities’ that are shared by many.

14

Designing usable and relevant

slide-15
SLIDE 15

Designing a commodity reporting system in Uganda

15

Designing usable and relevant - example from DHIS2

slide-16
SLIDE 16

Software projects

16

slide-17
SLIDE 17

Software is built for different use-contexts and audiences. Two overall categories:

  • Consumer software
  • Enterprise software
  • Enterprise software are often rather extensive, for instance, Enterprise Resource

Planning Software, Project Management Software, Logistics Management Software, Human Resource software.

  • In health: Electronic Medical Records software, Health Management information

software,

  • Becomes an integral part of organizational information systems

17

Software projects

slide-18
SLIDE 18

Different models for developing software

  • Bespoke software development (build from scratch to the specific organization)
  • Open Source Software (either just open source code, or community-driven

development)

  • Generic ‘packaged’, ‘off-the-shelf’, or ‘product’ software
  • Customizable off-the-shelf software (COTS)
  • Software platforms (extendable, central control of core, community of third-parties)

18

Software projects

slide-19
SLIDE 19

Different models for ‘hosting’ software

  • Dedicated servers (on-premises or off-premises)
  • Actual physical servers.
  • Best for steady demands for server capacity.
  • May be required for particularly strong security or privacy needs.
  • Cloud hosting
  • Shared virtual space
  • Scaling on demand
  • Payment based on actual use
  • Maintenance may be outsourced
  • Economies of scale related to sharing hardware++

19

Software projects

slide-20
SLIDE 20

Different models for ‘hosting’ software Cloud hosting

  • Infrastructure as a service (IaaS)
  • Platform as a service (PaaS)
  • Software as a service (SaaS)

20

Software projects

slide-21
SLIDE 21

21

Software projects

alibabacloud.com

slide-22
SLIDE 22

For enterprises: ‘buy or build?’

  • Buy: Adopt generic software that has been developed to serve a market of
  • rganizations with the ‘same’ needs.
  • Configured for the respective organizations
  • Build: Involve consultants or in-house developers to build bespoke software from

scratch, specifically to the needs of the organization. Pros and cons with each approach?

22

Software projects

slide-23
SLIDE 23

Generic enterprise software

23

slide-24
SLIDE 24

Generic ‘packaged’ or ‘product’ enterprise software

  • Designed and developed to serve a market of organizations with the ‘same’ needs.
  • Design through a process of generification (Pollock & Williams, 2009)
  • Smoothing strategies and process alignment work
  • If one generic model is not enough: develop “templates” for different segments.
  • Priority by size and importance (large, growing, strategic) and priority by payment.
  • Configured to the specific implementing organizations
  • DHIS2: Organizational units, data elements, data sets, reports, visualizations
  • To ‘buy’ rather than ‘build’ is becoming the most common approach for large
  • rganizations!

24

Adopting generic enterprise software

slide-25
SLIDE 25
  • As all organizations differ:
  • Misfits or misalignments between the user interfaces, functionalities, and data model
  • f the generic software, and organizational needs and practices are common.
  • Some of these may not be possible to deal with through standard configuration options

25

Adopting generic enterprise software

Generic enterprise software X Organization Y

slide-26
SLIDE 26
  • To deal with misfits, customization is often done during implementation, to make the

software fit local practice.

  • This is however not typically encouraged as it may:
  • Require more time than changing organizational practices instead
  • Introduce upgrade and maintenance issues
  • Undermining the idea behind ‘buying’ instead of ‘building’
  • Software vendors tend to encourage ‘vanilla’ implementations
  • Stands in stark contrast to the bottom-up, use-oriented design perspective often

promoted to make usable and locally relevant technologies.

26

Software projects

slide-27
SLIDE 27

Bespoke Flexibility and proximity to build based on existing practice and specific organizational needs

27

Implications for design-processes

Organization Software

Generic software Design for market of several ‘similar’ organizations. A process of generification where shared traits are emphasized and specifics are filtered out.

Software

slide-28
SLIDE 28

With generic software there will be (at least) two processes and levels of design:

  • Generic-level design (designing the generic ‘package’)

Design for market of organizations through a process of generification

  • Smoothing strategies and process alignment work (Pollock & Williams, 2009),
  • If one generic model is not enough: develop “templates” for different segments.
  • Priority by size and importance (large, growing, strategic) and priority by

payment.

  • Implementation-level design (configuring and customizing the package)

Design for specific organization, but based on the generic software package (configuration and customization of the generic attributes). May be done by: in-house, vendor-consultants, external consultants

28

Generic software: two levels of design

slide-29
SLIDE 29
  • This means that parts of the design is deferred to the implementation-level design,

while, from the perspective of implementation, parts are externalized to the generic-level design.

29

Generic software: two levels of design

slide-30
SLIDE 30
  • Implementation-level design / generic software implementation is also a (very)

common context of software development and design!

  • Constrained and enabled by the configuration capabilities build into the generic

software by the generic-level designers.

  • Implementation of DHIS2 can be seen as a implementation-level design process.

30

Generic software: two levels of design

slide-31
SLIDE 31

31

Generic software: two levels of design

slide-32
SLIDE 32

32

Generic software: two levels of design

  • What affords and is shaped by the two

processes may be seen as a ‘design infrastructure’.

  • Based on the building-blocks and supporting

resources of the design infrastructure, a software that fit a specific organization is built and implemented.

  • Building blocks may include the configurable

software kernel, modules or apps, design systems, SDKs etc.

slide-33
SLIDE 33

33

Generic software: two levels of design

slide-34
SLIDE 34

Typically, there are three overall ways of adapting generic software during implementation

  • Configuration

Standard defined options in the kernel or modules of the software

  • Customization

Changing the source code of the software

  • Extension

Building additional modules or apps ‘on top of’ the software These have different design implications for the generic-level designers and the implementation-level designers.

34

Supporting and conducting design during implementation

slide-35
SLIDE 35

Supporting and conducting design during implementation of generic software is not trivial. Three aspects important for implementers

  • Time and resources (the rationale behind adapting generic software is to minimize

this)

  • Competence
  • Future software upgrades and maintenance.
  • Design flexibility (ability to address requirements within the implementation)

35

Supporting and conducting design during implementation

slide-36
SLIDE 36

36

Supporting and conducting design during implementation

Configuration Customization Extension Design flexibility Competence needed Time needed Issues with future upgrades Implementation-level maintenance Low High High High High Low Low Low Potentially high Potentially high High Low Potentially high High Only API

slide-37
SLIDE 37

37

Supporting and conducting design during implementation

With a platform architecture (such as DHIS2): Core

  • Configuration (in maintenance app)
  • Customization (of data model, APIs, security ++)

Apps

  • Extension
  • Configuration
  • Customization
  • ‘From scratch’
slide-38
SLIDE 38

38

Supporting and conducting design during implementation

Implementation-level design with DHIS2

slide-39
SLIDE 39

39

Supporting and conducting design during implementation

Implementation-level design with DHIS2

slide-40
SLIDE 40

Implications for generic-level meta-design:

  • Configuration

Strict anticipative meta-design Anticipating concretely what needs to be defined during implementation-level design.

  • Customization

Non-anticipative meta-design Making source-code available for implementation-level designers.

  • Extension

Generative anticipative meta-design Anticipating the needs of implementation-level designers on an abstract level through APIs, design-systems, components that create a generative environment.

40

Supporting and conducting design during implementation

slide-41
SLIDE 41
  • Extension provides a generative design space
  • Enabled by the platform architecture.

However;

  • Requires time for development during implementation.
  • The weight of maintenance is placed on the level of implementation.
  • Developer competence is needed.
  • Move from ‘buy’ and back to ‘build’? (eroding the reason for using generic software in

the first place?)

41

Supporting and conducting design during implementation

slide-42
SLIDE 42

Possible interventions:

  • App development platforms / SDKs
  • Design systems
  • Functional component libraries
  • Drag and drop design-environments (combining configuration with extension?)
  • Important questions:
  • Efficiency of ‘assembly’
  • Who maintains what?
  • New features
  • Bug fixes
  • Compatibility with core and API

42

Supporting and conducting design during implementation

slide-43
SLIDE 43

Platforms

43

slide-44
SLIDE 44
  • Platforms enable a distributed type of software development
  • “Software Ecosystems”
  • One generic process → development of the core (proprietary or open source)
  • Boundary resources
  • Many ‘bespoke’ processes related to custom apps.
  • Can be seen as a development/design ecosystem
  • Or: a design infrastructure, supporting design and innovation of software on multiple

levels and in different constituencies.

44

Platforms and software projects

slide-45
SLIDE 45

45

Platforms and software projects

slide-46
SLIDE 46

Platform appliances

46

slide-47
SLIDE 47
  • Donald Norman: shift from multi-purpose computers and software towards

information appliances

  • Interestingly, this is at some level what the generic-level designers of DHIS2 do
  • DHIS2 is modularized into several activity-specific apps.
  • Data entry, Maps, Reports, Pivot Table, etc.
  • Not physical appliances, but apps united by an underlying platform.

→ Platform Appliances

47

Platform Appliances

slide-48
SLIDE 48
  • This seems to be a general approach around popular software/innovation platforms

48

Platform Appliances

slide-49
SLIDE 49

49

Platform Appliances

slide-50
SLIDE 50
  • Could this potentially be an approach to addressing usability and relevance in generic

enterprise software?

50

Platform Appliances

slide-51
SLIDE 51

51

Platform Appliances

Platform core Generic platform appliances Contextual platform appliances

slide-52
SLIDE 52

Summary

52

slide-53
SLIDE 53
  • Different types of enterprise software projects
  • Building bespoke
  • Adopting generic
  • Has implications for design related to usability and local relevance
  • Design related to generic software unfolds on (at least) two levels
  • Generic
  • Implementation
  • Generic-level design is both about end-users and meta-design
  • Platform architectures support extension
  • Provides a generative design-space, but require additional resources
  • Platform Appliances may be an approach to addressing usability in generic enterprise

software

53

Takeaways