Monday, September 26, 2005

From Information Based to Process Based Systems. Current business applications are Information based systems. The information based Systems software is all about manipulation of data or information. I.e. it is algorithmic in nature. Increasingly busineses are looking to software that improve response times of both routine customer interactions and emerging market trends. But to adapt software based on information based systems are difficult, as the software development cycle is lengthy.

To achieve the business objectives of improved response times, businesses are looking for systems that are agile. The Process management systems are more agile and allows businesses to differentiate from competitors. Unlike the Information based systems were the focus is record keeping, the focus of process based systems are interactions. This focus on Interactions make Process Management Systems more agile. PI calculus allows creation of systems by modelling communication between multiple agents.

So how can this be done? One way of creating process based system is as follows. An active entity (either customer, employee, vendor, etc) are represented as agents that have actions. The actions (a.k.a business events) represent the capability of each of these entities. Coordinating Agents (Sales order, pick ticket, delivery order, etc) can also be created with actions to say when each action is fired. Firing actions in a specific sequence is the business rule (achieved by coordinating agent). These coordinating agents along with the agents can be brought together to create a business process. The business events, that need to be recorded, can be recorded when these events are triggered.

Process management systems are more flexible and real time as the whole information system is based on operation on business events. Software based on PI calculus is a good way to represent process management systems.

Saturday, September 24, 2005

Software: The market is young yet! This is a very well written article putting to rest some of the defeatist mentality that exists now about the software industry. I would like to propose one solution for one of the points. The whole IT industry is a 1.2 Trillion dollar industry. Out of this 650 billion is spent on "People and Processes". Any improvement in this area would significantly improve user perception of software. Initially tools and processes were developed to improve the software development process. The approach taken was to improve the programmer productivity. The idea was to improve the programmer productivity i.e. No of Lines coded per day (KLOC / Person Day). High level languages were introduced which would translate one line of code entered into multiple assembler instructions (with the help of a compiler) to be executed on the CPU. Later design methodologies like Structured programming, Object Orientation, etc were introduced to improve the reusability. Although productivity has improved, these improvements did not add any value that was perceived by the business. The challenge before us is to improve programmer productivity while contributing to business. Is there a better way?

May be the problem has to be approached differently. All these improvements so far have been to create algorithms. I believe that the software industry is in this shape because we have to convert the business (which is a parallel world) to a sequential world which computers understand. The design, construction and validation phases which convert the business to sequential code is Software Development Life Cycle (SDLC). This SDLC process is very expensive. I think there is good potential for a software which can bridge the parallel and sequential world gap, which will significantly cut the "People and Processes" (a 650 Billion dollar industry) budget. One of the ways this can be accomplished is to base software on a different theory other than Lambda calculus on which software industry is based on. I believe that the software industry should be based on theory which supports concurrency. П Calculus, a calculi of concurrency is what business software should be based on.

Friday, September 23, 2005

Motivation IT industry is in crisis. It has received a bad rap. IT is now not considered to be delivering value. Failure rate of IT projects are very high. Software, people and Hardware utilisation is very low. This leads to self defeating thoughts. This website is all about hope. I belief that the software industry is very young. There are more fundamental changes about to happen and I think we are at a cusp of technological change. I have been in the industry for the last 18 years and got his hands dirty on CP/M. Later I moved to work on AS/400 (a wonderfully architected machine). These 18 years have been very frustrating, it was more frustrating when the i had to move a heritage implementation (note I never called it Legacy) to a spanking new ERP system. These frustrations are going to be more pronounced when these multitude of mobile phones and RFID devices come on line. The frustrations of the users with MIS department was very clear when they called us "Mis Information System" department. These frustrations had me wonder is there a better way to deliver and price software? I believe there is a better way to implement computer systems. This journal has been created to share my thoughts with the outside world. All are welcome to comment.