Develop a CRM-app prototype in one (yes ONE) week

After developing several base implementations of a CRM package I have decided to re implement the full app from top to bottom.
So what is the big deal about it ?


I have only a week left to develop a fully functional prototype.

Why ?

I am currently developing a CRM framework for one of my customers (private banking).
While the current framework is working pretty decent, I am very unhappy with the current implementation (fifth already).
Every developer has experienced at least once that building an app from the ground up can be pretty cumbersome, since adding functionalities changes/extends the framework gradually, and some adaptations are pretty ugly to implement in your framework.

Why do you blog about it, and why would I bother ?

For me : some constructive criticism might give me the extra boost I might need.
For you  : you might see me totally miss my deadline, and mock with me.

How will you be able to do this ?

The whole idea around this short time frame is based around the following aspects :
  • Since we have documented all company terminology/procedures/assets etc in a wiki, I will not need to contact my customer for further info.
  • Developing several extensive prototypes (5) gives you a main idea how to do it.
  • I need a really flexible framework that I can sell to other clients as well, so adaptation for other customers will be easy.
  • I work better under pressure :p .
  • Since the initial scope is quite small, technical difficulties are rather obsolete. The big challenge will be in the generalizations etc...

What is the scope ?

Being able to manage contact(group)s/resources/products/activities/campaigns, using security policies etc..
Email/reporting/integration will be considered later....

What is the target platform ?

SQL Server & ASP.Net 2.0 / C# using Atlas

3.2.1 Go !!!!

I have already been working on this for quite a while, but decided to let go the current implementation.
The basic idea is to start from nothing.

I have had my own "Eureka" moment while driving to one of my customers.
It is actually based upon the act_as_...-modules from RubyOnRails.

The whole idea is using some kind of loosely coupled objects & tables to extend the base functionality from the core objects.
Some possible implementations :
  • ActAsCommentable : by invoking this module the users will be able to add comments to the base object
  • ActAsTaggable : this module will make a base-object taggable. Hierarchies should be possible in a vocabulary
  • ActAsSecured : will (dis)allow CRUD operations
  • ActAsDefaultForm : will create a basic browsable/editable table using some kind of template.
  • ActAsList : will modify a certain field to be represented by a field from another table.
  • ActAsLoggable : self-explanatory
  • ...
This list will probably extend over time... Some people might recognize this stuff as AOP ...

Well, that should be it for the first post. Now I'm off to home, and later this evening I will start with the implementation.

Wish me Luck !!!!