For several years I have developed even business applications for small, medium and large organizations. Actually, I should have learned a lot about what customers need. But like most software developers I am always surprised about endless changes during the project. You start a new software project but when you are approaching the end your customers have new ideas. Why is that?
Customers change their requirements – and you must respond – otherwise your software will never be used. But why customers change their requirements? I don’t think that they do not know what they need. There are their customers who changes the business model. And those customers change their requirements again because things change in their environment – that’s just the way things go.
And that is why we implement configuration layers. We know that our customers will change their requirements. And therefore we try to develop software so that we have the opportunity to respond to changes. In almost all areas of modern software architecture we find numerous frameworks and approaches to meet the constantly changing conditions. But when we talk about business applications there are a number of functions which are similar – regardless of the changing requirements.
- Form entries must be stored into a database
- Users must be informed when data is stored or has changed
- Data must be categorized depending of a business case
- Changes need to be logged
- and business processes must be monitored.
These are exactly the requirements which are addressed to so called Business Process Management Software – BPM. The idea behind a BPM or workflow solution is to modify the behavior of a business application without the need to re-implement the entire software. The behavior is usually described by a model so the system kept configurable. But not every form of configuration makes software always better.
A software system can become sluggish and unnecessarily complex if every layer has its own configuration. You should keep as many features configurable as necessary. But you should implement as little as possible to keep you software simple. It is a balancing act between flexibility of software and efficient software development.
Not every BPM solution meets the requirements for each type of business application. Just as little as any web framework meets the requirements for each Web application. While working on our open source project Imixs Workflow we try to find this kind of balance. We are, after all software developers!
We need a way to develop cool software and we want to work with new frameworks. But we dont whant to live in a cage of frameworks based on ‘political’ decisions.
The Imxis Workflow project tries to give you the chance to react on changing busienss requirements. But it’s still up to you to build your application. So for your next business software project – maybe you take a look at the Imixs Workflow project?
Imixs Workflow …the open source workflow technology for business applications