Normally I do websites that are fairly visually pleasing, and have a little bit of decent programming to them. A well placed e-mail form, a bit of AJAX.. nothing too spectacular. I’ve written a few C# windows mode programs that were all, well, functional. Repair a database by doing this, set an AD attribute to this if another attribute is this… etc. Generally speaking, the design is good, and the programming as good as it needs to be, all culminating in a little CMS I’m still doing that helps a group of people with very little time take over their website, and runs off one codebase for my sanity. The latest project for me is a bit different. It’s a property listing site, with all the cool bells and whistles: list your properties, search them, swap them, pay for it too (hopefully).
Everyone says programmers have youthful optimism- I like to say I have pessimistic optimism. This time however, I got ahead of myself. I bid the project too low, decided immediately I’d write it from scratch, and then got behind and have thus far refused to push back the roll-out date. Any one of the little pieces are swallowable: upload and resize photos, no problem, add a listing, no problem, register for a membership, etc etc. Then you start to see the intermixing: allow editing of the property, but only select things, and only if the person owns the property and their account is active. Then, make it reusable, make it safe, and sanitary to use: make it secure! They all compound into a code mess.
To make matters worse I started without utilizing a SVN/Versions system. This late in the game, it’s impossible to add it. The bug-tracker will get put into use after the first rollout is done now, and I expect it to be full. I’ve been recently re-reading “Dreaming in Code” and feel a bit like the Chandler developers. It’s time to put something out: it doesn’t matter how bad it is, I need a place to start improving from. It’s only been ~1.5 months, and I feel like I’ve been tossed under the bus. It doesn’t help that tonight I’m writing this at 1:00 AM because I’ve been up puking pizza hut for the last 2 hours. My throat is sore and swollen, and I have a runny nose. It’s either the worst incarnation of a cold I’ve ever had or the flu. Either way: it’s killing my timeline. Normally a sick day or two happens, in a release timeline involving daily goals and weekly releases, it’s a big problem.
This all brings me to the title: this is really the first piece of full fledged software I’ve written. I didn’t dub it as such starting, but it is. I’ve got roughly 2000 lines of PHP and HTML and CSS that need to be hewn into something pretty in the next few weeks. I need to setup a bug tracker for the inevitable post-release bugs. What gets released right away? What features come after the first release? Internet companies of the past suggest now is the time to be setting up a $$FREE$$ ‘beta’ version of the site to find the last of the bugs and push it into a stable release with all the bells and whistles. Unfortunately the owner of the site doesn’t have that in mind, financially. Now that I realize where this project has taken me, and what this means for me and the company, I want to make good, nay, I want to make it excellent. I want to be able to put this out there saying “look, 2 months, and a usable piece of software…”: it needs to be a building block for making SiC fund me (and others) more completely. I always think with just a bit more time the company will really start to take off, problem is to get a bit more time out of my schedule requires making it pay for a bit of the time.