SSWE: Role Outline + Expectations
Quality Work, United Efforts
Start of the Semester
Understanding Context
Research and deeply understand the tech stack and make high-level decisions regarding the project’s technical implementation (ex: use XY packages, YZ APIs)
This includes general development workflows: code reviews, maintaining a clean Git commit history, handling merges, etc.
Technical Set Up
- Set up foundational functionality of the app for SWEs to build upon (GitHub repo, webapp layout, database connections, etc.)
READMEfrom the starter projects does a phenomenal job of explaining how to:- Setup the local environment
- Understand the stack
- Set up basic CI/CD for your repository (GitHub Actions, automated code checks, etc.)
- Deploy your app (should do this early)
Organization
- Create a weekly workflow, communicate how to set up the project, and establish expectations for SWEs
- Attend 2-on-1s to get to know SWEs and what they hope to get out of the org
Week to Week
Writing deliverables for SWEs
- Deliverable: a high-level description of an implementation task that includes high-level guidance and all the necessary resources for accomplishing the task
- Writing weekly deliverables - this will require a fair amount of time (40 - 50 minutes per deliverable)
- When writing deliverables have clear chunks for when PRs are expected. For example, if you have a 1-3 week deliverable, then it may have 2-5 PRs that are expected. These chunks will be easier to review
- Delineate lower-level strategies for high-level tasks in weekly deliverables (ex: create these functions in the codebase, use this library to connect with the API)
Code reviews
- Whenever a PR is due, code reviews (ideally) should be finished within 24-48 hours
- This will create a fast enough feedback loop that gives SWEs enough time to read the comments made and adjust accordingly
Office Hours
- Have a regular 2-hour time and place for SWEs to be able to request help
- Make sure this time is 2-4 days after the meeting to give SWEs time to try doing the deliverable before coming to office hours
- Providing regular async outside help to SWEs as needed by providing documentation, tutorials, peer programming, etc.