Assignment 1: HCI timing planning

Edit log:

  • 10 September: Additional explanatory paragraph added to Preparatory step section.
  • 13 September: Added an example to Task 1.
  • 14 September: Added a figure that shows how the example can be presented in your report.
  • 17 September: Added some of the changes needed for next year's assignment.

In this week's lecture (L1) you heard about software engineering (SE) processes - especially about the sprint-based agile model and the iterative model - and how human-computer interaction (HCI) activities should relate to them. Another topic of the lecture was the different aspects of human-centredness in software development. In this Assignment, you will have a chance to relate these two areas together by proposing what kind of knowledge about the user  is most important at different iterations of a hypothetical product’s design process. Relevant frameworks, such as PACT (see Benyon’s book) and ABCS (see Ritter et al’s book) will help you consider different human-centred aspects and choose the most important ones for the task at hand. You will get to try them in this assignment.

Background

Scenario for the exercise:

In this assignment, we assume that you are working on a web-based task tracking tool - one that works in a similar way as many popular Kanban boards. Your task is to suggest what kind of information about users would best benefit the design process during three iterations of the task tracker’s development. In other words, what information will the software developers need in each iteration in order to be able to create enjoyable, useful, efficient, and in other ways high quality system?  PACT and ABCS frameworks will be used as heuristic guides that direct you to pay attention to issues that will inform you about good design choices.

If you are not familiar with Kanban boards, you can check the Wikipedia article on them from here: https://en.wikipedia.org/wiki/Kanban_board or check out one popular Kanbas board such as Trello (https://trello.com/en). 

In this hypothetical project, we assume that the project's first iterations are the following:

  • 1st iteration: a user interface (UI) where a user can create cards and drag them between columns using a mouse.
  • 2nd iteration: multi-user support: several users can work on the same board and edit its cards.
  • 3rd iteration: each user can work on several boards, and every board can have several users.

Preparatory step

Added 10 September after the lecture: In the lecture, you saw a chart where different kinds of aspects of human-centredness were picture using four categories: people, activities, contexts, and technologies. These four categories were from Benyon's book where they are presented as "PACT" framework. A similar organization of human-centred aspects can be also found from the other coursebook (Ritter et al), where it is called "ABCS": anthropometrics, behaviour, cognition, and social factors. Essentially they serve the same purpose: they help you remember the different aspects of human-computer interaction and consider them holistically.

Familiarize yourself with the PACT (Benyon, chapter 2) and/or ABCS (Ritter et al., chapters 1.4 and 3–5) frameworks as checklists that help you think holistically about different human-centred aspects related to this software's use. These two lists of aspects reduce the risk that you might forget to consider something that is important in users’ task. You therefore need to consider each aspect category (P, A, C, and T or A, B, C and S) in these frameworks. Once you understand the frameworks, figuring out the relevant details will be straightforward.

Task 1

Consider task tracker as an activity and decide which three types of information you would need to find out before the development starts. If you follow the PACT framework, these need to be pieces information about people, about activities, about contexts and about technologies. Note that we want you to consider background information about task tracking. This information you would gather in the project before you can do decisions about design features. Therefore, do not think what features the software should have - think what information you will need in order to decide what features are needed. are the most important ones, in your opinion, for each of the three iterations, based on the given frameworks. In other words: What are the detailed pieces of information that would be particularly relevant in your team's software development process in each specific iteration?

Get prepared to explain why you choose a certain aspect as a relevant one. This reasoning should be based upon knowledge about the problem domain (task tracking using Kanban boards) and what you figured would be important based on the PACT and ABCS frameworks.

Note that there are many equally valid answers to this task. The purpose of this task is to learn to decide - as if you were a project manager - what information your team would need in the project’s different stages. Approach this task by trying to complete the following sentence: "If I would lead a team that develops a task tracker, I would need to know X about people/activities/contexts/technologies in order to choose what kind of task tracker we should develop". For example, "If I would lead a team that develops a task tracker, I would need to know how where else task trackers are used than in agile software development projects, in order to choose what kind of task tracker we should develop". This idea could come to your mind because you would know that in the agile approach, task tracking is an important part of the process. You would of course want to develop a tool that fits to the existing practices of task tracking. 

For every aspect that you select, link it to a specific iteration.

Example (added 13 September): Let's imagine that you have decided that you want to know more about physical environment (from PACT's Context category) for Iteration no. 2 where multi-user support will be added to the system. In particular, physical environment would interest you because you would consider that many programmers might do mobile work. If a person works on a project e.g., in a cafe, there is a possibility that others in the cafe will see something confidential on the programmer's screen if the programmer uses the task tracking software. Therefore you would decide that before iteration no. 2 you would investigate how much of software programming takes place in such physical environments where confidentiality would not be ensuredThis last part (italicized in the previous sentence) would be the "aspect" that we would like you to present in your answer. This is an answer that would suit for completing the Y in the orienting sentence that we presented above.

Added 14 September: See this picture (also evailable as a PNG in the end of this page) to see how the analysis above could be presented as an answer in this assignment.

Task 2

Draw a diagram similar to the one below. Based on Task 1, in each box, detail an aspect that you would decide to find out about the users and their activities. As mentioned above, you can only choose three aspects of information per iteration.

Below the boxes, write the reasoning for each choice and how. Explain how the aspects relate to ABCS or PACT. Indicate which reasoning is linked to which box with a number (e.g. 1.1. “...”).

Diagram showing HCI activities with respect to three product iterations

(you can download this diagram in PowerPoint version in the materials below, if you want to)

How to return this assignment

Your submission must be returned as a PDF. It must include your diagram from Task 2, and a justification for your choice for each piece of human-centred information that you have added to the diagram, from Task 1.

<For next year: add a template for students where they can write their answers?>

This assignment is carried out independently.

Return your assignment by 23:55 on Sunday 15 September 2019 as a PDF.

Give us feedback!  (optional)

In order to improve future assignments, we are interested in receiving feedback on how you felt about this assignment. You can provide the feedback anonymously through the following form: https://forms.gle/JYFA3VhM7nuVxoJEA

Material

David Benyon: Designing interactive systems, Chapter 2 (presents the PACT framework).

Ritter et al.: Foundations for designing user-centred systems (presents the ABCS framework). Available for download within Aalto network. Direct link.

Dhandapani: Agile Software Engineering in UCD (in the end of the paper presents principles for timing HCI activities with respect to a sprint-based agile software development process). Download the PDF below.

Fox: Agile Methods and User-Centered Design: How These Two Methodologies Are Being Successfully Integrated In Industry (another paper that presents suggestions on timing HCI activities with respect to SE processes). Download the PDF below.

Assignment 1 grading principles

Full grades: Student demonstrated understanding of task context and uses PACT or ABCS framework in determining relevant areas of research for all of their answers. Student presents clear and valid reasoning for choices made in selecting what information should be found out  before each iteration. The answers contain the details that were asked above.

Points will be deducted if a sufficient justification is missing from the choices, or if the submission is incomplete or does not reference one of the two frameworks.