I failed to get the rendering algorithm working yesterday. Again, it is working for some cases but not for others. I find it too hard to keep all the cases in my head at the same time. Even though I said that I would do a great up-front design I didn’t. I sat down with a pen and paper and convinced myself that my current algorithm works. Which was a pretty stupid thing to do. Now I’m in a quandry: Do I now sit down with a pen and paper and do the design I was supposed to do yesterday, or do I refactor the codebase….what am I saying….
Obviously the codebase needs refactoring. The question is do I design the algorithm (it must be designed) with respect to the current bad architecture or do I consider refactoring in the design?
I think I’ll sit down and design the algorithm considering refactoring. I’ll then spike the design. Then I’ll make the decision as to either (a) refactor the codebase or (b) shoehorn the spiked design into the current product.