So I often enjoy exercising my programming and design skills in doing little web projects, especially ones that I can share with other folk. I made Breeze (a Magic draft simulator), a very prototypey version of Evil Geniuses (a board game my friend Nate and I designed for Todd and Tory), and various login/forum-style systems. What I have found is that I both love and hate doing this, and today I kind of analyzed why, in the course of putting finishing touches on Faceboat.

I divide web programming into three phases in my mind – initial design, substructure programming, feature programming. The first phase is really fun: imagining a sweet website in my head never really goes wrong, and it’s easy! The third phase is also fun: the beauty of the web is it’s super rapid to see your changes, and as I add features, I can see and interact with them immediately in a wonderful way. But the second phase – BLECH. I hate hate hate programming a database and the object model that lies on top of it, and in the end, that makes me kind of a lazy/bad programmer.

However, today, I did the first phase of Faceboat design and then remembered I had already completed the second phase, two years ago, and the code/data is all still sitting on my web server. Huzzah! So I got to do just the fun parts, and it was awesome. All web development should be like this!

(Honestly, maybe there’s some universal “here’s all of the substructure you need and it automatically works” system I have just never found, but in my experience, the tweakiness involved in doing phase 2 work is so aggravating!)