Advising students is probably a bit like raising children. Though I would have no idea, because I don’t have any children yet. But the point is, they all need your attention, regular involvement, respect and love. I do not know if I am a good advisor to my students. I probably do some things right and many things wrong. We are all human, and you get along better with some people than with others. But here are a few things that, over my (short) 6-year career, seemed like important building blocks of successful advising. None of this will probably be surprising for experienced advisors, but perhaps new assistant professors could find a few bits and pieces useful.
Motivation: freedom, autonomy and authority
Graduate students are highly talented and motivated individuals who committed to sacrificing 5-6 years of their lives living in poverty and working extremely long hours on risky problems with uncertain outcome for the sake of making a giant leap in personal development and having career choices that give the freedom to work on what you want, guarantee that you will never be bored, while earning a decent income. These people, therefore, should be motivated differently than, for instance, assembly-line workers. I have absolutely nothing against assembly line workers, but the nature of work done by an apprentice scientist is so different from the mundane routine on the assembly line, that it requires a different style of motivation.
The key building blocks for motivating anyone with high aspirations are, in my mind, freedom, autonomy and authority. Students should be encouraged to work on something that really excites them, that makes their eyes light up. After all, the end goal is eventually for them to be driving their own research completely independently from you. So they better have their heart in it. You can’t treat students like replaceable “knobs” in your research machine. You can’t force them to work on a problem they hate, just because you got a grant in that area. I’ve often let go of interesting research directions, because I could not find the right student to work on it. And when I did try to push somebody to work on something that wasn’t their cup of tea, this never worked.
The problem is, students, when they just come in, often don’t know what they want to work on. So you have to let them dab on a few projects, visit a few conferences and then you wait for that moment when you see a spark in their eyes, the “a-ha” moment. Then you know you found the right project for them. For instance, when I was a grad student I really wanted to work on anything that involved kernel hacking. Didn’t really matter what it was as long as kernel hacking was required. Go figure.
By letting my students to work on what they want and make their own decisions I ended up working on things that I never thought I would or could, like programming languages. At the same time this approach did not create chaos and randomness in my research program: somehow most of the projects are still nicely arranged around the theme of resource management on parallel systems.
Students have to have the big picture of what they are working on. You can’t just tell them to work on little pieces of the project, unless this is the very early stage where they (and you) are still trying to figure out where their interests lie. They have to make their own choices and decisions: hence autonomy and authority. Quite often, they will come up with better ideas than your own as a result. Sometimes, they will change the direction of the project. But in the end this is usually always better than micromanagement.
You have to tell a student: “This is the part you are responsible for. So go learn all about it, make the technical decisions, consider pros and cons and bring things back for discussion.” Then they feel that they are respected and trusted, and they will surprise you by doing much more than you thought they could and it will be a lot more fun for them.
I have seen some advisers motivating their students by telling them something like: “You must work on problem X, because I am paying you to work N hours per week on this problem”. This is beyond ridiculous. We are not paying these people a fraction of what they are worth, and money is not the way to motivate anyone in whom we want to inspire creativity and passion.
Creating functional teams:
A team can accomplish more than a single individual. Especially now that computer science is getting rather mature and especially in the field of systems, which requires lots of implementation heavy-lifting. However, this statement should be corrected: A good team can accomplish more than an individual. Bad teams are disastrous and demoralizing. So as an advisor, the trick is to ensure that your students work in highly functional teams. I don’t claim to know how to do this right, I am still learning, but a few things emerged as basic rules:
- Avoid personality clashes. Some people just can’t get along. Maybe some advisors are able to fix that, but I am not that good. So I just don’t put these people on the same team. Period. Even if they have perfectly complementary skills and could do wonders working together in theory, things won’t work if they plainly hate each other.
- Avoid authority collisions. Suppose you have two senior graduate students who are both trying to establish themselves as a leader and who both need a PhD thesis topic. Most likely, it’s a bad idea to put them on the same project, unless the project has enough room for two PhD theses. In life, as in distributed systems, it’s always good to know who the leader is. Groups where everyone is clear on the leadership hierarchy usually function very well. You have to be careful, though, because group dynamics constantly change. A “green” PhD student will begin turning into a mature leader in no time, and then you might have to revise group composition.
Help them where they need it most:
There are things that graduate students can do perfectly fine on their own, like coding, debugging, studying related work and other technical things. But then, there are aspects of research, where your help as an advisor is very important. Students usually don’t have as much of a “hunch” for distinguishing a more promising research direction from a less promising one. They usually don’t know the “recipe” for structuring the research paper, so it pushes the right buttons of that conference program committee. They don’t have as many connections as you do, when it comes to job search. So put your heart into helping students where they really need help and stay away from meddling in things that they manage perfectly fine on their own.
Make their life easier:
The life of a grad student is hard enough. They earn very little and work very long hours, often alone, on problems that often lead to a dead-end. As an adviser, I see as my primary job to teach my students how to get out of those dead-end situations and to give them hope when things seem dire. In addition, there are so many little things that the adviser can do that will be a huge help for a grad student. If a student is dealing with an administrative nightmare, you can often solve the problem with one email or phone call. If they are struggling financially and are doing a fantastic work, reward them with a bonus. Send them to conferences, especially in good locations. Put extra time in writing that recommendation letter. Make a phone call about that internship. A little goes a long way.