Goals/Consistency: Difference between revisions

From KDE Community Wiki
(Created consistency page with basic links)
 
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Intro ==
== Intro ==


KDE community has [https://phabricator.kde.org/T11093 elected] to put Consistency as a main goal for the coming years.
KDE community has [https://phabricator.kde.org/T11093 selected] Consistency as a main goal for the coming years.


Consistency here is meant as code redundancy, implementing the same tool multiple times. This fragmentation happens in the design of visual elements of different applications (such as sidebar/tabs/pages behaviour), in the applications ecosystem itself due to reduntant applications or in the KDE website pages and look.
"Consistency" here means having a single solution for a particular problem rather than many different ones. This applies to application design elements, feature implementations, website structure and style, and the KDE ecosystem as a whole that, unfortunately, often suffers from redundancy.


Benefits of consistency include:
Benefits of consistency include:
* Applications usability: the user will recognize patterns in multiple KDE applications and they will be able to use consistent elements with higher productivity and confidence.
* Better software usability: users will recognize patterns across KDE applications, making each one easier to learn and master.
* Using consistent visual element throughout the KDE Applications ecosystem will strongly improve KDE branding, as the users will be able to quickly recognize KDE Apps and they will feel like they follow the same guidelines.
* Use of consistent visual elements throughout KDE software improves KDE branding, and users will be able to quickly recognize KDE Applications.
* Consistency improves applications quality and ease of maintenance, for it's easier to change a single class that's used in multiple places rather than changing multiple different implementations.
* Reduced code redundancy and easier maintainability of the codebase.
* Increase of quality of applications thank to reducing fragmentation of implementations of a particular usecase. New good ideas can be generalized and used throughout all applications instead of just benefiting a single application.
* Reduce difficulty of writing new software because re-usable components are available, with high enough quality that nobody will want to create their own implementations.


== Improving Consistency ==
== Improving Consistency ==
Line 21: Line 21:
=== Designing consistent elements ===
=== Designing consistent elements ===


When an inconsistency is found, it's the Visual Design Group's (VDG) job to design an element that can be used consistently throughout all KDE Applications. It's really easy to join the VDG to help with this task! [https://community.kde.org/Get_Involved/documentation Find out more about joining the KDE documentation team.]
When an inconsistency is found, it's the Visual Design Group's (VDG) job to design an element that can be used consistently throughout all KDE Applications. It's really easy to join the VDG to help with this task! [https://community.kde.org/Get_Involved/design Find out more about joining the VDG.]


=== Defining a clear Human Interface Guideline ===
=== Defining clear Human Interface Guidelines ===


When there is consensus over the new design, this should be documented clearly in the Human Interface Guidelines (HIG) in order for future developers to know how they should implement their applications. Again, it's not necessary to have coding skills! It's possible to read the current HIG [https://hig.kde.org/ in its webpage] and propose changes in [https://invent.kde.org/websites/hig-kde-org its repository].
When a consensus is reached regarding the new design, this should be documented clearly in the Human Interface Guidelines (HIG) in order for future developers to know how they should implement their applications. Again, it's not necessary to have coding skills! It's possible to read the current HIG [https://hig.kde.org/ in its webpage] and propose changes in [https://invent.kde.org/websites/hig-kde-org its repository].


=== Implementing changes ===
=== Implementing changes ===


Finally, it's now time to implement the new design in all KDE Applications. This requires some development skills, but in the process you'll learn portable, industry-standard skills like C++, Qt, and CMake, and collaborate with people from all around the world. It's a challenging and fun experience. [https://community.kde.org/Get_Involved/development Find out more about becoming a KDE developer].
Finally, it's now time to implement the new design in all KDE Applications. This requires some development abilities, but in the process you'll learn portable, industry-standard skills like C++, Qt, and CMake, and collaborate with people from all around the world. It's a challenging and fun experience. [https://community.kde.org/Get_Involved/development Find out more about becoming a KDE developer].
 
== Consistency group ==
 
Currently, the best way to discuss Consistency is in the [https://t.me/vdgmainroom VDG chat group]. There are also some discussions and tasks in the [https://phabricator.kde.org/project/view/312/ phabricator project].

Latest revision as of 14:45, 14 March 2022

Intro

KDE community has selected Consistency as a main goal for the coming years.

"Consistency" here means having a single solution for a particular problem rather than many different ones. This applies to application design elements, feature implementations, website structure and style, and the KDE ecosystem as a whole that, unfortunately, often suffers from redundancy.

Benefits of consistency include:

  • Better software usability: users will recognize patterns across KDE applications, making each one easier to learn and master.
  • Use of consistent visual elements throughout KDE software improves KDE branding, and users will be able to quickly recognize KDE Applications.
  • Reduced code redundancy and easier maintainability of the codebase.
  • Reduce difficulty of writing new software because re-usable components are available, with high enough quality that nobody will want to create their own implementations.

Improving Consistency

There are various ways to help to improve consistency, regardless of anybody's level of technical expertise.

Reporting Inconsistencies

A very important task is to actually find the inconsistencies to fix in KDE Applications. This can be done by any user, even with limited or no knowledge about coding. Helping with this task is as easy as using multiple KDE Applications and trying to find visual elements that are implemented in different ways. When an inconsistency is found, it can be reported to the bugtracker or a task can be created on the Consistency phabricator workboard.

Designing consistent elements

When an inconsistency is found, it's the Visual Design Group's (VDG) job to design an element that can be used consistently throughout all KDE Applications. It's really easy to join the VDG to help with this task! Find out more about joining the VDG.

Defining clear Human Interface Guidelines

When a consensus is reached regarding the new design, this should be documented clearly in the Human Interface Guidelines (HIG) in order for future developers to know how they should implement their applications. Again, it's not necessary to have coding skills! It's possible to read the current HIG in its webpage and propose changes in its repository.

Implementing changes

Finally, it's now time to implement the new design in all KDE Applications. This requires some development abilities, but in the process you'll learn portable, industry-standard skills like C++, Qt, and CMake, and collaborate with people from all around the world. It's a challenging and fun experience. Find out more about becoming a KDE developer.

Consistency group

Currently, the best way to discuss Consistency is in the VDG chat group. There are also some discussions and tasks in the phabricator project.