Software Ecosystems - combining user centered design, organisational and technical dimensions
Today we are hardly using programs that are developed to fit one specific customer. If we play games, use business systems for administration, or download apps to our phones: we use software that is part of software ecosystems software products that are configured to fit a specific business context, platforms that allow sharing of specific kinds of software, or software as a service. Examples for software ecosystems have developed around software products, like game engines, or enterprise resource planning (ERP or CRM) software, integrated development environments like visual studio and platforms like the Android operating system.
In this course you explore software ecosystems from UX design, organizational and technical perspectives. To this end you will analyse a software ecosystem together propose an improvement or a new development related to the analysed ecosystem and support your proposal with a prototype and / or other design artefacts.
Most of the software we use is not developed specifically for one organisation, but for groups of customers and users. Software provided as a service likewise is developed for a generic usage that needs to be configured and tailored to the specific needs of customers and users. To understand the evolution of such software products and platforms, it is not enough to look at the individual piece of software: Not taking into account the interaction between different actors – ranging from the provider of the core product or platform to consultancies configuring the software, customers and users – will result in the software becoming obsolete, or customers and users searching for alternatives. The providers of software products and platforms need to strike a balance between genericity and specificity: The generic design, on the one hand, allows to provide powerful functionality, on the other hand, it constrains the possibilities for adaptation to the specific context. Many of the software products therefore allow for ‘design in use’ through tailoring and configuration by the end users.
The course explores software ecosystems from three perspectives:
The UX Design perspective focuses on the possibilities and constraints software products and platforms provide for the user. Many of the software products open up for End User Development, allowing – to a certain extend – the design-in-use of the software. The course will also explore the constraints that the usage of software products put on the embedment of the software in concrete work practices. The course will further explore how UX design is used to inform the product management in software ecosystems and the means of users to influence the direction in which the software ecosystem develops.
The organizational perspective explores the governance and economic viability of software ecosystems. How can be describe the interaction between the business models of different stakeholders in the ecosystem? We will explore governance structures that have (been) developed to deliberate decisions on new features and change of the underpinning architecture. Another topic will be innovation processes in software ecosystems: What means do companies devise to learn about needs and already implemented solutions by the end-user?
The software engineering perspective explores the technical design and development processes in software ecosystems. The course discusses the technical side of End User Development, that means different approaches to defer design decisions by providing tailoring and configuration interfaces or relying on the customization through consultancies or local developers. We explore how the ongoing and continuous evolution of the products and platform as well as their customisation affect software processes. This also includes the analysis of life site data to understand user needs and preferences and drive the development.
Research centered lectures will be complemented with guest lectures from industry experts. The plan is to invite at least two guest lectures for each of the three perspectives.
The theoretical part of the course, consisting of lectures, guest lectures and readings will be complemented by a project where student teams first analyse a software ecosystem using methods and tools presented in the course and, during the second half of the course, design on an improvement, add on, or service based on the software ecosystem, which should be supported by a prototype and / or other design artefacts. The teams are expected to discuss the readings together.
The course is offered under the M.Sc. program but is an elective for all other M.Sc. programs at the IT University as well.
There are no formal prerequisites other than a B.Sc. degree, but the students should study one of the M.Sc. programs at the IT University.
Computer Science and Software Design students might benefit from having taken the software architecture course.
Students studying Digital Innovation and Management might benefit from having taken service design and innovation management courses.
For Digital Design students having read the design driven innovation course and taking the service design specialization can be beneficial.
From the Games program, students who are interested in the integration of game design, construction and the business based on them might benefit most from the course.
Intended learning outcomes
After the course, the student should be able to:
- Analyse, discuss and relate current research on software ecosystems to the analysis of concrete software ecosystems.
- Show how technical design and development, organizational and economic structures, user centered design and end-user development mutually depend on each other.
- Address challenges in the design and evolution of software products and platform ecosystems taking these three dimensions into account.
- Discuss how the Software Ecosystem context requires to adapt the processes, methods and techniques acquired in earlier courses.
In the lecture and seminar track, lectures and industrial guest lectures are combined with student centered learning activities, especially reading, analysis and discussion of scientific literature and presentation of the results thereof. The learning activities are chosen so that students learn to understand and analyse academic literature, and relate it to practical or research problems.
The course literature will consist of a compendium of ca 15 scientific articles. As reference literature, the book “Engineering Software Products” by Ian Sommerville is recommended, especially for students from other programs than the M.Sc. in Computer Science.Teaching and learning activities will be adjusted to accommodate the heterogeneous expertise and skills of the students reading the course. The lecture and seminar track will also support the teams with tools to facilitate cross disciplinary collaboration.
For the project, the student teams of ca 6 students will be formed. Each team will choose a software ecosystem to work with. The projects start with analysing the software ecosystem, they chose to work with, from different perspectives. Based on the analysis, the teams will decide on a possible improvement/add-on or similar and develop the concept using e.g. prototypes and other design artefacts. Besides supervision, the teams will present their project twice during the term. The teams will be assigned a fixed supervisor throughout the term.
Mandatory activities1.) Participation in 80% of the weekly supervisions.
Each team will have assigned a supervisor following the team throughout the whole term. All team members are expected to participate in 9 out of the 11 supervision meetings.
2.) Participation in the presentation of the analysis of the ecosystem in week 41.
3.) Participation in the presentation of the improvement/add-on to the ecosystem supported by suitable design artefacts/prototypes in the last week of the term.
There will be possibilities in case a student falls sick or is for similar reasons not able to attend the presentations/supervisions.In case any of the conditions is not met, the student fails to go to the exam, receiving an NA grading.
The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.
The course literature will consist of a curriculum of ca 20 research articles published on the homepage of the course.
Student Activity BudgetEstimated distribution of learning activities for the typical student
- Preparation for lectures and exercises: 15%
- Lectures: 15%
- Project work, supervision included: 50%
- Exam with preparation: 20%
Ordinary examExam type:
D: Submission of written work with following oral, External (7-point scale)
D2G: Submission for groups with following oral exam supplemented by the submission. Shared responsibility for the report.
The reports consists of an analysis of a software ecosystem and the design of an improvement supported by a prototype and/or other adequate design artefacts.
- For the project, the student teams of ca 6 students will be formed.
Group exam : Joint student presentation followed by a group dialogue. All the students are present in the examination room throughout the examination.
Time and dateOrdinary Exam - submission Thu, 22 Dec 2022, 08:00 - 14:00
Ordinary Exam Mon, 16 Jan 2023, 09:00 - 21:00
Ordinary Exam Tue, 17 Jan 2023, 09:00 - 21:00
Ordinary Exam Wed, 18 Jan 2023, 09:00 - 21:00
Ordinary Exam Thu, 19 Jan 2023, 09:00 - 21:00
Ordinary Exam Fri, 20 Jan 2023, 09:00 - 21:00