During the last five years of my career, I have been generous about taking in students for internships and small R&D projects as well as to enable employees to write thesis projects on matters related to our work. I encourage every company out there to do try this out, especially if you
Provide lunch and a desk to work at (for students, free lunch is da bomb)
Spend more than 5 minutes thinking about the topic for the project. Write a short spec if you can. This will help control the scope of the project, and also help you as the project owner to get as much out of effort of the students as possible
Make sure that you are available for the students and have time
for an introduction to the project
to introduce the domain (remember that you probably have spent years learning about it, they have not)
to be around during the project period for questions
to revisit the domain introduction (no one can learn years of domain knowledge with half an hours of introduction)
acknowledge that some groups and group members excel and some does not. Be happy if you get some stars aboard, don’t be angry if they are not
What are the benefits of doing this? I have experienced at least four benefits:
a basis for recruitment
the possibility to experiment and do research
get some young energy into the dusty corridors, and
a great way to brand your company.
Student projects are a great way to try out young, possibly bright people in your corporate environment. During the projects period, you get the chance to spot talented people and offer them a job afterwards. This could either be a part time student job, an internship (which I personally believe should be with a decent salary), or a full time position, if the project is a thesis.
A student project can also be used for proof of concept (PoC) experiments and/or research. PoCs can sometimes be difficult to fund in an environment, where development resources are scarce. Here a student project with 2-4 people working 15-30 hours a week can sometimes get you quite far. And it’s much more easy to get funding for the lunch for the projects members than a 500+ hour PoC by the dev team. Furthermore, students are likely to attack the problem with tools and theories that your permanent staff doesn’t know about and/or master. In this case you get the added bonus of technology transfer from the university to your company.
Students also bring in energy to the company. Conversations around the lunch tables are likely to disrupted by unusual topics. Friday bar events might lighten up a bit (or a lot). You get to experience the style of your employees to come. Enjoy it.
Finally, word spreads if you take in students and treat them fairly. And friends of friends will become potential employees and customers in the future.
Here are some examples of groups and projects, that I have hosted over the years, and what I learned by having them:
Five graduate computer science students spent three months full time doing a project for us. They investigated different ways of auto generating SSIS packages from metadata. Through their experiments, I learned that the SSIS API was hard to work with, that the ezAPI was not adequate for the job and that they could use JSON to store the meta-model for the mapping (I didn’t know about JSON back then.) A few months later we also enrolled one of them into our internship program.
Four BI diploma students did a final project, where they utilized Effektor (our product for data warehouse generation) to create a data warehouse with social media data. I learned about the APIs for Twitter and Facebook, and that it was not easy (or possible) to get all the relevant data out of these social network services. I also got the chance to test whether Effektor was easy to use for outsiders simply by tossing them an installer and a manual and watch the result (they passed the test!). After the project, we employed one of the students in a full time position.
Two IT students did a real two-month part time research project with us, trying deduce rules for possible regression models from data warehouse star schema models, and then auto generate R-code from metadata models of star schemas. Their efforts failed, but hey that’s in the nature of research. Working with them, I learned a lot of the tacit knowledge, we in our company have about data warehousing concepts and dimensional modelling.
Two graduate computer science students did a three-month full time project for us. They build a tool, which could extract the catalogue of a source database, save it in an intermediate representation and later (disconnected from the source database) from that representation generate stage-copy tables, to be used in a data warehouse. The two students did an amazing job, we enrolled them in our internship program, and hired them after they finished their theses (which they also wrote with a case from our company). From these two guys, I learned (among other things) how to use the IEEE 1471 software architecture standard as a way to describe a solution.
Apart from these groups and projects, we’ve had three master of science theses, a bach. IT thesis, a Master in Software Construction thesis and a couple of other groups coming through. But that’s another story. This story ends here. If you read all the way through to here, I also hope you take up the challenge, and get yourself a couple of student projects in your company. It totally worth it.
Comments