lecture 5: design in platform ecosystems in5320

53
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

Upload: others

Post on 27-Dec-2021

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 5: Design in Platform ecosystems IN5320

1

IN5320 - Development in Platform EcosystemsLecture 5: Design in Platform ecosystems

5th of October 2020Department of Informatics, University of OsloMagnus Li - [email protected]

Page 2: Lecture 5: Design in Platform ecosystems IN5320

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

Page 3: Lecture 5: Design in Platform ecosystems IN5320

Usable and relevant technology

3

Page 4: Lecture 5: Design in Platform ecosystems IN5320

Usable

- Usability → how well something (e.g., a software) works / easy it is to use for a specific set of 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

Page 5: Lecture 5: Design in Platform ecosystems IN5320

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

- AudienceWho will use the software and in what context

- PurposeWhat activities and tasks is the software intended to support

5

Usable and relevant

Potentia

lly le

ss usa

ble

Page 6: Lecture 5: Design in Platform ecosystems IN5320

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

Page 7: Lecture 5: Design in Platform ecosystems IN5320

“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

Page 8: Lecture 5: Design in Platform ecosystems IN5320

8

Usable and relevant

Page 9: Lecture 5: Design in Platform ecosystems IN5320

9

Usable and relevant

Page 10: Lecture 5: Design in Platform ecosystems IN5320

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

Page 11: Lecture 5: Design in Platform ecosystems IN5320

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

Page 12: Lecture 5: Design in Platform ecosystems IN5320

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

Page 13: Lecture 5: Design in Platform ecosystems IN5320

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

Page 14: Lecture 5: Design in Platform ecosystems IN5320

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

- One debate within this stream of ideas is what designers and developers should focus on 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

Page 15: Lecture 5: Design in Platform ecosystems IN5320

Designing a commodity reporting system in Uganda

15

Designing usable and relevant - example from DHIS2

Page 16: Lecture 5: Design in Platform ecosystems IN5320

Software projects

16

Page 17: Lecture 5: Design in Platform ecosystems IN5320

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

Page 18: Lecture 5: Design in Platform ecosystems IN5320

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

Page 19: Lecture 5: Design in Platform ecosystems IN5320

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

Page 20: Lecture 5: Design in Platform ecosystems IN5320

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

Page 21: Lecture 5: Design in Platform ecosystems IN5320

21

Software projects

alibabacloud.com

Page 22: Lecture 5: Design in Platform ecosystems IN5320

For enterprises: ‘buy or build?’

- Buy: Adopt generic software that has been developed to serve a market of organizations 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

Page 23: Lecture 5: Design in Platform ecosystems IN5320

Generic enterprise software

23

Page 24: Lecture 5: Design in Platform ecosystems IN5320

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 organizations!

24

Adopting generic enterprise software

Page 25: Lecture 5: Design in Platform ecosystems IN5320

- As all organizations differ:

- Misfits or misalignments between the user interfaces, functionalities, and data model of 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

Page 26: Lecture 5: Design in Platform ecosystems IN5320

- 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

Page 27: Lecture 5: Design in Platform ecosystems IN5320

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

Page 28: Lecture 5: Design in Platform ecosystems IN5320

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

Page 29: Lecture 5: Design in Platform ecosystems IN5320

- 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

Page 30: Lecture 5: Design in Platform ecosystems IN5320

- 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

Page 31: Lecture 5: Design in Platform ecosystems IN5320

31

Generic software: two levels of design

Page 32: Lecture 5: Design in Platform ecosystems IN5320

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.

Page 33: Lecture 5: Design in Platform ecosystems IN5320

33

Generic software: two levels of design

Page 34: Lecture 5: Design in Platform ecosystems IN5320

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

Page 35: Lecture 5: Design in Platform ecosystems IN5320

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

Page 36: Lecture 5: Design in Platform ecosystems IN5320

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 HighLow

Low

Low

Potentially high

Potentially high

High

Low Potentially high

High

Only API

Page 37: Lecture 5: Design in Platform ecosystems IN5320

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’

Page 38: Lecture 5: Design in Platform ecosystems IN5320

38

Supporting and conducting design during implementation

Implementation-level design with DHIS2

Page 39: Lecture 5: Design in Platform ecosystems IN5320

39

Supporting and conducting design during implementation

Implementation-level design with DHIS2

Page 40: Lecture 5: Design in Platform ecosystems IN5320

Implications for generic-level meta-design:

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

- Customization Non-anticipative meta-designMaking source-code available for implementation-level designers.

- Extension Generative anticipative meta-designAnticipating 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

Page 41: Lecture 5: Design in Platform ecosystems IN5320

- 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

Page 42: Lecture 5: Design in Platform ecosystems IN5320

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

Page 43: Lecture 5: Design in Platform ecosystems IN5320

Platforms

43

Page 44: Lecture 5: Design in Platform ecosystems IN5320

- 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

Page 45: Lecture 5: Design in Platform ecosystems IN5320

45

Platforms and software projects

Page 46: Lecture 5: Design in Platform ecosystems IN5320

Platform appliances

46

Page 47: Lecture 5: Design in Platform ecosystems IN5320

- 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

Page 48: Lecture 5: Design in Platform ecosystems IN5320

- This seems to be a general approach around popular software/innovation platforms

48

Platform Appliances

Page 49: Lecture 5: Design in Platform ecosystems IN5320

49

Platform Appliances

Page 50: Lecture 5: Design in Platform ecosystems IN5320

- Could this potentially be an approach to addressing usability and relevance in generic enterprise software?

50

Platform Appliances

Page 51: Lecture 5: Design in Platform ecosystems IN5320

51

Platform Appliances

Platform coreGeneric platform appliances

Contextualplatformappliances

Page 52: Lecture 5: Design in Platform ecosystems IN5320

Summary

52

Page 53: Lecture 5: Design in Platform ecosystems IN5320

- 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