Ambitious KDE Goal: Briding the Gap

Jos van den Oever jos at vandenoever.info
Sun Aug 20 12:39:59 BST 2017


I feel like I should join in as well in pitching ambitious ideas for KDE.

For mortals, it is hard to understand how KDE applications work. It is very 
hard to get into KDE coding. There is a lot of implicit knowledge in the code 
base. I think we should make this better by having testable high level 
descriptions of applications.

There is a lot of testing code in KDE applications and it often follows the 
test driven development approach where a situation is presented (Given), and 
action described (When) and an outcome verified (Then).

These functional descriptions from the tests can go into their own files. This 
would give simple files that any user can read and comment on. The same 
description is used in the text and this way, the desired features are linked 
to the tested features. The .feature files are stored in git and a change in 
software behavious is easily discovered.

These .feature files are easy to read and should stay the same even after 
large refactorings (Qt6!). We can make insightful what part of the features 
has tests and what part of the tests passes.

This method is used in projects where new developers should be able to jump in 
quickly. It makes it easy to add new features in a structured way: you start 
with the .feature file, then write tests and then the implementation.

It works the other way around too. There's lots of code lying around where it 
is not obvious that it is still needed. If it is not covered by tests or 
features, then it can go, or a feature of the code is not documented.

Here is a simple example of a .feature in the Gherkin language.

===
Feature: About box

  Scenario: Show the about box menu
    Given that Dolphin has started
    And it is showing the main window
    Then a user action for showing the about box is present

  Scenario:
    Given that Dolphin has started
    And it is showing the main window
    When the user activates the about action
    Then the About dialog is shown
===

This is user readable and so users can more easily understand how an 
application is supposed to behave. They do not need to understand the code 
that implements these features. People that would like to document KDE 
applications can read the .feature files to write their documentation.

This helps to communicate our prinicples to users. We can describe the 
behaviour of telemetry in a .feature file. It will describe opt-in telemetry: 
"When the application starts with default values Then the option telemetry is 
turned off".

Working with these .feature files is a new thing for desktop software, but one 
that makes the workings of our software more relatable for users. They will 
value this and see our work less as magic and will understand the value of an 
open project. They might even be led down to the path of being a developer 
eventually.

Best regards,
Jos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-community/attachments/20170820/8570b453/attachment.sig>


More information about the kde-community mailing list