You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You may notice that I have split up the various Labels used by Kibicat Mastodon into six different “levels”. I think this approach is important to developing a federated social media software for a few reasons, so I thought I ought to provide further information and gather feedback about them here.
Ideally, I think we would have one dedicated person leading development in each level. Since we only really have two (2) active developers, this is obviously not feasible in the present moment.
The levels (for reference):
Meta – Project management, documentation, and the like.
Backend – The server application itself, with a focus on processing and database storage.
Ontology – The vocabularies that we use when talking to the world.
Serialization – Turning the knowledge we have into presentable data in an interoperable format.
Networking – Distributing our information with the world; gathering information from other sources.
Frontend – The user interface of the software; what people can actually do.
Reason №1: Demarcating levels helps us notice gaps in our skillset (and fill them).
It’s a problem if we have five experts in ontology but zero experts in networking. (We’ll be able to come up with useful vocabularies, but we won’t be able to use them to speak with anyone!) To the extent that we are looking to recruit help, understanding which levels a person has experience in will help us determine whether they will be useful to our project. To the extent that we are looking to improve our own skills, it is important that we do so in a complementary manner (rather than all studying the same thing).
Reason №2: Different levels have different priorities.
I don’t think it is possible for a single person to simultaneously balance all five (or six) levels in their head at the same time. Instead, I think that a dialectical approach is necessary, where·in two (or more) members argue from the perspective of their respective levels (and areas of expertise) in an attempt to reach a compromise. Historically, Mastodon has been extremely biased in its design approach towards the lower levels (where Eugen is more proficient), and this has led to a number of criticisms regarding its implementation of things in the user interface.
Reason №3: Thinking explicitly about levels helps us to formulate better design questions regarding them.
For example, the following are some design questions which I think are relevant to developers working in a given level. Hopefully it is clear from this list that it is unrealistic to expect any one person to keep all of these questions in‐mind at any given time!
Lv.0 Meta
How do people get involved with the development of the software?
How is information regarding the questions below made available?
What safeguards are in place to ensure that the software and its development practices reduce, rather than exaggerate, inequities in society?
Lv.1 Backend
What information is stored, and how? When we receive new information (resources; commands; requests), how does that impact the information we already have?
How is the software installed and run?
What optimizations should or should not we make? What are the consequences of these optimizations?
Lv.2 Ontology
What information are we representing? What assumptions do we make in representing it? What inferences can we make from the information we receive?
How are informations put in relation to each other?
What support do we offer for linguistic innovation? How much support can we offer for informations represented in a different way?
Lv.3 Serialization
How is information presented for humans?
How is information presented for other computers? (Servers? User agents?)
What linguistic communities (human and computer) are we supporting?
Lv.4 Networking
How do servers communicate with each other?
How do servers communicate with users?
What privacy and security requirements do users have with respect to their data? How are these met?
Lv.5 Frontend
How does one interact with the software? What roles are available?
What sort of behaviours are encouraged? Discouraged? Permitted? Prohibited?
How is the impact of one’s actions conveyed back to them?
LV.0: ProcessMeta @ the process of contributing to the softwareLV.0: OrganizationMeta @ the organizational structure of development
1 participant
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
You may notice that I have split up the various Labels used by Kibicat Mastodon into six different “levels”. I think this approach is important to developing a federated social media software for a few reasons, so I thought I ought to provide further information and gather feedback about them here.
Ideally, I think we would have one dedicated person leading development in each level. Since we only really have two (2) active developers, this is obviously not feasible in the present moment.
The levels (for reference):
Reason №1: Demarcating levels helps us notice gaps in our skillset (and fill them).
It’s a problem if we have five experts in ontology but zero experts in networking. (We’ll be able to come up with useful vocabularies, but we won’t be able to use them to speak with anyone!) To the extent that we are looking to recruit help, understanding which levels a person has experience in will help us determine whether they will be useful to our project. To the extent that we are looking to improve our own skills, it is important that we do so in a complementary manner (rather than all studying the same thing).
Reason №2: Different levels have different priorities.
I don’t think it is possible for a single person to simultaneously balance all five (or six) levels in their head at the same time. Instead, I think that a dialectical approach is necessary, where·in two (or more) members argue from the perspective of their respective levels (and areas of expertise) in an attempt to reach a compromise. Historically, Mastodon has been extremely biased in its design approach towards the lower levels (where Eugen is more proficient), and this has led to a number of criticisms regarding its implementation of things in the user interface.
Reason №3: Thinking explicitly about levels helps us to formulate better design questions regarding them.
For example, the following are some design questions which I think are relevant to developers working in a given level. Hopefully it is clear from this list that it is unrealistic to expect any one person to keep all of these questions in‐mind at any given time!
Lv.0 Meta
Lv.1 Backend
Lv.2 Ontology
Lv.3 Serialization
Lv.4 Networking
Lv.5 Frontend
Beta Was this translation helpful? Give feedback.
All reactions