Project Charter
The project charter serves as a high-level yardstick for the continued development of Project Phoenix. We are going to measure new features and development practices against this yardstick.
Driver
Project Phoenix is a modern, adaptable, and easy-to-use API offering essential functionality for prototyping, developing, and deploying cutting-edge VR applications.
Constraints
We acknowledge the following constraints:
- manpower for infrastructure development is scarce
- average proficiency is limited by 'time on the job'.
Floats
The main float of this project is its scope, i.e. the amount of features that go into it. Hence, we aggressively triage features based on value added. We prefer doing few things very well rather than doing many things mediocrely. This is how we read essential in the driver.
To a lesser extent - see risks below - time is also a float: Project Phoenix has to reach a first usable status ASAP. Yet, we rarely have to deliver a feature f at quality q by date t.
We manage individual proficiency by continuously
- giving room to improve software craftsmanship,
- giving room to acquire highly specialized knowledge,
- supporting technically focused team spirit.
Main Project Risks
-
Time to Market - We will loose developer support exponentially the longer it takes to deliver a minimum useful feature set.
- What is the minimum useful feature set?
- How fast can we possibly get there?
-
Project Overload - Daily business, research work, teaching responsibilities, and infrastructure development are difficult to reconcile in a 24h day.
-
Feature Creep - Lacking focus on essential functionality will result in code rot.
-
Lack of Discipline - By the broken window theory lacking adherence to coding practices and quality standards will lead to code rot.
-
Quarreling to no avail - Hypothetical arguments based solely on subjective opinions rather than solid facts and/or experiments cost valuable time, create friction, and blur focus. Keep the emotion out of your pitch!
-
The VR landscape is changing rapidly. - We might get overtaken by the world at large.
- Consumer VR hardware
- Consumer VR market, i.e. end user applications, games, game engines etc.
- New rendering modalities (ray tracing in Optix, OSPRay)
-
Legacy code base - A trivial 'forward-copy' of existing code fragments will not be sufficient to achieve our driving goal of a modern, easy-to-use code base.