Organization¶
General organization concepts¶
Resources for chief technology officers, with the emphasis on startups [reddit]
Company handbooks:
Building Self-Managed Teams: A Case Study from Riot Games [reddit]
Open Decision-Making (by John Ousterhout)
book on how to run a successful free software project: Producing Open Source Software
Software and Anarchy [HN] - Possibly interesting book (~50 pages) on programming as it relates to “social ecology” and “peer production”
About systems thinking (TODO: remove this section?)¶
A Lifetime of Systems Thinking [HN]
VSM, Stafford Beer, cybernetics in general [wikipedia]
Meetings¶
biweekly / monthly meetings on readings / interesting articles / potential new projects
people should talk about 1 (or more) articles, piece of news, or brainstorming idea of potential new/fun/interesting projects
meetings are audio-only, we don’t want webcam
It’s freer this way, less physical constraints to participate in meeting. We can use video for slides, images, etc.
own matrix server
meetings should be biweekly 2 hours, no planning or prepared questions, just open discussion where everyone raises whatever question is needed by them
anything goes as to what can be talked about, people are also encouraged to talk about their recent work if they have major changes they want to share with the others.
-> no need for minutes, no one wants to write them, and no one reads them. If anything important needs to be written, this should happen as a documentation writing item of some sort (eg: in linear).
Standard Operating Procedures¶
improvements to software should be made using RFC-style proposals (or BIP, EIP, etc., eg: https://github.com/fioprotocol/fips)
How to Stop Endless Discussions [HN]
rst/markdown template should be provided containing required sections (eg: NABC, etc. see HN comments, for instance also rename “competitors” to “alternatives”)
Documenting Design Decisions using RFCs and ADRs [HN]
check Linear’s method for issue tracking
code review should be a daily task, and we may need to dedicate up to 20% of a day to it. About code review processes and how to make it better/easier: code review decision fatigue (HN)
Communication¶
integrate some remarks/comments about the apolitical nature of the project, we also don’t have a code of conduct because this is all about the technology (neutral). And yeah, we should be nice to each other, but that isn’t a thing from the project, it’s just good human behavior. We should operate according to Crocker’s rules
also check Kraken culture document
Voting processes¶
collective is composed of 5 people, each 1 vote. votes are cryptographically signed.
decision is taken with majority, and everyone needs to vote. Exceptionally, a decision can be taken by only 4 members if they all agree, i.e. all 4 vote for the same resolution.
collective changes can happen and need to be voted upon
eviction of one person cannot happen with simple majority, it needs to have 4 votes.
collective has multisig authority over the main account (which main account?) (3-of-5, 4-of-5?)
Ideal collective size¶
Conway’s law
Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.
5 people seems to be a good number to target as it provides balance between too small a team to be more productive than a single developer and a team too big that crumbles under its communication and management overhead.
2 is too few, no diversity: just a 2-person team
3 could be, but risk of going 2 vs 1 in decision making is high and very likely resulting in the death of the structure
4 is too symmetric: it might just end up being 2 vs 2, which is 2x the case with 2 persons, which we have seen doesn’t work
5 seems to not introduce too many established structures
Similar organizations¶
Here are a few similar organizations / collectives that we might want to draw inspiration from:
check Framasoft, they have some pretty good ideas, tenets and organization: https://framablog.org/, https://framasoft.org/en/, https://framasoft.org/en/manifest/
another organization which we like and seems pretty aligned with what we want to do is FUTO
Alchemists: A collective devoted to the craft of software engineering where expertise is transmuted into joy.
Trifecta Tech Foundation: Open infrastructure software in the public interest
Trifecta Tech Foundation is a non-profit that develops and maintains digital commons, open-source software and open standards for vital systems.
Some “tech coops”, maybe good source of inspiration https://tech-coops.xyz/