Monday, February 06, 2006

Vision Statement for MY ERP

The time is ripe for me to document all that I think of, so the best place where I can do this is in a blog. If you had been a frequent visitor to my posts you will know my reasons to start this blog; to create an ERP which will be way superior to the existing ones. MY ERP -- This is where my journey began and I wish to take it somewhere.

The most essential aspect of my application is that it will not require any coding changes from the Customer end. I wish to pass all the coding arguments which the Customer would normally customize to the Properties page of each object which he creates. When a Customer intends to change the logic which drives a particular page, the application will provide the Customer a user interface where he can actually make his Customizations.

The problem with all this documentation is that I’ll have to give proper examples to ensure that I’ll understand my thoughts after a while; E.g.: I want to test my emplid before I save it, the application might provide a simple Validation Check to ensure that I do not enter any special characters to the column. I being the Customer would like to add a criterion as to check whether the number added is according to my business requirements. Now the application should provide us with the option of adding the Extra Validations to the column without opening the code; that is I should be able to open the property of the column emplid and say, “Add Criterion” à Set Field Type Column to “Type” à Select “<>” à Select “Number” à Set Action to “Error”. Then for the next criteria I say the following to the application “Add Criterion” à Set Field Type Column to “Value” à Select “Greater than Equal to” (This could be a drop down box which should also allow me to type “>=”) à and provide a value in the next column as “5000” à Set Action to “Error” (This could also point to another condition or another Set of processes which the Customer wishes to perform. E.g.: The Customer would like to provide an auto-generate option to the user which will need a message box to obtain user feedback followed by a set of calculations to determine the emplid. These will be called processes and can be added just like Criteria). Now the application should add the following code to the columns code section as follows,

If emplid.type <> “Number” then
Error
End if
If emplid.value => 5000 then
Error
End if

-- I hate the system constraining the user with the requirement of learning the syntax to use applications code section.

I think I have taken the simplest situation in Customizations, but there will be more complex customer requirements which we as developers should not ignore. E.g.: The Customer is not satisfied with the Validation Check provided by the application and prefers to comment the entire logic provided by the application and add his own criteria and processes. So we should split each and every piece of code that we put on an object into functions and allow the user to deselect the functions and create the ones that he requires. There will be instances where the Customer would choose to add some criterion at a specific point in the logic provided by the application, this should be achieved by providing our logic to the Customer in the same fashion which he will be using to create the logic. That is if the application code is also structured in the property of the object, the Customer can think about inserting his logic at any specific point in delivered code.

I totally understand that there are millions of other situations which will arise and prove to be a complication to the system but with proper specifications set to build the system developers should be able to foresee all of these (I trust the developers and I’m an optimist – at least to MY ideas). The initial versions of the applications should also provide the Customer with an editor to help him code the requirements manually, just to ensure we do not get complaints about not being able to customize our applications. We should then analyze the segments where the Customer has chosen manual code customizations and improve our product.
Although I work as a Consultant currently, I strongly believe that developers responsible for building the applications should leave no room for the Consultants to form the middle layer between the application and the Customer, even if it leaves me without a job.

Before I end this post I want to say something to the people who have read this:
If you think that this post is just a dream then you are a pessimist (According to me).
If you think it to be a Vision, I tag you as an optimist.

I belong to the pessimist sector when it comes to Oracle’s DREAM (not VISION as I’m not an optimist in this case) of building the Fusion (Coincidence “Frankenstein” also starts with “F”) with the best pieces (“Parts” also starts with “P”) from PeopleSoft, Siebel and Oracle.

2 comments:

PS-GUY said...

The important point here is that I've tagged you as a pessimist in my post ;). Now to answer your question of whether implementing drop-down boxes to code would provide the user with all the capabilities which he deserves. The answer is absolutely, if he is cranky enough he would have looked at one of the most important features mentioned in the post, the ability to link a particular process to another (if this isn't recursion, then I must be poor in coding lingo!).

Moving on, who told you that established players don't experiment. They do experiment and if a particular feature is not very successful then they depricate it in their later releases (I promise you that I'll give you an example shortly!).

PS-GUY said...

vegchicken (i like tat tag!),

Thanks for your comments.

I am disappointed at myself for not posting much these days.... hopefully things would change in a few months :( I know thats bad for me.... but a short moment of lull should get me more focussed.