Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   General Forum (http://www.chiefdelphi.com/forums/forumdisplay.php?f=16)
-   -   Advice- Too many Programmers? (http://www.chiefdelphi.com/forums/showthread.php?t=138200)

axleAlex 17-09-2015 22:31

Advice- Too many Programmers?
 
Hello CD,
I apoligize for the longer side of posts but it needs to be addressed to prevent drama amongst our team.

Our team has been around for 10 years now, and in the last two years has nearly doubled in size. We have appeared to be in a tough predicament, one involving too many programmers.

Let me start by mentioning that for Recycle Rush, we had nine programmers. Only one of them was a senior, taking us down to eight for this year. We enjoyed working on our scouting program, and more importantly our robot.

The issues arise now. We are presented with our largest incoming group, not all freshmen, even some sophomores and juniors. It appears that we might (no subteam desicions have been made yet), that we could have at least 7 new programmers, just shy of 1/3 of our incoming group. That could mean having 15 programmers.

Towards the end of last season, we ran out of things to do. This year could be a much more laid back year than previous as our scouting program is much closer to being done than expected.

We have had multiple ideas thrown out of how to address this situation:
  1. Let everyone who wants to join programming join programming. This is what FIRST believes in, and what I believe in personally. When you start programming, you arent as good as you would be 3 months from now, (build season) and tryouts are for sports in my mind.
  2. Have 'tryouts' of sorts to weed out the programmers, I strongly oppose as you should be able to pick out what you want to do, and we should not discriminate on the abilities of our new members.

This situation needs to be resolved, hopefully soon (we are supposed to start teaching programming) on October 8th. I do not want this situation to spiral into a 'select group' and as a result drama. FIRST is not for drama.

Any ideas? If you have any questions, feel free to PM me or reply below.
Thank you

Sperkowsky 17-09-2015 22:34

Re: Advice- Too many Programmers?
 
Maybe you could give the programmers multiple jobs. Our team is very small so everyone is in multiple sub teams. There are always going to be those people who only want to program but I'm sure you can get some of them to help out in other areas.

asid61 17-09-2015 22:38

Re: Advice- Too many Programmers?
 
Assign them to other jobs or research. Learning how to use new sensors or motion profiling, for example, takes up a lot of people.

TogetherSword8 17-09-2015 22:54

Re: Advice- Too many Programmers?
 
What we started doing to give others programming experience was to duplicate projects, and form mini competitions. Those of you that are going to the Battle O' Baltimore may notice that 888 has registered two teams. Both teams have identical robots, the only difference is the people in charge of maintaining each one, and the programming. Each team has their own programmer, and each of them have their own ideas, that they developed independently with some guidance from myself (I have now graduated and am no longer with the team) and our mentors. After competition, the plan is for them to then come back together and discuss what went well and what did not.
With larger groups, if you have a lack of jobs, because of the openendedness of programming, I feel this system would be helpful, especially to give some prospective programmers ideas of alternate ways to perform the same task, which may also become useful in their later careers.

DaRealSlimShady 17-09-2015 22:55

Re: Advice- Too many Programmers?
 
15 programmers is 15 too many.


#Mechanical4life

Jared Russell 17-09-2015 22:56

Re: Advice- Too many Programmers?
 
Between the code that runs on your robot, your driver station/dashboard, your website, your scouting system, automating your pit checklist, off-line tools for generating autonomous mode scripts, off-line tools for visualizing logged data, etc. etc... "there is not enough to do" is never an excuse for bored programmers.

AlexanderTheOK 17-09-2015 23:51

Re: Advice- Too many Programmers?
 
Quote:

Originally Posted by Jared Russell (Post 1496401)
Between the code that runs on your robot, your driver station/dashboard, your website, your scouting system, automating your pit checklist, off-line tools for generating autonomous mode scripts, off-line tools for visualizing logged data, etc. etc... "there is not enough to do" is never an excuse for bored programmers.

one little issue I've always had in the back of my mind, and in the back because my team has always been on the low end (2-5) of robot programmers is that these are 7 NEW programmers.

Autonomous scripting? Well first you need to know how to make a solid system that uses state machines (and obviously sensors) properly. That does actually take experience to do. It takes time on an actual robot. Again, not too much of an issue for teams that have lots of functional robots, lots of time, and not lots of programmers, but it could easily be a problem for a programming team of 15.

Now, while I imagine that if half of your fifteen are going into web development and making your scouting system, you get down to a manageable 7, where enough time and accessible hardware make it possible for programmers to gain that experience, but robot programming really takes contiguous programming experience.

I can see it being done, but it is a challenge.

Monochron 18-09-2015 00:23

Re: Advice- Too many Programmers?
 
Quote:

Originally Posted by AlexanderTheOK (Post 1496409)
one little issue I've always had in the back of my mind, and in the back because my team has always been on the low end (2-5) of robot programmers is that these are 7 NEW programmers.

I think the important part of this advice that is often left out is that the real need here is for leaders to take on each of those tasks and help guide the other members through. Whether those leaders are adults or students can depend on mentor availability but you need people responsible for making those items happen.

Basically an important part of the solution to having too many students is to increase your number of leaders. Mentors, students, what have you.

Ari423 18-09-2015 06:58

Re: Advice- Too many Programmers?
 
I would say it depends on the size of your team. If your team is 30 students, having 15 of them soley working on programming is excessive. Maybe you can impose a requirement to spend a certain number of hours working with another subteam before they can start programming. If your program is 60+ students I see no problem with having 15 programming students.

My team has also had this problem in the past few years. We are a team of about 15 total, and 5 of those students all wanted to program. This was clearly not the best use of their time for the team, so we asked those students to pick another subteam to assist before they were allowed to program. We lost one or two of the students, but in the end it was much more beneficial to the team to have the extra manpower building the robot.

Greg McKaskle 18-09-2015 07:44

Re: Advice- Too many Programmers?
 
It is great to hear that lots of folks are interested in programming the robot. It is good that you are worried about this growth spurt since this is when things can change dramatically, for good or bad.

Since your programmingteam is less than doubling, I'd suggest the apprenticeship model. Let the programmers with most experience decide what they will work on, and each of them gets an apprentice to help/train. You may plan for a rotation opportunity at some point since they may find a better fit once they have a bit of runtime. You may also want to designate a technical lead to coordinate the activities of the team.

The more experienced guys will be asked to do something other than type/draw code. The new guys will learn how to code review and help someone else debug.

This is actually my favorite way to add programmers to a group at work, and it is beneficial to both parties.

Good luck.
Greg McKaskle

marshall 18-09-2015 08:03

Re: Advice- Too many Programmers?
 
Find more mentors to help with organizing and running your programming students.

And before I get any "One does not simply find more mentors" memes... Ask the students in your group if any of their parents have a background in programming or IT or even organization/management. Get them involved. Ask your existing mentors to help with finding more mentors. Ask for help. Be open with your communication. Ask other students in the group to step up and lead development efforts.

Monochron hit the nail with his post. You need leaders to help spread out the opportunities you can make available to your new programmers. As Jared mentioned, there are a lot of cool things they can be doing.

GeeTwo 18-09-2015 08:20

Re: Advice- Too many Programmers?
 
We have had about 5-9 programmers per year, but it seems that every year, one student does 75+% of the programming for the robot, and three do 99%. The other programmers never seem to "gel". My personal suspicion is related to time spent programming (whether learning, for other things, or on the robot) outside of regular build hours. Most individuals will never become an effective programmer if (s)he only puts in a few hours a week, a few months a year.

If this is clearly communicated up front, perhaps you will have fewer applicants, and among the ones you get will be the ones you need.

Quote:

Originally Posted by aeastet (Post 1496422)
My plan for this up coming season is to break the programming group into a few groups. I will have a couple of teams that program the robot and a few that are working on the dashboard.

I'm not sure of our tasking/breakdown our first three years, but this is what we did last year; each person was lead on one or two sub-system, and they worked with a buddy or two to bounce ideas and help each other, plus mentors. At the end, our lead and deputy programmers (a senior and a junior) wound up doing most of the tasks assigned to everyone else. A third programmer, a freshman, got his stuff at least mostly done, but was busy as a driver by the time we were taking care of loose ends. The deputy and "third" have returned; the other programmers have not showed up to tryouts, so we will be taking another crop of new programmers. There have been at least two at tryouts who show promise.

Quote:

Originally Posted by EmileH (Post 1496497)
I highly recommend [G]it[Hub] to help keep the organization of new and old code clean and organized.

+1 - It's a great "time machine" resource if you're coding by yourself. It (or something similar) is indispensable if you have two or more on your programming team.

aeastet 18-09-2015 08:27

Re: Advice- Too many Programmers?
 
Our team this year is about 30. Of that I have 11 programmers. I am very excited to have a team with so many students that are interested in programming. I have been teaching programming classes all summer. I have the student broken into small groups and writing their own code. There are two to three students per computer. They are just now getting to the point where we will be putting their code on the robot and seeing what they learned all summer. They are excited and so am I.

My plan for this up coming season is to break the programming group into a few groups. I will have a couple of teams that program the robot and a few that are working on the dashboard. I will have them compete to see who can build the better code. The winning team will be in the pits for competitions. I hope to get better more engaged programmers, better programs, and more ideas this way. I am hoping that we can take the things that work the best from each team and make them into a super code of all of the ideas.

This is the first year I have had so many programmers so I will see how this model works.

axleAlex 18-09-2015 12:15

Re: Advice- Too many Programmers?
 
Thank you everyone for your advice. To be clear, our team had 50 members last year. I will continue to develop a short presentation for our team next week before our new members start training and be a member of our team.

Thank you everyone!

EmileH 18-09-2015 15:07

Re: Advice- Too many Programmers?
 
This year our team had 1 programmer, as in past years. My goal for this year is to get at least 2 new programmers to join, simply because I cannot put in the same time commitment this year as last year, for many reasons.

My suggestion (building on the other comments) would be to pair up the 7 new members with 7 of the more advanced/veteran students, and give each one of them a certain task.
The veteran partner would have the following responsibilities:
-Ensure their code is being implicated on the real robot (if applicable)
-train new member
-make contributions to the robot code
The new member would have these responsibilities:
-Learn how to program
-Make basic contributions to the robot code
-shadow the veteran member

For some tasks (dashboard, drive base code) two students is enough. For other tasks, like motion profiling or advanced PID control, multiple partner groups can be assigned to a task.

My question is: Do you use GitHub to collaborate between team members? If so, how are you using it? I highly recommend it to help keep the organization of new and old code clean and organized.

If not, I highly suggest you look into it. The quick version of it is that you have one master repository of the code that's currently on the robot. Then, each user has their own fork of the robot code. They make the changes in their forks, and when that user has tested their code on the robot, they simply make a "pull request" which basically asks the main repository organizer/programming lead to merge the forked code into the master. In most cases GitHub can take care of the merging for you (just hit the button) but in a select few cases you may need to manually add the requested code to the master (which is easy too).

HTH.

Lij2015 18-09-2015 15:39

Re: Advice- Too many Programmers?
 
I know this probably isn't what you want to hear, they'll leave on their own most likely if there really isn't anything to do if you keep them from disturbing stuff.

On another note, you can have the returners who know how to do it split off and do scouting and have a mentor teach the kids what to type(as far as robot code goes) while they alternate off or get more computers in the mix(if that's an option) and use it as training. If you don't have a mentor, you better get good at teaching them yourself!

I also want to counter the statement that you can never have too many, because in most cases unless you are a top caliber team that does everything they can and does tons of projects your programmers have a good bit of downtime.

EricH 18-09-2015 18:55

Re: Advice- Too many Programmers?
 
Suggestion: Cross-train some of the programmers in electrical. That way, it's definitely the programming team's fault.


I'm on the mechanical side...:p ;)

Citrus Dad 19-09-2015 01:59

Re: Advice- Too many Programmers?
 
1) Build and expand your scouting system. We're still making ours better and it takes at least 3 programmers it not more. See our latest white paper here.

2) Build and run a webcast system. Teams are producing much better webcasts than FIRST is doing. We did 3 of them 2 years ago; we didn't get the opportunitiies this year. We do 2-3 offseason events as well, and FLL/FTC events can be webcasted. That can take 2-4 students.

LCJ 19-09-2015 14:57

Re: Advice- Too many Programmers?
 
My suggestion is to run many more programming projects that are not necessarily for the robot.

Off the top of my head, the programmers on Team Appreciate work on the following:

Zero Robotics (3-8 people) - Robotics competition that involves programming a robot to compete in zero-g environments. This year's competition

Team Website (2-5 people) - Building a professional website is a lot of work and there should be dedicated programmers that work on this. Building a clean, presentable website (like 254 or 148's) is a very useful skill to have after high school.

Scouting System (3-8 people) - We have tried making scouting apps to run on Androids, Apple products, and off of a laptop. There's a lot of work that can go into building a really good scouting system for your team.

Programming Helpers (any number) - These students learn how to code in a language that the team doesn't use so that they can help out newer teams in competition with their autonomous/drive code.

Hope the suggestions help!

Arhowk 19-09-2015 22:01

Re: Advice- Too many Programmers?
 
My team's on the complete opposite end of the spectrum- I'm the only programmer (and the head electrical for that matter) with no programming mentor, but I'm just so bad at teaching kids that they get confused and decide to go to mechanical :)

Firstly, I think that you should start ALL students in robot programming for a few main reasons:
  • It's the easiest programming in most of FRC. Teaching kids robot programming can help filter those who have interest in programming against those who just want to be around a computer, but also doesn't shy off the kids who really want to be programmers but don't want to get thrown into hardcore javascript day 1.
  • It's the only thing needed by every team. Scouting is nice, website is nice, but you're going nowhere without a robot. If you teach kids web development and robot seperately and the robot programmers turn out to be mechanically focused than you have to teach the other programmers robot programming.
  • It's hard to get this kind of experience outside of FRC. Anyone with a computer can build a website but the best kids can do for programming is just buying some $20 arduino kit. Managing code for a $5000 robot on a team of 20+ people is a tough experience to get elsewhere outside of an actual job.

Once you've filtered and sharpened a nice group of programmers (yes, every kid will try to enter as a programmer, its not as fun as they think) you can divide it elsewhere as other posters have said.

As to not be too off topic, "too many" shouldn't even be in your vocabulary! Just be sure to utilize them properly, don't just throw them in a room and tell them to code.

teku14 20-09-2015 09:51

Re: Advice- Too many Programmers?
 
Quote:

Originally Posted by Jared Russell (Post 1496401)
Between the code that runs on your robot, your driver station/dashboard, your website, your scouting system, automating your pit checklist, off-line tools for generating autonomous mode scripts, off-line tools for visualizing logged data, etc. etc... "there is not enough to do" is never an excuse for bored programmers.

Amen

JustinCAD 21-09-2015 09:38

Re: Advice- Too many Programmers?
 
I feel that you can never have too many students join a subgroup such as Programming. Having multiple students wanting to do a certain task can open up many opportunities that wasn't possible with fewer people.

One idea that you could try and adapt to is to kind of create subgroups out of Programming. For example, one subgroup of Programming could work on ways to implement Java, while others can work on LabView, working together to have them work hand in hand. (For the note: I am not in programming, so I would not know whether Java and Labview are able to work hand in hand).

This being said, Programmers will always have work to do. Find/fix bugs, implement new styles of code, etc.

I wish you luck!

MamaSpoldi 21-09-2015 15:15

Re: Advice- Too many Programmers?
 
Quote:

Originally Posted by AlexanderTheOK (Post 1496409)
one little issue I've always had in the back of my mind, and in the back because my team has always been on the low end (2-5) of robot programmers is that these are 7 NEW programmers.

Autonomous scripting? Well first you need to know how to make a solid system that uses state machines (and obviously sensors) properly. That does actually take experience to do. It takes time on an actual robot. Again, not too much of an issue for teams that have lots of functional robots, lots of time, and not lots of programmers, but it could easily be a problem for a programming team of 15.

Now, while I imagine that if half of your fifteen are going into web development and making your scouting system, you get down to a manageable 7, where enough time and accessible hardware make it possible for programmers to gain that experience, but robot programming really takes contiguous programming experience.

I can see it being done, but it is a challenge.

Agreed! It is important to create a small pool of knowledgeable and experienced programmers to write and maintain the robot code with guidance from a programming mentor (in the best of circumstances). You can definitely have too many programmers to facilitate this and having everyone pitch in is generally counter-productive. Consistency and commitment of a few programmers are both key to having solid, maintainable code. This is even true if you are using some form of source code control (eg. SourceForge or GitHub), which should be used regardless of how small the number of programmers (even if it is just 1).

The idea of facilitating other programming projects such as development and maintenance of website and scouting apps are excellent ones, but do rely on either having students who are independent, experienced, and knowledgeable or having additional programming mentors who can organize and guide that development operation. Keep in mind that sometimes these "side" projects can be guided by adults who may not be able to make the level of commitment that is desirable for those directly involved with the robot programming. For example, a website development mentor would not be needed at competitions but would be very helpful in the off-season.

Quote:

Originally Posted by JustinCAD (Post 1496747)
I feel that you can never have too many students join a subgroup such as Programming. Having multiple students wanting to do a certain task can open up many opportunities that wasn't possible with fewer people.

One idea that you could try and adapt to is to kind of create subgroups out of Programming. For example, one subgroup of Programming could work on ways to implement Java, while others can work on LabView, working together to have them work hand in hand. (For the note: I am not in programming, so I would not know whether Java and Labview are able to work hand in hand).

This being said, Programmers will always have work to do. Find/fix bugs, implement new styles of code, etc.

I disagree with your assessment. You can have too many programmers depending on your other resources.

Unfortunately just having work to do is not enough to make students productive in the programming arena. For example, a student who does not know anything about the code being developed cannot "find/fix bugs". Appropriate levels of knowledge, experience, and/or instruction are really necessary to make headway on most, if not all, programming projects. Although some may be happy to struggle to work on projects without knowledgeable guidance and possibly without a team-related goal, I suspect it would seem to others like you are just creating "make-work", ie. making up tasks to fill their time. This can often be much more frustrating than suggesting they work on other tasks that are needed by the team but that may not be programming. Just like everyone cannot be the driver (at the same time), everyone cannot be a programmer (at the same time).

A team needs to use their resources wisely. My experience is that a student will derive much more satisfaction from doing something useful and helpful if it is suggested in a respectful way; this is the goal of teamwork (another amazing aspect of FIRST). It makes sense to take on some additional students into the programming team with the goal of training them, but putting everyone to "work" programming is not always the best goal for the student or for the team.

apache8080 16-10-2015 21:12

Re: Advice- Too many Programmers?
 
Quote:

Originally Posted by AlexanderTheOK (Post 1496409)
one little issue I've always had in the back of my mind, and in the back because my team has always been on the low end (2-5) of robot programmers is that these are 7 NEW programmers.

Autonomous scripting? Well first you need to know how to make a solid system that uses state machines (and obviously sensors) properly. That does actually take experience to do. It takes time on an actual robot. Again, not too much of an issue for teams that have lots of functional robots, lots of time, and not lots of programmers, but it could easily be a problem for a programming team of 15.

Now, while I imagine that if half of your fifteen are going into web development and making your scouting system, you get down to a manageable 7, where enough time and accessible hardware make it possible for programmers to gain that experience, but robot programming really takes contiguous programming experience.

I can see it being done, but it is a challenge.

I disagree that Autonomous scripting requires a solid underlying system like state machines because WPILib has a lot of built in things to basic autonomous modes. If you have a group of programmers who are good beginners it would be good practice for them to script autonomous modes with the pre-built WPILib systems. In addition, I agree with Jared that there are other tools that they can be working on that can help with the development process. Last year on our team we had a group of new programmers working on testing smart dashboard widgets for selecting autonomous modes, vision features, driver aides, and visualization tools. They were able to learn a lot about WPILib.

seg9585 20-10-2015 16:32

Re: Advice- Too many Programmers?
 
Keep in mind that not everyone on the programming team will actually be *coding*. Some will be working on logic flow and concept of operation, control documentation, configuration management, and autonomous mode planning. Others will be working advanced efforts such as custom game piece detection and interaction, robot autonomy (in both auto and teleop modes), etc.

Others will work on scouting apps and database design, website programming, etc.

We have about 30 students who want to join programming this year (surely this will weed out over time). Only a handful actually ever write actual low-level robot code.

GeeTwo 20-10-2015 21:50

Re: Advice- Too many Programmers?
 
Quote:

Originally Posted by seg9585 (Post 1501087)
Keep in mind that not everyone on the programming team will actually be *coding*. Some will be working on logic flow and concept of operation, control documentation, configuration management, and autonomous mode planning. Others will be working advanced efforts such as custom game piece detection and interaction, robot autonomy (in both auto and teleop modes), etc. Others will work on scouting apps and database design, website programming, etc.

Unfortunately, our experience is that very few of our students are ready to do high level tasks before they are ready to do coding. Do you have tasks/training that prepares team members for design and documentation before they are ready for programming? That would be a game changer for us.

indieFan 21-10-2015 08:05

Re: Advice- Too many Programmers?
 
One more suggestion: Have your knowledgeable students mentor other teams in the area, as well as your own. Not all teams are lucky enough to have mentoring in programming.

JesseK 21-10-2015 13:02

Re: Advice- Too many Programmers?
 
My $0.02 - Cyber Competitions (red vs blue, white/grey/black hat, etc).

We have 130-ish 'programmers' in our overall program. Had to find something for them to do since they're all interested in applied STEM, but a few weeks of from-scratch robot just isn't enough ;)
I'm not involved with that aspect of our program, but here's a link: https://www.uscyberpatriot.org/
edit - just noticed registrations are close - so you could sign up and start practicing for the exhibition rounds that may start just after FRC season ends.

Quote:

Originally Posted by Jared Russell (Post 1496401)
Between the code that runs on your robot, your driver station/dashboard, your website, your scouting system, automating your pit checklist, off-line tools for generating autonomous mode scripts, off-line tools for visualizing logged data, etc. etc... "there is not enough to do" is never an excuse for bored programmers.

This x1000.

Wendy Holladay 24-10-2015 17:12

Re: Advice- Too many Programmers?
 
this is why i think FRC was wrong to remove the website and animation awards. that is programming, yes it is.

talk to some of your programmers about working on the team website.

or have some develop animations for your chairman's awards.

mjcoss 27-10-2015 13:22

Re: Advice- Too many Programmers?
 
Like others have said, it's all about managing multiple subteams. A few kids on the main robot, some on the driverstation, others on web, IT infrastructure, pit management, scouting app, database, inventory system for team's parts, heck even an attendance system, a student tracking system (who has had what training, done what service projects, etc.). Lots of stuff to do some mission critical, others not so much.

Some kids are not going to make it in the programming group, and should be redirected to other aspects of the team. Some are going to be great, but need to be shown how to collaborate. Others need unlearn some self taught bad habits. This is where the mentors come in. Keeping everyone engaged is a challenge.

We've around 100 team members, and maybe a dozen students interested in programming. I've got lots to keep them busy, and a few other adult mentors that can help. Should be an interesting year.

IronicDeadBird 27-10-2015 14:15

Re: Advice- Too many Programmers?
 
Quote:

Originally Posted by axleAlex (Post 1496390)
Hello CD,
I apoligize for the longer side of posts but it needs to be addressed to prevent drama amongst our team.

*snip*
*snip*

Any ideas? If you have any questions, feel free to PM me or reply below.
Thank you

One thing I am seeing a lot of is "Websits yo!" One thing to keep in mind is that web site development is a need that exists outside of your robotics club (team? cult? pick your poison). Odds are someone in your school needs work done on a website, put out a school wide statement that you have programmers. You would be surprised what turns up.


All times are GMT -5. The time now is 11:40.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi