Project Organization
Team structure and development workflow
Project Organization
The organizational structure and development workflow of the OctoMY™ project.
Overview
Our organizational structure is loosely based on the Linux kernel team structure. Since we are much smaller, we follow an organic growth path which divides responsibilities into tiers as workload grows beyond the capacity of the original role.
Organic Growth Model
Example growth path:
- Leo gives team member "Alice" maintainer status over a certain part of the project
- That part grows in complexity until Alice can no longer cope alone
- Alice recruits "Bob" to serve under her to take over part of her task
- Bob receives a title as prescribed by the tier structure
Key principles:
- Each member is responsible for the members they directly recruit
- When a higher-level member steps down, responsibility falls to their supervisor until a replacement is found
- Internal mobility is preferred - subordinates may step up in a promotion
Tier Structure
Tier 1: Benevolent Dictator (BD)
Current: Leo (Founder)
| Responsibility | Description |
|---|---|
| Vision | Defines the overall vision and direction of the project |
| Final Decisions | Makes final decisions on architecture, features, and conflicts |
| Main Repository | Maintains the main repository and controls the release process |
| Merge Window | Manages the merge window during the development cycle |
| Captain Management | Manages who will be the Captains |
| Succession | Continuously vets candidates for replacement to maintain long-term project health |
Tier 2: First-Level Subsystem Responsible (Captain)
Trusted members responsible for top-level subsystems:
| Subsystem | Description |
|---|---|
| A. Core Framework & API | Design and maintain core functionality, manage API, ensure backward compatibility, optimize performance and scalability |
| B. Networking & Communication | Handle protocols, connectivity, data exchange, ensure low-latency secure communication, maintain Wi-Fi/Bluetooth integrations |
| C. Robotics & Hardware Integration | Develop hardware abstraction layers (HAL), work with real-time control systems and robot drivers, support different platforms |
| D. User Interface & UX | Maintain desktop and mobile UI, ensure smooth user experience, themes, accessibility, usability improvements |
| E. Build System & CI/CD | Automate builds, testing, and deployment, maintain Docker, Qbs, package distributions, ensure release-ready state |
| F. Documentation & Developer Relations | Maintain developer documentation, write tutorials, API docs, best practices, engage with developer community |
| G. Administration | Everything non-product related: accounting, payroll, legal, etc. |
Captain responsibilities:
- Receive patches from subordinate Lieutenants
- Manage who will be the Lieutenants
- Continuously vet candidates for their replacement
Tier 3: Second-Level Subsystem Responsible (Lieutenant)
Maintain specific second-level components within a Captain's domain.
Example for Core Framework & API:
- Maintain code and manage pull requests and patches from contributors
- Use OGL (OctoMY™ GitLab) for discussions
- Manage who will be the Enlists
Tier 4: Patch Reviewers (Enlist)
Experienced developers who review patches before merging.
Responsibilities:
- Ensure code quality
- Ensure security
- Ensure performance
- Catch bugs early
- Write and run tests
- Use OGL for discussions
- Recruitment pool for Lieutenant role
Tier 5: Project Developers / Contributors (Trooper)
Write and submit patches for the project.
Can be:
- Independent contributors
- Corporate employees
Responsibilities:
- Use OGL for pull request submission
- Participate in discussions, testing, and bug fixing
- Recruitment pool for Enlist role
Specialized Teams
Tier 6: Stability Team (Marine)
| Responsibility | Description |
|---|---|
| Bug Identification | Identify and document bugs |
| Test Writing | Write automated tests |
| Test Harness | Improve the test harness |
Tier 7: Security Team (Marine)
| Responsibility | Description |
|---|---|
| Vulnerability Handling | Handle security vulnerabilities privately before disclosure |
| Hotfixes | Submit hotfixes and patches |
| Guidelines | Provide guidelines for the rest of the project |
Corporate Contributors
- Manage contributed code such as controller drivers and bug fixes
- Follow the same open-source process for submitting patches
Development Workflow
┌─────────────────────────────────────────────────────────────────┐
│ Development Flow │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Developers submit patches to subsystem maintainer via OGL │
│ │ │
│ ▼ │
│ 2. Patch reviewers provide feedback and request improvements │
│ │ │
│ ▼ │
│ 3. Second-level maintainers merge accepted PRs into branches │
│ │ │
│ ▼ │
│ 4. First-level maintainers merge accepted PRs into branches │
│ │ │
│ ▼ │
│ 5. BD merges everything into mainline during merge window │
│ │ │
│ ▼ │
│ 6. Stable maintainers apply fixes to release branches │
│ │
└─────────────────────────────────────────────────────────────────┘
Key Characteristics
| Characteristic | Description |
|---|---|
| Meritocracy | Influence is earned through contributions |
| Decentralized | No single company owns OctoMY™ |
| Open | Everything happens in an open platform (GitLab) |
| Pull Request Based | Every piece of code is scrutinized by automated tests, talented developers, and aspiring maintainers before being accepted. No line of code will be accepted unless it is flawless |
OctoMY™ GitLab (OGL)
The primary communication hub for project development.
Used for:
- Patch submissions / pull requests
- Technical discussions
- All project development
Project Parts
| Part | Description |
|---|---|
| Build System | How the project is built from source into artifacts |
| Complete UX | Documentation for the user experience |
| Wiki | Community-maintained documentation |
| Blog | Stream of news, tidbits, and musings |
| Documentation | Official reference works for operation and development |
| Qt Static Build | System to build Qt reliably |
| MVP Hub | First published version of Hub |
| MVP Remote/Agent | First published version of Remote and Agent |
| MVP Zoo | First published version of Zoo |
| Google Play Deployment | Deployment of apps to Google Play |
| YouTube Channel | Marketing on YouTube |
| Reddit Channel | Marketing on Reddit |
| ArduMY | Custom microcontroller runtime for running robots |
| External Controller Support | Support for 3rd party controllers |
| External Platform Support | Support for ESP32, Teensy, Jetson, RPi, etc. |
| Organization Formation | Start OctoMY™ foundation |