All the recent hub bub about 1 week and 1 day application development, motivated me to see how quickly I could launch a website for myself. I, like many developers, struggle with building and releasing personal sites. Ask a web developer and they’re likely to tell you about a couple of sites they started and never finished. Time is always an issue, but the bigger problems are striving for perfection prior to launch and always holding out for that one “killer” feature. As time goes on, interest in the project wanes until it finally gets shelved.
The Plan
Prior to development, I set a few goals for myself:
- Launching quickly was priority number one. I set a goal of 3 days.
- Use as much existing code as possible. Even if it wasn’t a perfect fit, if it was functional, use it.
- Optimize later.
- Stop scope/feature creep at all costs.
- Stay focused. I’m easily sidetracked when working on personal projects.
Notice “building a killer website” was not one of the goals. This project was strictly a speed challenge a’la Django Dash.
The Idea
I wanted to build a site cataloging mountain bike trails complete with full GPS data. I decided not to pigeon-hole the site into just mountain biking, so a general purpose trail catalog would be my focus. I know, there’s already a couple sites like this, but I felt I could do it better.
The features I set out to have by launch:
- User account management
- Accept and parse user generated trail GPS data
- Mapping
- Comments
Execution
The first step was to search for existing code.
- Pinax (aka, Django Hot Club of France), would do the bulk of the work and also provide some great features for future development of the project
- pygpx was a good base for parsing GPX files
These snippets helped behind the scenes:
Research, coding and deployment took about 20 hours, beating my goal of 3 days.
Enter Demons Scope Creep
As usual, scope creep crept in and I felt the need to do the following work above and beyond my initial feature set:
- Gut Pinax templates of extra features not needed for initial launch
- Clean up default Pinax templates with Blueprint CSS
- Tinker with layout
- Repurpose Pinax blogs as a Trip log feature
- Add elevation maps via flot
Damn, I failed on goals 4 & 5, but I still did pretty well overall. Lots of use of existing code and total time spent is now about 40 hours.
The Result, Trailmapping.com
See for yourself. My idea is now live at Trailmapping.com.
It is far from a polished site, but for 1 week of development time, I’m very proud of the results. It is live and usable in its current state, so I consider the project a success. I held back on a lot of great features that I easily could have tinkered on for months. As expected, it was more satisfying to launch a functional site than toil for months in the development stage. I also suspect any further development will be more effective at improving the site than just creating an endless stream of “wouldn’t it be cool if” features as is typical with my personal projects.
I’ll be using the site for myself, but hopefully other people find it useful too. Let me know what you think.