Home > Essays, Projects > Sometimes You Gotta Rebuild

Sometimes You Gotta Rebuild

November 27th, 2011 Leave a comment Go to comments

This is project that was a long time in coming, and in a short time in doing.

I first became acquainted with the Zowzee team back in January when I went in to pitch on their then new project, DealNation.  Frustrated with the progress and process of working with a firm in India, they wanted to know if, in addition to building DealNation, I could expand their Zowzee application (built specially as a deal-of-the-day site) to be more of a general purpose marketplace of deals: let deals run for longer than a day, enable visitors to peruse and purchase from a collection of deals, and so on.

Tempting as it would be to pick up the extra bit of work, after poking around the code I had no interest: it was buggy, carelessly architected, and loaded with code duplication (meaning if you wanted to change something, you better be sure you found and updated every instance of it, or face new bugs and inconsistencies).  I couldn’t responsibly quote prices or time frames for any non-trivial work, to me it would all be subject to pitfalls and gotchas.

I said to Paul with earnest sympathy and apology (because I know it sucks to get the kind of news I had to give) that it would need to rebuilt if I were to make any substantial changes on it (I mean, who wants to hear that 3 months after you launch?).  I scoped it out and wrote it up, and estimated a solid two weeks to do everything and add in the big new features.  “But at that point” I told him, “you’ll have a super solid foundation from which point I’ll be able to make it do whatever you want, easily and without concern of introducing obscure bugs.”

Paul was open to it (a real testament, I think, to how it was going with the firm in India) but it was not in the budget at the time, thus Zowzee would trudge along in its current state for a while longer.

This month, with me now in house as CTO of DealNation, we found gap enough in my usual duties to direct our attention back to the Zowzee redesign: our sights were now to reincarnate it as SpotlightDenver.  Paul took the initiative to mock up some fab wire frames that really gave a clear vision, hired some design help to give me some pretty pixels to work with, and we were off.

Centered around the concept of a marketplace of deals, I built an e-commerce application nearly from scratch that was perfectly tailored to the needs in just over two weeks amidst usual DealNation duties.  The end result is www.spotlightdenver.com, launched Monday, November 21th.

My team tells me that the whole thing went smoother for them than launching some of the deals on Zowzee, let alone the whole Zowzee site.  And the best part for my team is me delivering on my original promise of the rebuild: we’ve now got a super solid foundation that is easy to extend upon, and since launch I’ve been taking requests and building out new features that make everyone’s life easier and better.

The whole experience has reaffirmed for me that yes: though generally unpleasant news upfront, sometimes you gotta rebuild.  The good news is the other side can be quite gorgeous, workable, and profitable.



Next:


This is Programmer for Hire, a series of essays and explorations on the art of being a great programmer doing on-demand custom software development.

Looking to up your game as a programmer for hire? You can get one-on-one coaching from the author of this blog.
Learn more.

Looking for help and advice on how to get your programming project done? The author can help you as well.
Learn more.




  1. September 27th, 2013 at 04:48 | #1

    Can you share the technical details of that solid foundation? I am interested in the technology, best practices, patterns and the problems that it would try to solve .

    • John
      September 27th, 2013 at 07:00 | #2

      I’m afraid I can’t give you the technical details of a solid foundation in a quick riff save for to say a bunch of hand-waving platitudes about good software design: don’t repeat yourself, clean code, well-architected modules that are easy to understand and maintain in isolation of the rest of the system, and so on. It’s really the whole world of being a “good” developer, where “good” is characterized by being able to effectively and quickly build whatever is called for to serve both current and with future needs.

      For a good overview on a lot of these fundamental things I think you’ll find “The Pragmatic Programmer” a very worthy read.

      Cheers and good luck!
      John

  1. December 4th, 2011 at 17:26 | #1
  2. December 6th, 2011 at 08:44 | #2