Anytime algorithms and (student?) project management

Supervising student dissertation projects (e.g. of final year undergraduates and masters students) has been a great experience for me because there really are hard deadlines. For most "real world" projects you can either slip a deadline, increase resources, or slip on quality / what's delivered. So you try to juggle these options in a complex way and lose out some clarity. With student dissertations, the only resource that can be increased is the student's own time, and the deadline is hard: graduation.

What's been extremely useful to me is the AI concept of an anytime algorithm. This is very much related to iterative / agile style project management. The idea is that you try to come up with an algorithm that always produces an answer, but then the longer you let it run, the better the outcome will be. So you set that up, get it running, then start trying to stall everyone else while you wait for your AI system to get a good enough result.

This is very much how brains make decisions, and also insect colonies.  The anytime algorithm is called "quorum sensing". Basically when enough nerve cells or insects (respectively) have come to a consensus, then the whole organism or colony acts on that consensus (for insects, this is usually observed as moving the colony to a new location; for brains it's usually making a choice e.g. pushing a button because the animal being observed is probably wired up in some kind of a chair and can't do much else.) 

When there is an environmental stressor that means it's important to come to a decision faster, then the brain or colony just drops the definition of "enough" -- fewer individuals coming to the consensus triggers the action. Speed is easy, the consequence is "just" a higher error rate.

For students projects, it's probably a bad idea to have quite that smooth / continuous of an anytime algorithm. You know for a fact you have a few months at the beginning, so you can go ahead and use more conventional "waterfall" style methods of setting up the basic project, getting big or ambitious components together like a large data set or choosing a new software platform. But what I do is pick a date about a month into the final semester of the project and say "I want to see that you have enough of your project working that you can write a passing dissertation about it by this date." 

From there, from the passing project, you enter the anytime algorithm stage. Now you can work off a list of ideas to make the project better and move it into exceptional and outstanding, based on the fact you have a platform that you could always "release" / write up. You can see how good your outcomes are and make an informed decision about how much time to invest in this part of your educational experience.

At some stage typically a month later you need to enter the same process with the dissertation write up. It's fine to start writing up earlier of course! Keeping track of literature and development notes by writing drafts of dissertation chapters both helps with the keeping track part and saves you some (but maybe not as much as you'd think) time later. But about two months before the dissertation is due, it's important to put a few weeks into writing a passing dissertation, or preferably better than passing. The dissertation is what actually gets marked, so aim high here. 

But once you've gotten the dissertation to the point where you could submit it now, you can again enter into a second, parallel, anytime algorithm. What's likely to get you the highest mark, and / or get you some other goal. Maybe you really just want to know the outcome of your experiments because your curious, or maybe you will use these outcomes for a future business idea or for a writing an academic paper so you can apply for research funding or a scholarship or just help contribute to human knowledge. 

At any rate, ideally the last few weeks you are deciding whether to add to your project your your dissertation and iterating between these, and also your supervisor is reading a draft (I personally only read at most one draft, and I read students' drafts in the order I receive them) and will hopefully give you feedback too.

If you can't guess, I wrote this for this year's dissertation students, because their research is already too interesting and I ran out of time to explain it in our weekly meeting. But I hope it helped you too even if you aren't one of my students this year.

My final lot of Bath PhD students, remind me to replace this with a screen shot of actual Hertie School Masters students soon!