System development is crude. Everything is connected to everything and the approach the software industry applies to ensure that a simple change does not cause a serious problem somewhere else is testing.
Testing is good – but it is worrying that there seems to be no drive to get quality and determinism into the information systems construction process. We let things happen and then trust that the tests is a stamp of quality.
When tests fail we are happy to fix that particular issue and be on our merry way. To ensure quality we invest in more and more tests. It is almost like the sum of all tests is the definition on what the system should NOT do. Would it not be cheaper and better to focus on what the system SHOULD do?
When it comes to the real definition of an information system I propose that we take a new perspective on what an information system really is. It is easy to fall into the trap to think that determinism in software is impossible – that it is to complex. Introducing a new sectioning of the information system will help us to see possibilities for today and for the future.
Areas in all Information systems
Definition-space ; the Gist of your information system – what information it holds – what rules the information must adhere to, how information is allowed to change – how information is grouped into use-cases – how users move between use-cases
Technology-space; the modernity used to implement the system described in your definition-space, what frameworks, what technology stacks, what design paradigms you use
Looks-space; The final touch, the fresh and cool, the latest or at least the best fashion that appeals to the intended audience/user-base.
I will argue below that a company will benefit from progressing through the 3 areas separately rather than mix them all up in a bucket and try to maintain the resulting stew as one unit.
Why is it a problem to mix them up in a bucket?
Reason #1: Lifecycle / expected lifetime.
Definition-space is preferably evolved continuously and steadily as the area of interest of the information system is understood better and as greater precision is needed.
Technology-space is torn out and thrown away every 3 to 5 years. This has been the case the last 40 years with no sign of slowing down
Looks-space is made to appeal to the humanistic side of the audience/user-base and as such it may follow a very different lifecycle than the definition-space that must be verifiable to the deterministic/scientific side of the audience/user-base.
Reason #2: Skillset
Definition-space builds up a good understanding of the area the information system supports. This work requires both precision thinking and people skills – understand the current challenges and figure out how structured information can help in practice. The definition space is where the core value of the information system lies – this is where the information system is made suitable for a specific area. The developers working the definition space discover, diagnose and resolve problems as they are found.
Technology-space requires years of dedicated experience with many different technologies. It is challenging since the life span of any given technology may be shorter than what it takes to fully understand it. It is possible to specialize and become a black-belt-jedi-master in a section of technology-space and yet be absolutely hopeless in helping real humans with real problems. Its more of grunt machine-room type of job – that requires the smartness of an executive.
Looks-space requires an eye for lines, colors, smoothness and disturbance in graphics and perception – some people just have it and others don’t.
Reason #3: Ownership, investment and edge
Definition-space holds the distilled knowledge of what makes the enterprise tick. It also allows for development of the area that is necessary to stay ahead of the competition. If the business owns this area they can continue to evolve information-wise without the dependency on a system supplier – a supplier that might sell the same ideas to the competition as well.
Technology-space is necessary to master in order to actually deploy and execute the results from idea-space, but since it changes so often, we will probably have a high turnover on the people working the latest tech and these people will not find our idea-space more interesting compared to the idea-space of another company. They are more interested in supporting the idea-space than actually developing the idea-space. Many companies will use the same technology without sharing the gist from idea-space.
Looks-space is much like fashion – we need the freshness of “now” and this is very seldom something that ages well. This area is similar to ad-agencies – and we often switch agency when looking for a new expression. “Pitch us some ideas” – because we don’t trust our own…
How do the 3 reasons above show that mixing it up in a bucket is a bad idea?
The 3 reasons describe how the 3 areas are very different in lifecycle, in needed skills and in the benefits of ownership. Things that are different will suffer when mixed – not one of the areas will benefit from being mixed with the others in terms of management or workforce.
Optimal would be to keep the definition-space close to the chest since this is the definition on how your company handles information – don’t trust others with your know-how. And do not think that you can invest in the best jedi-masters to keep your technology-space up to date for any longer than 3 years. And you do not want to get freshness for the looks-space from the basement – you want to shop around on green fields just in time.
How does the software industry deliver on the needs to keep these 3 areas separated?
Badly I am afraid – the software industry is happy to mix it all up in a bucket – and then trust the most short-lived part of the system they sold you will force you back as a returning customer within 5 years.
The software industry will not change by itself – because it can see no obvious benefit for them.
In order to get things moving in the right direction you must look beyond the large established providers. Look at the emerging alternatives. Look at MDriven.net!