This post has been migrated to http://www.thinkcode.se/blog/2012/10/13/all-computer-systems-are-equal
All computer systems are equal, but some systems are more equal than others. At least on a high level.
They are all subject to these actions:
- Enter data
- Apply business rules – morph the data
- Retrieve the transformed data
The business value of the system is in the data retrieved from the system. The value is created when the business rules are applied on the input. There is no business value in the input. You might express the relationship as:
Business rules (Data) = Business value
There are differences between systems. The data that is added is different. The business rules are different. The data storage is different. The business values are different.
The biggest challenge is often to understand what the customer actually wants. When that has been understood, you have to figure out a logical flow of the information and how the business rules should be applied.
The rest is technology. Technology is less important than most managers think. It doesn’t matter if you aren’t an expert on a particular tool or technology. If you need to be an expert, the solution is probably too complicated.
The enlightened, or sometimes cynical, developer has realized that all we do is shuffling text. The things entered are text; the business rules transforms the text and retrieving the business values are done by returning text transformed by the business rules.
This view also implies that if you need to focus on something else, then replace all complicated things with better abstractions. This could for example be data storage. If there isn’t any need for a database from your current perspective, replace it with a simple class that holds the values in some collection instead. There is no need for a mocking framework in many simple cases. A trivial, hardcoded class is sometimes enough. Some people will think that this is cheating. I think it is just being smart and focusing on the right thing.
The differences between systems are actually a lot smaller than what some people want to think. Stuff are entered, transformed, persisted and returned. That’s it. This view tends to provoke people a lot. But I am still waiting for somebody to show me any computer system that is radically different.
Remember Albert Einstein’s words: “Everything should be made as simple as possible, but no simpler.”
Always strive for KISS, Keep It Simple Stupid.
Thank you Johan Helmfrid and Malin Ekholm for your feedback. It is, as always, much appreciated.