IncreaseWKDUsage2021 bachelor thesis

Christoph Klassen is writing his bachelor thesis (at Intevation) about how usage of WKD can be furthered. Bernhard Reiter does the mentoring, see gnupg-devel@ for discussion and for contacting Christoph or Bernhard.

Started at 2021-10

Goal

WKD is easy to implement and brings the advantage of good usability. Because of that it is desirable to spread it and increase its usage. The question is how to do that and which is the best way. More concrete: Which measures fit best to spread the WKD standard. This measures are taken from the area of software engineering and include documentation, testing and implementation. They will be applied to different products that are Free Software.

Difficulty

It is necessary to evaluate the success of different measures to tell which one was the most effective one. It is not possible to track users while using their products, because one main promise of the products is to protect users privacy. So there have to be other ways to measure the success. One idea is to log the WKD calls on a server, which has much traffic. Please contact Bernhard or Christoph when you have these possibilities or know someone who could do this service. It would be very helpful!
This idea would help to evaluate the success of all measures overall. Additionally, it would be of great value, if there would be a way to differentiate between the measures. Maybe the statistics could show a correlation between measures and increase of WKD calls.

Use Cases

It is necessary to define use cases, so it is easier to speak about how to implement the WKD-standard. These use cases were written by using Cockburns template [1].

Use Case #1: Write an encrypted email

Goal: Sending a confidential message.
Precondition:

Success: An encrypted email was sent
Failure:

Actors: A random person
Trigger: A person wants to write a confidential message to another person in a way that no other person can read its contents.
Description:

  1. Person opens the email-client
  2. Person opens the window to compose an email
  3. Person enters address, subject and message
  4. Person sends the email

Extensions:

  1. Person checks, if the email really can be encrypted, before trying to send it
  2. Person checks, if the pubkey is trustworthy
  3. Person checks, how trustworthy the pubkey is

Use Case #2: Validate the signature of an email

Goal: Check, if an email was written by the person, whose email address was used.
Precondition:

Success: The signature of the email could be checked
Failure: The signature of the email could not be checked
Actors: A random person
Trigger: A person receives an email with important information and wants to know, if it was really written by the person, whose address was used to send the email.
Description:

  1. Person opens the email-client
  2. Person opens received email
  3. Person sees if the signature of the email is valid

Extensions:

  1. Person checks, if the pubkey, which was used to check the signature of the received email, is trustworthy
  2. Person checks, how trustworthy the pubkey is, which was used to check the signature of the received email

Criterions to evaluate the state of products (Draft)

To evaluate how far the progress of different products in terms of WKD is, own criterions are created. These are influenced by the use cases mentioned above and allow to make a quantitative evaluation. Each criterion is a statement. If it is true, the product gets the number of points that is shown in the brackets. The maximal possible amount of points is 12.

Another way to evaluate products is to do a heuristic evaluation. Jakob Nielson created ten different heuristics to examine the usability of products. On [2] is a recent article, where he summarizes the heuristics. The essence of these heuristics is that users want to be able to predict the softwares behavior and to have the feeling of control about the software. Therefore it is necessary that the application gives users enough information to know, what is going on. On the other hand users shouldn't be overwhelmed with to much information or too many choices and UI elements. It is also important that a software is consistent in itself and with other applications, which the users also use, so they can re-use their experience.

State of products and progress

Here it will be described what state different products had at the beginning of the work and what measures were taken to increase the usage of WKD.

Mailvelope

Previous state (analyzed version 4.4.1)

Measures

Claws Mail

Previous state (analyzed version 3.18.0)

Measures

FairEmail/ K9Mail

Previous state

FairEmail

Previous state (analyzed version 1.1776)

Measures

K9Mail

Previous state (analyzed version 5.806)

coming soon

KMail

Thunderbird

Sources

[1] H. Balzert, Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering, 3. Edition, Spektrum Akademischer Verlag Heidelberg: 2009
[2] J. Nielsen, 10 Usability Heuristics for User Interface Design, https://www.nngroup.com/articles/ten-usability-heuristics/

WKD/BachelorThesisIncreaseWKDUsage2021 (last edited 2021-12-13 14:56:46 by Christoph Klassen)