JeanCarl's Adventures

Incremental development

December 22, 2009 |

I recently created a new website and I was in a rush to get the website up and running.  I was forced to choose specific features that were absolutely critical in the first version.  There wasn’t enough time to add bells and whistles, just the basics.

Instead of making it database-driven behind the scenes, I took the easy way out.  All the data was in PHP arrays.  It was messy, but it worked.  I got the site up and running very fast (processing the content took more time than implementing the site).

Once the initial version was up and being used, I was able to determine the next set of features that would be useful.  Sharing the photos on social networks meant more traffic and virility.  A third-party tool make quick work of that.

Later I added the names that went with each photo.  It came time to change the backend to use a database so I could manage things a little more efficiently.  Switching the data source wasn’t all that difficult as I was keeping the same basic data but adding more to it.

Overall, incrementally adding new bits was a lot easier given each was small and built on top of (versus redoing) existing features.

What’s interesting is that I don’t feel I wasted extra time with this process.  I didn’t over design anything.  I got the website out quickly and realized what worked.  Using the system along the way allowed real usage vs anticipated usage to guide the design of future parts.  Perhaps that is why I can say I didn’t throw anything out that took a large percentage of the development.

As a developer, it is way too easy to see what something could be a long time from now (and become overwhelmed at what’s left to do).  If the goal is to get it done now, looking at what you have is the better vision.