Lecture 5: Design in Platform ecosystems IN5320 ...
Transcript of Lecture 5: Design in Platform ecosystems IN5320 ...
![Page 1: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/1.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/2.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/3.jpg)
Usable and relevant technology
3
![Page 4: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/4.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/5.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/6.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/7.jpg)
“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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/8.jpg)
8
Usable and relevant
![Page 9: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/9.jpg)
9
Usable and relevant
![Page 10: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/10.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/11.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/12.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/13.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/14.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/15.jpg)
Designing a commodity reporting system in Uganda
15
Designing usable and relevant - example from DHIS2
![Page 16: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/16.jpg)
Software projects
16
![Page 17: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/17.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/18.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/19.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/20.jpg)
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 22: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/22.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/23.jpg)
Generic enterprise software
23
![Page 24: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/24.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/25.jpg)
- 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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/26.jpg)
- 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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/27.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/28.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/29.jpg)
- 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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/30.jpg)
- 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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/31.jpg)
31
Generic software: two levels of design
![Page 32: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/32.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/33.jpg)
33
Generic software: two levels of design
![Page 34: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/34.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/35.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/36.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/37.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/38.jpg)
38
Supporting and conducting design during implementation
Implementation-level design with DHIS2
![Page 39: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/39.jpg)
39
Supporting and conducting design during implementation
Implementation-level design with DHIS2
![Page 40: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/40.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/41.jpg)
- 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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/42.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/43.jpg)
Platforms
43
![Page 44: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/44.jpg)
- 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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/45.jpg)
45
Platforms and software projects
![Page 46: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/46.jpg)
Platform appliances
46
![Page 47: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/47.jpg)
- 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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/48.jpg)
- This seems to be a general approach around popular software/innovation platforms
48
Platform Appliances
![Page 49: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/49.jpg)
49
Platform Appliances
![Page 50: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/50.jpg)
- 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 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/51.jpg)
51
Platform Appliances
Platform coreGeneric platform appliances
Contextualplatformappliances
![Page 52: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/52.jpg)
Summary
52
![Page 53: Lecture 5: Design in Platform ecosystems IN5320 ...](https://reader031.fdocuments.us/reader031/viewer/2022013000/61c958c19cdb654d46109e66/html5/thumbnails/53.jpg)
- 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