Monday, March 7, 2011

Business requirements are discretionary

Business requirements are not set in stone. We know that they can change during a project but quite often they are a personal preference of stakeholders. You would expect that they are logically derived from the business processes. But often the definition of the business processes allow for much freedom while there is much debate about what the right process for the organisation is.

Every employee in every organization will have complained at some stage of their career about inefficiencies in their organisation and asked themselves why "they" could not have designed this better. If you take over a job from someone else, you are bound to do things in a different way than your predecessor. And the same thing applies to managers. When a new manager comes in, he will guaranteed change the operations to improve it.

Business processes change as regular as the weather, wether it be small tweaks or major overhauls of the business.

You hope that changes of the business processes are to be improvements. In essence you still have the same business objectives but you just want to do things better. Every organisation will constantly go through these changes. However, sometimes you wonder whether these are actually improvements and that it is just a change for change sake. Sometimes when there are disagreements, you feel that either way could be right and that it does not really matter.

For example, our organisation has chosen not to use purchase orders. We have some other mechanisms in place to cater for the authorisation of purchases. The consequence is that we have an invoice processing system where we approve the payments of invoices. There are however a few strong proponents for a purchase order system and with such a system we probably would not have needed the invoice processing system. Without going into the details, there are good arguments for either approach. But given that you have made choices in the past, it is difficult to change later.

In the past I was involved in the development of the various incarnations of the website of our consultancy company. Of course there were as many opinions about the design, information architecture and content as there were people in our organization. The ones that were directly involved with the building and writing of the texts got their way most of the time.

When we implemented SharePoint for our document management, there were also as many opinions of how this should be done as there were people involved in the project. Specifically because we as IT people would also be using the system, we considered ourselves subject matter experts and tried to drive the requirements and design as much as possible. We probably should have tried harder.

These examples just indicate that there is not one set of right business requirements and that they often easily can be interchanged. They can easily be changed and they do. And that is why I prefer to look at the the data first before I build new systems.

I was educated to do an information analysis as one of the first tasks to come to a new system.

This does not mean that processes are ignored but it gives a different perspective. Actually, modeling the processes would be the second step before going into requirements. These first two steps are what I call the real business analysis (see this post) and also serve the purpose of looking for ways to improve the business. Doing an information analysis and business process analysis upfront, gives better insight in the data involved and how and when it is used. It however implies that this phase must be driven by the business owner.

These days we usually start with business requirements which will result in a system design and a data model. It means that a overview of the data only comes much later to light in the process of custom development. However before you would come to that, you will have made decisions about off-the-shelf solutions versus custom development. The problem is that business owners usually come with an idea of a solution and you just need to write down the requirements. The consequence is that the broader context is ignored.

The data structures in an organisation are much more stable over time than the processes and the required application functionality. When you can come to a clear definition of the required information and preferably through a single access layer, it is easier to build varying application functionality on top of this.

If you drive your application architectures from individual requirements, you will have a higher risk that this will lead to more fragmented data structures which will mean that it is more complex and expensive to change the requirements later. For example you will be more inclined to come to a series of standalone off-the-shelf applications where there is no data flow between those applications. At first sight it might seem a cost efficient solution but when the requirements change, you might have to build costly integration software or you might have to redo some of the work. And you will probably run into cases that the actual data cannot be linked between the systems.

And then I like to come back to what I mentioned before. You will define your processes depending on the current situation and depending on systems already in place. 

That is one of the challenges of IT. When we implement business systems, we have direct influence over the business processes and the business requirements. If you do it right, you can participate in improvement of the business and that can go all the way to assisting with the business strategy. But it is also a cause of conflict and confusion about the role of IT within an organisation.

No comments:

Post a Comment

You are welcome to leave any response or thoughts that you have as feedback.