Talking with other PhDs, there seems to be a universal paradox with doing thesis work. More often than not, our small projects become big projects. This means that the big projects need documentation, maintainability, usability, and all those other -ities for significant pieces of software. However, for small projects we just want to hack them up and get it out the door so we can move on to something important. Those two do not mix, so the question is how to balance and transition between them.
My thoughts on this now (in retrospect) is that every small project should be treated like a big project unless there are significant time constraints or it is a perl/python script. Anything else should be expected to be used/extended by someone, possibly not yourself. If the project stays small, the documentation will be insignificant. Plus, if you are in academics you are going to write a paper about it anyway.