Geeks With Blogs
IDynamic being dynamic in an ever changing world

The purpose of this blog posting is to hopefully identify my own pitfalls as well as help others out in avoiding pitfalls that I encountered on my current large project.

I recently (8 months ago) started my own business with a partner. My partner has vast knowledge of the marketplace (the domain expert), and I have vast knowledge (or so I would like to believe), of the technologies needed to create our business model in relation to the Technology point of view.

Let's say for the sake of argument that our website that drives the business is ebay-like. Users post items for sale, people come and purchase them, upon purchasing we charge the seller a %5 commission and a small listing fee, usually around $1.50.

Now, I started developing this website using ASP.NET 2.0, Membership/Role Providers, C# as the language used. My first error was choosing the Membership/Role Providers. It was my first attempt at using these tools in a large website, I struggled with them for about a month trying to get them to work correctly. In the end, I removed these features and just wrote my own registration/role providers within the app. This proved to be much easier than wrestling with Microsoft's Role Providers. I am in no way saying that Microsoft's Providers are not good, they just did not do what I wanted them to do and weren't flexible enough to accomplish what I needed them to do.

Second, myself being very logical-minded, and my business partner being very abstract-minded can be a very difficult comboination, especially when the abstract person is trying to convey the business requirements of the application. I feel like I didn't spend enough time in the planning stage of this application (even though I was planning for about 3 weeks). Looking back, I should have spent much more time in this space, perhaps 2-3 months bouncing UI mocks off of my domain expert and inspecting much more how my domain would be constructed. I found after starting to design the domain that I left many objects out, missing details or just plain wrong. I blame the short planning stage on this error.

Third, when I first began this project I had little knowledge of Agile/XP programming methodologies, and didn't adopt them as I felt I wouldn't program the domain correctly. In peticular, I didn't use any TDD which has hurt me considerably. A direct result is now as I am making further changes to the domain model, I am breaking other components within the application, which in turn is extending the development much longer than first thought. I really should have put the domain model through a number of refactors and now the code stench is almost unbearable. Specifically in the image manipulation portion and then item management portion. Along with the code stench there is a couple of interfaces that are not even utilized, which adds to the stench.

Now I am to the point of what I feel like a crossroad. The development is about 90% done and I am now in the beta-testing/debugging stage and am proceeding forward ever so slowly. At this point would it be better to re-work the entire domain model, possibly adding several more months onto the development, or proceed forward with a buggy, smelly domain model and re-design immeaditely upon launching the site. To give you an idea of how far behind the deadline we really are, we were supposed to launch in june; and we are quickly approaching december.

The main reason I posted this was to convey the thoughts that are repeating over and over everytime I delve into the stinky heap of code that I have created. More than anything now, I am constantly asking myself what would be easier at this point, continue to the end, or go back to the beginning with the new knowledge I have obtained in the last year and try to re-work it much better. I feel strongly that I must continue to the end and launch something as my business partner is quite agitated as well as myself for taking so long to develop this mess.

Like I said, Hindsight is 20/20. I hope this post helps someone in the future. Cheers!

Posted on Sunday, November 12, 2006 4:03 PM | Back to top

Comments on this post: Hindsight is 20/20

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Sean Chambers | Powered by: