Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm going to be in charge of hiring some interns for our software department soon (automotive infotainment systems) and I'm designing an internship program.

The main productive activity "menu" I'm planning for them consists of:

  • Verification testing
  • Writing Unit Tests (automated, with an xUnit-compliant framework [several languages in our projects])
  • Documenting
    • Code
    • Updating wiki
    • Updating diagrams & design docs
  • Helping with low priority tickets (supervised/mentored)
  • Hunting down & cleaning compiler/run-time warnings
  • Refactoring/cleaning code against our coding standards

But I also have this idea that having them do small R&D projects would be good to test their talent and get them to have fun. These mini-projects would be:

  • Experimental implementations & optimizations
  • Proof of concept implementations for new technologies
  • Small papers (~2-5 pages) doing formal research on the previous two points
  • Apps (from a mini-project pool)

These kinds of projects would be pre-defined and very concrete, although new ideas from the interns themselves would be very welcome. Even if a project is too big or is abandoned, the idea would also be to lay the ground work so they can be retaken by another intern or intern team.

While I think this is good in concept, I don't know if it could be good in practice, as obviously this would diminish their productivity on "real work" (work with immediate value to the company), but I think it could help bring aboard very bright people and get them to want to stay in the future (which, I think, is the end goal for any internship program).

My question here is if these activities are too open ended or difficult for the average intern to accomplish and if R&D is an efficient use of an interns time or if it makes more sense for to assign project work to interns instead.

share|improve this question

closed as primarily opinion-based by MichaelT, gnat, Dan Pichelman, Kilian Foth, ratchet freak Sep 16 '14 at 12:29

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

Why not? Joel Spolsky did it and ended up with a saleable product. – DaveE May 24 '12 at 0:56
There is far too much personal information for it to be applicable to anybody else and is basically just polling for opinion. If you want to bring up the topic in chat for a discussion then please feel free to visit the Whiteboard, or if you have a more specific question that could benefit a wider audience then please post another question. – maple_shaft May 24 '12 at 1:21
I'd suggest removing the "we don't want 40 year-old interns", and change your mind about it as well. It shouldn't matter to you as long as they meet the qualifications and can do the job. – jmoreno May 24 '12 at 2:06
I think I had put too much unnecessary information in the question after all. Is this better?. (BTW, what I meant about 40 year old interns was having interns remain so for 40 years, not that we'd discriminate a 40 year old person that wanted to be an intern) – dukeofgaming May 24 '12 at 15:10
I personally would not take an internship that required me to write a 20 page paper. As a student I would want to accept an internship that would introduce me to the field. Writting a 20 page research paper is not one of those things. If you wanted me to write my conclusions on something that would be fine, I have done that as a professonal, you need to balance the ability to provide them a real outlook on our field, otherwise what they do will have little value afterwords. I would have a real problem doing this has a non-student intern. – Ramhound May 30 '12 at 11:43
up vote 5 down vote accepted

I can't speak for everyone else, but I have done something similar with co-op students. We had one co-op student work on a proof-of-concept for a mini content-management-like system that would have significantly reduced maintenance overhead of the existing system. Another student we had work on some experimental changes to the way we worked with logging and monitoring. Another did research into JMX-based enhancements to the existing automated build tool. These were all projects that were low priority because they were strictly internal projects, but things that we all agreed would be nice to have, but didn't have the time to research and work on ourselves.

With respect to research, they were usually left on their own to figure out how to get things done. I didn't know much about JMX, other than it might help solve a problem, so I asked the student to research it more and see if it was actually an appropriate technology to solve the problem, and if he could get a very simple concept program working. The students were responsible for most research and experiments, not me or the other developers.

The actual results varied. Some products moved forwards after the term ended, others did not, but the students seemed to enjoy it overall. It was more than just "fix these bugs and report" work.

share|improve this answer

I don't think this question can be answered based on the "average" intern. Different people are going to bring different abilities and skill sets to the workplace. Bring in your interns and start them off working on your productive activities. Gauge their capabilities, developer level, and amount of interest.

Talk about the R&D projects that are available; if any intern seems excited about one let them try it. Maybe an intern is doing good work but seems bored writing unit tests and documenting code; they might enjoy the challenge of something more difficult and open-ended.

Conversely, if you have an intern that needs constant guidance or has poor coding skills you shouldn't let them touch those projects until they've gained more experience.

By letting interns work on those projects you'll keep them interested in what they're doing. It will allow you to find strong developers who could be offered permanent positions in the

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.