Building and Managing

Student Developer Teams

 

Clinton Staley

clintstaley@gmail.com

 

1. Essential Elements What is a Student Developer Team?

 

a. Hire the Best

Student ability and maturity vary by as much as a factor of 20. Student developer teams use only the top 5-10% .

 

b. Hire for Year Round Work

Even an experienced professional finds it hard to contribute to a software project if s/hes only on the team for 3 months. Student developer teams work all year, fulltime in summer, part time during school.

 

c. Manage Them Differently

Student developers enthusiasm and talent (assuming you choose well) are at least as good as the average working professionals. Their experience and schedule flexibility are not. This presents unusual management challenges requiring special methods and outlook.

 

d. Take the Teams Seriously

Student developer teams do serious work. This makes the investment worthwhile, and energizes the students.

 

2. Advantages Why would you want a Student Developer Team?

 

a. Cost-effective Labor

Student hourly wages in SLO run $15-$20/hr, with no benefits. Hour for hour, a properly managed student developer team is 50-100% as as effective as a team of experienced developers. (The range depends on the type of software.)

 

b. Access to the Best Grads

A student developer team is a gold star means of hiring top graduates. After a student has put in several thousand hours of work for you, you know them well, and they are already fully engaged in your projects. And if youve hired well and managed them well, theyll want to stay with you here in beautiful SLO.

 

3. Challenges What are the Problems with Student Developer Teams?

 

a. Rigid Schedule

A fulltime developer, at least on a short term basis, can be called upon for long workweeks. Students, during the academic year, cannot. Also, students cannot be on call 24/7, e.g. for tech support, since classes and academic assignments preclude this.

 

b. Higher Turnover

The biggest loss of student developers is not to other companies, but to academics. Perhaps one in three students finds that they cannot maintain a part time working schedule and school simultaneously. These folks usually leave after one or two quarters. (Others, however, thrive on the challenge and will work for several years while in school.)

 

4. Practical Advice How to Implement Student Developer Teams

 

a. How to Hire the Best

Run programming contests or similar technical presentations where you can directly evaluate student programming and problem solving.

 

Develop good relationships with exceptionally demanding professors, who focus heavily on software development in their classes and thus can identify students with promise at such work.

 

Solicit recommendations from students already on staff, but take these with a grain of salt. Students are inclined to recommend buddies, or acquaintances who ask for a recommendation; theyre not as selective as you would be. Vet student recommendations carefully.

 

Maintain very high standards. Dont settle for second-best; let the size of the team be dictated by the number you hire, not vice versa.

 

b. How to Hire for Year Round Work

The trick is to get the right balance between academic and professional work. You want to soak up all their WOW playing time without taking way from their studies :).

 

A good schedule is fulltime for summer, winter break, and spring break (generally 16 weeks) and 16 hrs/week, scheduled around classes, during the academic quarters. This gives a yearly effort of 1100 hours, or a little over halftime on average.

 

c. How to Manage them Properly

Choose people who believe younger professionals can accomplish great things who do not see them as just kids.

 

Maintain a strict code review process and keep design and analysis under control of fulltimers, aided by exceptional members of the student developer team. This is not, by the way, because the students are poor designers. They often have very sophisticated design skills, but lack the experience to keep things simple.

 

Plan on a student/fulltimer ratio of 2 or 3 to 1 within the student developer team.

 

d. How to Take the Teams Seriously

Give them responsibility for projects that contribute importantly to the bottom line. Bet-the-company projects are not a good choice (unless youre a shoestring startup relying almost wholly on student labor :)). Instead, pick projects that might be just break-even with standard labor, and which are valuable but not essential to company survival. Projects with a long term future are also important remember, youre planning to hire these bright kids as fulltimers when they graduate.

 

Use the same formal employee review process for the student developer teams as you do for fulltimers.

 

Most importantly, maintain a corporate culture that takes younger developers seriously. Put fulltimers in charge who believe in the idea. Use the same formal employee review process for the student developer teams as you do for fulltimers. Treat the students as real employees, not interns.

 

e. How to Manage Rigid Schedules

Rigidity of schedule is one of the two significant challenges with student developer teams. Several things help ameliorate this.

 

First, dont use students for first-line tech support or first-line client interactions if you need 24/7 availability. They make excellent second-line support when theyre on deck, and its good experience for them, but they arent always there.

 

Arrange schedules by asking students for seriously blocked times (classes, important religious obligations, etc.) Ask them to accept any part time schedule that respects these blocked times. Pick schedules that overlap well with other team members. Try for at least 4 hours per working session; shorter sessions tend to get chopped up by overhead. Insist on promptness. A fulltimer can come in 30 min late with no harm if s/he is going to pull an 8-10 hour day anyway. A student with a tight 4-hour time slot cannot.

 

Insist on the 16 hr/week minimum during school This is a carefully arrived-at balance from years of experience, and gives enough time for good students to do their school work and still contribute to a team. If you let students chisel it down, youll soon have people working 12 hrs/week or less, which is not effective. And, offer incentives to those willing to work 20 hrs/week or more. This need not be monetary; it may be just the opportunity to work on an especially interesting project at their current wage.

 

Arrange a summertime pay scale that is higher than the yearly scale, to compete with internship offers from the likes of Google (who are offering $30/hr up to $38/hr). But do this in the form of a bonus, since you dont need to raise rates throughout the year. Base the bonus on number of hours worked during the summer, heavily backloaded to encourage a full summers participation. Offer overtime if you like, to help compete with out of town offers (most internships in Silicon Valley are salaried, not hourly).

 

f. How to Manage Turnover

You will inevitably find some students needing a quarter off for difficult classes. There are several ways to manage this.

 

Arrange a leave policy that brings the student back in the quickest time. For instance, you might allow a leave of 6 weeks, unpaid, once per year, so that a student can take the last six weeks of a tough quarter off. This gets you at least the first five weeks of the quarter, and leaves them the time they *really* need to get studies done. (No one does a whole lot of academic work in the first half of a quarter anyway :))

 

Set up an efficient, well-documented training plan. Its cost-effective to spend 100-200 hours of an existing fulltimers time to train a new fulltimer who might work 6,000 hours before quitting. But a student may only average 1000 hours before quitting (some quit after a quarter or two; others stay for years). With a well-organized and documented training plan, one can bring a new student developer sup to speed using only 60 hours of their student-peers time, plus 10-20 hours of fulltimer time.

 

5. Local Success Stories

 

a Vizolutions/ATA

Successfully used student developer teams to write software for downhole oil equipment, and presently has a software staff with numerous strong Cal Poly grads.

 

b. Terran/Autodesk

Used student software teams to develop multimedia software in late 90s and early 2000s.
Student team was kept across two acquisitions and major layoffs in fulltime staff.

 

c. CreateSpace/Amazon

Developed startup site almost entirely with student labor. Continues to use student software teams to develop commercial websites and production control software. Has gained over a dozen fulltimers as grads from the student developer teams.