I got home last week to see my heavily pregnant sister and organise some things for Lori and my wedding next year (22nd July 2006). It was great to see everyone again and I got to see the lads on Wednesday but it was a school night so there was no madness. It’s not a bank holiday here in the U.K. so I’m really busy. I’ve got to get a 1.0 of this rendering software out the door by Friday. If I don’t I’m not leaving myself time to write the rest of the course notes. The main problem is testing. I can test the classes and API using JUnit however I can’t ensure that the rendering algorithm works 100% of the time as I can’t test arbitrarily complex rendered images. I suppose this is a typical problem in computer graphics.
The thing is I thought I had the correct algorithm, but it seems that I missed one or two cases. If I could unit test it like the rest of the code I’d be able to document all these cases and automate checking that the algorithm works against them. So this is a case where the algorithm has to be designed as in Waterfall designed rather than Agile design. I have to sit down with a pen and paper and draw the flowchart/sequence diagrams etc… and stick to an up-front design.
I know I should have started with the rendering algorithm and worked my way up to the higher levels of abstraction. I was hoping that I’d be able to rewrite some of the code for V1.0 but that is unlikely now. I’m off to get some food and I’m going to drag a pen and paper with me. I’m going to write-off thinking about optimisation for this version of the algorithm. Today I will get the algorithm working. Tomorrow I will get it working fast.