Sunday, October 22, 2017

FTC 8578 and 11959 Software Mentor roles and description 2.0

(revised 11 Feb 2018) 

What we need from software mentors ... a simplified version.
This, once more, is my personal vision, and does not reflect that of Columbus FTC or any of the mentors - unless purely by coincidence. It also obsoletes and supersedes an earlier, vastly more complicated version.

In general, our need for mentors is as follows:

Team Mentors
Each team, whether there are 1, 2, or n, needs a dedicated mentor to supervise the software development for that team.

Auxiliary Mentors
 These individuals are useful in many roles. One hopes that they'll work with the students and with the software and grow into "full time" mentors. "Full Time" has no rigid definition, but practically it means making 7/8 or more of the practices.

Computer Setup Tasks
One of those mentors - or a separate one - should accept the following responsibilities - before September, and evaluate the need for an update in mid November and again over the Christmas-New Year's holiday:
  1. make sure the computers have a common or at least similar OS
  2. make sure the version of Android Studio is correct and that Android Studio is configured correctly.
  3. make sure all teams are using a legal and servicable version of the FTC software
Architecture and Training Tasks 
An astonishing percentage of the people I've met who style themselves software architects have huge troubles designing the code equivalent of a privvy, to the point where I'm reluctant to use the term. Regardless, a member - either the one above or a different one needs to ...
  1.  keep on top of the configuration management schema. This takes constant effort, as it gets ignored almost instantly. This means helping make sure that commits are done at the end of each practice and that pushes to github are done often enough to make the catastrophic failure of any given computer a non-event.
  2.  Keep on top of the architecture. To succeed, that is, to add the most value to the students, they need to spend their time thinking about the difficult problems and not chasing down 16 instances of the same bug. This in turn means that we have to leverage some of the object oriented properties of Java. 
  3. Provide training in Linux Command Line, Android Studio, Java, principles of systems engineering, and basics of software engineering. For example, it is profoundly useful for the students to understand how long is 100 milliseconds, some of the basics of how geometry and algebra apply to making the robot do what we need, and on up to some rudimentary PID controller, first order filter, and other things of that ilk.

No comments:

Post a Comment

Java Is as Java Does

We would not seek a battle, as we are; Nor, as we are, we say we will not shun it. Henry to Montjoy,   Henry V ,  Shakespeare Last season I ...