A big bit of unfinished SGB (Stan Governing Body) business is the definition and creation of the Technical Working Group (TWG).
This is a SGB decision, not a referendum, but we want your input. Roughly we need to define the domains for the TWG leads and appoint them. The role of the TWG director is also up for redefinition. I will articulate this as specific text which will sound like decisions have been made but that is not so.
Changes are much easier to incorporate if they are concrete, e.g., specific text. Don’t let that stop you from commenting however, some ideas are not at that level.
This draft contains new changes not vetted with the SGB, particularly the creation of the CTO position.
Also note that downstream packages like RStanArm, BRMS, ShinyStan…are not included. Please discuss.
Proposal under discussion:
" The Technical Working Group (TWG) exists to help harmonize Stan development across varied domains. Historically the TWG domain leads have been gatekeepers of the domains of Algorithms, Language, Math, Services, CmdStan, RStan and PyStan. There is also a TWG director with final decision making authority, ability to override leads (rarely) and that position is paid $50,000/yr.
In recognition of Stan’s continued growth and reliance on community contributions we redefine the TWG as follows:
The TWG’s domains, membership and mission are defined by the SGB (Stan
Governing Body) in consultation with the Stan community by seeking at a minimum feedback on the forums at https://discourse.mc-stan.org when changes are made to the structure of the TWG. Individuals can self nominate when TWG domain lead/director positions become available and the positions will be advertised on discourse.
Domain leads and the director are primarily facilitators, community builders and stewards for their domains with the skills to consider cross domain issues. Domain leads are in service to their developers.
The leads/director can act as decision makers when needed but that should be rarely applied. In greater detail:
The biggest responsibility is keeping PRs (pull requests which are software changes waiting for review) moving in a timely manner. This means approving PRs, requesting changes to the PRs, marking working in progress on PRs or closing ideally within one week of submission. Delegation is highly encouraged.
Domain leads manage people working in the domain which means recruiting developers, helping less experienced contributors make useful PRs and facilitating code quality/testing criteria.
Leads attend meetings, report at least twice a month at the general Stan meeting. Can be submitted in writing.
Review or delegate review of design documents.
The current set of domains are, with time bursty time estimates:
- Math. 15 hrs/month
- Inference (was algorithms). 10 hrs/month
- Interfaces (includes RStan, PyStan, CmdStan, CmdStanPy, CmdStanR, Services) 15 hrs/month
- Compiler (includes language, StanC3 compiler) 15 hrs/month
The TWG director has proven to be a difficult job so the job will be split into a more standard CTO position and refining what the TWG director position means in the hopes of smoother development operations.
The CTO interfaces with the non-developer stakeholders and ultimately represents their interests. The CTO is responsible for managing high-level strategic issues like what kind of technology to use, where to make investments, and long term visions. They also serve as the highest court in the land, arbiter and tie-breaker for technical issue within the project. This is an unpaid position.
The TWG director exists to facilitate the overall smooth operation of the Stan development organization. They report to the SGB, CTO, control budgets and hire contractors. They are encouraged to have open meetings, ensure that all voices are heard and grow the developer community. Given that much of this position is administrative, the TWG director is a paid position, $50,000/year. The TWG director’s focus is to facilitate alignment across the tech leads. In greater detail:
- Organizing and facilitating developer meetings and/or hackathons.
- Figure out what each domain agrees is implementable for the next year
and create a roadmap from that, hopefully facilitating lots of cross-team
communication such that the roadmap is fairly aligned towards common goals
that come from the SGB and CTO.
- Centralize requests for help from across the different domains such that
when new contributors come to the project, they can turn to the director to
be triaged to the right domain or issue.
- Hire and oversee contractors to deal with maintenance work
- Maintaining status/membership of developers in the community and
providing a clear path to advancement for contributors.
- The TWG director needs to be able to end discussions and make decisions when the project seems deadlocked in consultation with the CTO. Any decision is better than no decision, as they say.