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:

  1. Leo gives team member "Alice" maintainer status over a certain part of the project
  2. That part grows in complexity until Alice can no longer cope alone
  3. Alice recruits "Bob" to serve under her to take over part of her task
  4. 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

In this section
Topics
internal organization workflow team
See also