I’ve had an amazing time, learned lots of new stuff, acquired various useful skills, built something useful for the school and it was all great fun. In my book, that’s a great way to spend a summer!
My vacation project involved designing a database and building a Web-based system which would help to collect information about the School's syllabus and then visualise it for overview and analysis of dependencies between course unit contents.
It was aimed at improving the way course units cooperate with each other. As a student, I’ve witnessed the problem myself numerous times, when the lecturer assumes that we should know something, but in reality we’ve never heard of it. Or vice versa - we are explained the same (usually fundamental) topic multiple times. The tool I’ve built should allow lecturers to easily see what’s taught where and whether they can assume some knowledge and don’t spend time explaining it again. I think it’s an incredibly useful application for keeping the School’s syllabus broad and extensive.
It’s my second time working at the School as a vacation student, and both times I’ve had an amazing experience. I’ve learned quite a few things this time as well. It’s been a while since I’ve done any significant amount of UI-rich web programming, and things have changed significantly since then. I am very happy that I’ve had a chance to acquire those skills back and do something useful at the same time. I’ve also haven’t had a chance to do database design in a long time, and that’s something I had to do a lot within this project. Storing data in an efficient, structured and extensible way is quite a task.
It’s also been one of those times when I’ve had to work in a really 'Agile' manner. Neither me nor my project manager, Steve Pettifer, knew exactly how the things should look in the end. Consequently we’ve had to try things out and stick with what looks and feels better. I never assumed that something will stay as it is and always allowed for some flexibility. It is quite challenging sometimes, but I think that’s how most of real-world projects work. The customer rarely knows what he wants exactly, and if even if he does, it’s not guaranteed that he won’t change his mind later. So those skills are crucial in software development.
Overall I’ve had an amazing time, learned lots of new information, acquired various useful skills and techniques, built something useful for the school and it was all great fun. In my book, that’s a great way to spend a summer!