Refactoring the Waterfall Site

As I discussed in a recent post about my 2013 plans, I've started working on my waterfall site again. This was my first large-scale side project, outdating my blog by a few months and including over a hundred waterfalls and 50-odd journal entries. The website included driving directions, photos, and coordinates of each location. All of this data and functionality combined with my beginner knowledge of PHP (I did build it four years ago) created a mishmash of code that better resembles a leaning Jenga tower than a working codebase. I created a site that was difficult to update content and hellish to add features onto.

It's not that I didn't want to update the site. I've still been exploring the Keweenaw, capturing better photos and finding new waterfalls since the spring of 2009. Many of my other sites have been upgraded, pushing them onto a centralized custom OOP framework and, over the last few months, implementing responsive/adaptive practices. The scope of work involved in refactoring the waterfalls site just scared me away. Three separate attempts were made over the years and three separate emerging structures were thrown away.

Well, now I'm several months into working on a new iteration of the waterfall site. I've poured over three hundred hours into the project so far, doing everything from trying out some different designs (haven't found a look that I'm completely sold on yet) to writing content. And there's a lot of content. There will be close to 120 journal entries, complete with photos and maps, with waterfall, county, and river descriptions on top of that. I'm not even half way done right now. It's time to haul out the tiered approach.

Phase 0: Right Now

My initial plan, like any over-ambitious approach was to just get 'er done. Write up the content, finish the site, and launch. If I stick to that not only will I blow through any self-imposed deadline but I'll probably just stall out (again). So, I stopped. Everything is prioritized now, from full site features down to individual sections of content. Its no longer an all-or-nothing game, it is a tiered approach. It won't be finished when it launches.

Phase 1: Decide on a Creative Direction

While I'm well aware of the benefits of wireframing and prototyping I have a hard time working without a clear visualization of the final project. Knowing what data will fit where and being able to physically see hours of data entry and content writing flowing in perfectly with a great design… That's what will keep me working through the night and put in the long hours. I'm pretty close in this area and am planning on putting a freeze on the design until post-launch soon.

Phase 2: Get All Pages Rendering

This one is an important one. It's easy to go down the rabbit hole on a particular feature, on a particular page, and lose focus on the other eight that haven't been touched yet. When building something from scratch it's better to flit around a bit, creating the rough shape first, and then zero in and perfect individually. Once I have all of the navigation built out and spilling out some form of data in a somewhat-respectable format I'll come back to fiddle around.

Phase 3: Perfect What is Done

After the site is effectively built with content and photos and all sorts of cool stuff it's time to really tweak what's done. No new content, no new journal entries, no new features besides the ones that are already built out. Just lots of editing and little changes until what is done is ready for launch. Yes, this means that some desired features will not be done before launch.

Phase 4: Continue to Add Features and Content

After the site is live I will probably keep a few admin sections open so I can add more content, whether that's geodata, photos, waterfalls, or more journal entries. I feel kinda bad knowing that all of the entries won't be complete by launch, seeing as some of them are over four years old, or that one of the features that I'm particularly looking forward to (recommended adventures) won't be ready, but if I dwell on those the site may not launch until next year.

Most of these steps are fairly similar to my usual process - plan, design, structure, perfect, launch - but the waterfall site is fairly massive. By the time everything's said and done it'll probably end up over a thousand hours worth of work, a substantial investment for someone who has a full time job (and a kid) to balance. None of this takes into picture how much time and resources were involved in actually finding these spots, too. It's amazing (and totally worth it!) when you sit back and look at how much time and resources a hobby can cost.