Varsity letter requirements
As a preface, a student isn't required to do anything. That is, they can
work on as much or as little as they want and show up when they please.
With that said, one must earn their varsity letter. The following is
a list of guidelines for students on the software subteam to follow.
Meeting these guidelines signals to leadership that one has put in a
varsity-level effort to learn what is being taught and deserves recognition
for it.
- Made a significant positive impact on the robot code base or other
software project for the team
- Rookie: needs to make enough contributions that we can
feel confident we can tell them to implement something we typically
do, and they can figure it out themselves.
- Veteran: should be able to implement something new and
exciting themselves, but not necessarily in the best way because
that's what mentors are for. Mentors use their experience to suggest
alternative implmentations and teach students to consider the
trade-offs in their design.
- Was involved in the design of the robot code's architecture
(requirement gathering/synthesis, state machine design, application of
control theory)
- Veteran: can explain this year's robot code and defend
their design decisions
- Veteran: has shown growth from the previous year
- Actively found ways to make meaningful contributions
- Basic knowledge
- Is proficient in C++
- Can use version control effectively
- Exercises clean coding practices
- See our learning
outcomes for more
- Can work productively with the other members
- Can provide meaningful feedback for other members' code
- Maturity
- Handles design disagreements in a professional manner (contrast
this with yelling at each other, which has happened before on the
software team)
- Considers other people's opinions, viewpoints, and advice before
making a decision
- Evaluates ideas based on their merits rather than emotional
attachment
- Treats mentors and other team members with respect
- Easy to work with
- Time commitment
- Software strongly encourages working outside of build sessions,
but that is not required
- Be on Slack and engage in discussion
- Step up and take on tasks
- Follow through on tasks undertaken and assigned
Keep in mind not every software team member will have the opportunity to
write a piece of production software from scratch. Maintenance
programmers are important too.
The Ten Commandments of Egoless Programming provide a summary of what
is expected in collaborative work environments (not just software
engineering).