Principia Discordia
by Oleg Sovetnik
The “Principia Discordia” methodology is an ironic yet highly practical approach to teamwork, inspired by Scrum principles and the Discordian calendar. It combines elements of agile development with umwelt’s change history mechanism, where every project modification is structured as a sequence of phases that can be conflict-free when merged.
Each cycle begins in chaos and ends in synchronization, offering a unique balance between independence, creativity, and the clarity necessary for team success.
Process Structure
The methodology consists of five stages, each reflecting a specific phase of team interaction and development. These stages correspond to various states of project changes, ranging from total chaos to the point when a feature is ready for production.
1. Chaos (Synchronous)
In the first stage, the team dives into the depths of chaos. All ideas, bugs, requirements, and random thoughts emerge as a collection of individual entities. The team is in the process of conceptualizing what will be referred to as the domain. Tasks are analyzed, key concepts, terms, entities, and use cases are identified. This is the stage where the ubiquitous language is formed, as the team synchronizes their understanding and agrees on the terms that will serve as the foundation for all future work.
The Chaos phase represents the collection of scattered ideas, transforming them into initial project phases. These phases become the starting point for future changes.
2. Discord (Asynchronous)
After chaos comes discord. Each team member dives into their own streams, developing terms, prototypes, and ideas. This stage is defined by individual work—there’s no synchronization, and everyone works on their own features, making changes to their respective project phases. Each person takes responsibility for specific features or entities and creates a new phase. During the Discord phase, every participant proposes their own vision of a solution or approach to the problem. This stage allows for creativity and parallel development of different parts of the project. Results don’t have to be final—this stage is about exploring potential solutions.
Each new phase in umwelt.dev can be represented as a separate branch in the project’s history tree.
3. Confusion (Synchronous)
The Confusion stage brings the team back together to discuss the proposed solutions. Since multiple versions were created during the Discord phase, in the Confusion stage, the best ideas are selected, and the project architecture can still be adjusted. It’s easy to make changes at this stage since no significant modifications have been made to the code yet, and only contexts and interfaces have been synchronized.
If something remains unclear or needs further refinement, participants return to the Discord phase for additional improvements. Once solutions satisfy everyone, the team can move forward.
4. Bureaucracy (Asynchronous)
Once a feature or solution has passed through the Confusion stage, it’s time to move on to implementation. There are no questions left about terms or structure—everything has already been agreed upon. Now it’s time for bureaucracy. Participants dive into coding, developing algorithms, and technical implementation.
Bureaucracy locks in the well-defined tasks from the previous stage, and now any team member can easily join the work, thanks to the detailed plan, established concepts, and tests that have already been created.
5. Aftermath (Synchronous)
The final stage is the Aftermath.
All phases from the previous stages are carefully integrated into the project’s umwelt, creating a unified, consistent picture. Changes from various code branches are merged, and a new version is released. This stage is the culmination of the work, with the team showcasing the new project features.
At this stage, the phase is complete, and the new version of the project goes live. Then the process begins again, returning to chaos as the cycle repeats.
Phase Structure of Changes in umwelt.dev
The phase structure of the umwelt.dev project provides flexibility and transparency in changes. Every stage of work is recorded in a separate phase, and phases can be merged conflict-free. For example, if two parallel branches with new phases were created after a phase was completed, they can be merged into a single next phase, preserving all changes.
This model ensures opportunities for experimentation and creative solutions while maintaining a shared context and change history.
The “Principia Discordia” methodology is a hybrid of flexible methodologies and philosophical principles. It teaches that chaos is not always destructive, and discord is not always harmful. Properly organizing work through the stages of discord, synchronization, and task division allows teams to create high-quality products while maintaining creative freedom and a shared understanding of the project.
umwelt scrum discord teamwork