The Finished Production

After so many weeks of work, I'd finally created a working (relatively) bug-free prototype. We presented our ideas to the lecturer and our tutors about a week or two before the final exhibition. About a week before that day I had an epiphony. I completely changed the focus of the assignment, and it was the smartest thing I could ever have done. I focussed entirely on "customisation". I coded the function intepreter, and brought a new level of complexity to the project which made it much more interesting and appealing. All in all I was extremely happy with what I'd accomplished over the semester. I'm sure others could have done more, and I'm sure I could have done more had I not had those GUI problems at the start, but it is all a learning process.

Thoughts on the Process

What have I learned ?

I've learned many things. I've learned to always back up your work incase your laptop dies and you lose a weeks worth of work. I've learned to never get bogged down in small details, if something doesn't work after a day, drop it and move on to something else - you can always come back to it. I've learned that programming communities ( the smaller the better ) always are there to help. I've learned that google is an invaluable tool for programmers and designers. The list goes on...

I approached this project the same way I approach all of my programming assignments. I sat down and thought of the entire 'scope' of the project, I broke that into smaller manageable parts. I work on these parts in isolation, and then I bring all the parts together into a whole. This system has proved invaluable for all of my semesters at uni. If ( for some reason ) one part doesn't get finished before the due date, it is entirely possible to hustle up a working prototype with the parts of the system that do work. I also code iteratively. There were over 5 audio analysis experimentation files, 10 graphical experimentation files, and for the finished product, there are 78 versions - Each one a slight improvement on the previous. Having all these versions means that if I do something silly, or something breaks - I can easially look back on a previous version to see what went wrong, and how I can fix it or make it like it was.

Improvements

There will always be improvements to make on a project like aAVis, especially as it is currently - in prototype form. The coding is rough and messy, and non-optomised, improving on this could grant speed increases as well as make the code a little easier to read. Many of the functions in the main code could be turned into separate classes to free up clutter and promote object orientated programming techniques. More visual elements could be added, greater levels of customisation allowed. The Mathematical function parser could be improved to take more complex statements - the list goes on. Essentially it is a constantly growing "beast" of a project. As to improvements in my development and design process - I believe the systems I used worked extremely effectively, they are tried and true methods to developing a prototype project in a single semester - and I personally, am quite pleased with them and their results.