When I started programming The Christmas Trail, it was a very fluid process. I thought about some cool game mechanics and implemented them, not thinking too much about how everything would work together in the end. I’ve found this to be a great approach when prototyping or exploring new mechanics. However, I got to a point where every time I went to implement a new feature or mechanic I was forced to do a lot of refactoring and bug fixing. I also came up with some better ideas to implement core functionality that I has sloppily implemented in the beginning. It was at this point that I should have put my hands up, stopped coding, and started planning. I didn’t do that.