Software Development Process (SDP)
Contents
Principles
Process
Roles
Tooling
Definition of Done (DoD)
Release Cycle
Environments
Principles
We are to answer questions on our discord within 24 hours
We are to show up on time to meetings
We will use GitHub Project and Issues
We will create issues in the project backlog
Each field in an Issue should be filled out as completely as possible
We are to update the status of our issues as we deal with them
All changes to the project are made in their respective branches
Our pull requests need to be appropriately linked with its respective issues
Do not allow force-pushing on branches
Non-Milestone Issues must be achievable in a single week
Milestone Issues will get their own iteration
Process
We will…
Be using a method very much like Scrum.
Keep a large project backlog that contains everything we can think of to complete our projects.
Assign items from our project backlog to our weekly iteration backlogs a week before the iteration begins.
Work on the things in our current iteration during the week and update their status as we work on them. We will continue this process until we have completed our project backlog.
We will meet with the TA every Monday at 2:15 to discuss our progress and ask for advice.
Meet as a group every Wednesday at 2:15 to discuss our progress and do group assignments that require better communication.
Roles
In our group, we will have the following roles:
Primary Artist
Riley
Primary Audio Designer
Connor
Primary UI / UI Designer
Ethan
General Physics Developers
Split Among Everyone Case-to-Case
AI Driving Developers
Split Among Everyone Case-to-Case
Internal Vehicle Physics Developers
Split Among Everyone Case-to-Case
ADAS Simulation Developers
Split Among Everyone Case-to-Case
Tooling
Version Control
GitHub and Unreal Source Control\
Project Management
GitHub Issues and Projects\
Documentation
Google Drive\
Test Framework
Unreal Engine 5\
Linting and Formatting
Visual Studio Code Extension\
CI/CD
GitHub Actions\
IDE
Visual Studio Code\
Graphic Design
Google Slides\
Others
Blender
Definition of Done (DoD)
All group members approve of the issues’ completeness
The associated feature branch is merged with the working branch
The issue has its todo items complete and has been thoroughly tested
The progress report has been updated to reflect the completion
Release Cycle
Deploy the working branch to an appropriate version branch and then to the release branch.
Our versioning schematic (Major.minor.patch) goes as follows:
Increment Major when the game has an entirely new feel
Increment minor when a new feature is added, reset when Major increments
Increment patch when a bug has been fixed, reset when minor increments or resets
Version 0 is our testable project
Version 1 is our minimal viable product
Version 2 is our completed stretch goal project
Environments
Environment |
Infrastructure |
Deployment |
What is it for? |
Monitoring |
|---|---|---|---|---|
Production |
AWS through CI/CD |
Release |
Sleeping well at night |
Prometheus, Grafana, Sentry |
Staging (Test) |
Render through CI/CD |
PR |
New unreleased features and integration tests |
Sentry |
Dev |
Local (macOS and Windows) |
Commit |
Development and unit tests |
N/A |