I had my mid-project demo on Tuesday. Those following my blog will know that this has been at the forefront of my mind in recent weeks, and my aim was to have the core ODR platform finished in time for the demonstration.
This was somewhat ambitious, and other commitments (work, company administration, friends and family) have meant I haven’t been able to invest much of my time in the project for the past week or so. The situation is unlikely to improve anytime soon – I’m currently on a train to Manchester for a friend’s birthday, followed by a train to London for an interview. When I come home, there will be a large family reunion spanning several days, and then I’m off to Durham with my girlfriend’s family for Easter.
The deadline has not been helped by bloating requirements (the platform now needs to support document uploads and management). All of these factors meant that my platform was lacking the mediation functionality by the time of the mid-project demo. However, the demo went well and I’m expecting my marks in the next couple of days.
I hope to have completed the core platform by the middle of next week. This leaves me with roughly four weeks to work on the Maritime Collision module, which I now intend to be more of a prototype suggesting what the system is capable of, rather than a fully-functional and well-tested module. You see, not only will I be developing the module itself, but I’ll also need to start emitting events and exposing other API hooks from the underlying platform itself, so work on the platform will be far from complete even when the “core” functionality is ready.
I’ve tried to budget in a solid week for refactoring, before the beginning of the maritime collision module work. The lack of big design up-front (BDUF) and my agile approach to implementation has led to some inconsistencies in the codebase (e.g. some functions that create new rows in the database return the corresponding ORM object, others return the ID representing the object, and other return nothing at all) that I’d like to standardise. As I’ve been working in a BBD and TDD way, I have a suite of unit and regression tests that I can run to validate the full functionality of my application, so a well-thought-out refactor should not be too difficult to perform.
Finally, I hope to have a full two weeks to work on my report, and I’m aiming to finish my project and report with a week to spare, to tidy up any other loose ends. Given that the project deadline is mid-May, I’ve allocated all of the time remaining in my project, which leaves little margin for error!
It makes sense to allow time for the report, since it and the technical hand-in are worth 70% of the dissertation (and I know of many assignments where the lecturers only read the report, never running the program). So, time to get back to coding!