Login
User Name
Password
Holistic Programming is a different perspective on software development. By seeing the software system and its creation process as a holistic system from the user's point of view, common principles of software development get questioned and new principles appear.
When we talk about a system or even define it, we already take position:
We try to see the system from a certain point of view - our point of view. We seperate inside from outside (is something part of the system or not). Even if we ourself are part of the system we are describing, we try to identify borders, distinction lines, the issue to talk about in opposite to the person talking about it, hoping that this makes our analysis "objective". This is an essential part of analytical thinking.
Previously, it was quite easy to apply this mind pattern to the way software was created. The system was clearly defined by the machine processing statements on input data to produce output data. The system designer defined the structure of the input data while the system should create output data accordingly to the user needs. The value of the output data was so high that the users complied to all possible obstacles to deliver the needed input data. The user interface could have been very poor - it was used anyway.
Today, a new generation grows - people who see computer systems through the perspective of internet. And they bring their typical internet user behavior - quickly find something that is easy to understand, try it for a short period of time, like it, or move on to another system. If a web shop does not response within very few second at the click to see some product details, the trained-to-be-impatient user already thinks there is a malfunction. If it happens several times, the experience gets annoying. If the user's interest is not extremly high, he or she will try to find the same thing elsewhere - the system lost a user, the company lost a customer, the community a participant etc.
If we create software systems today, we have to consider this kind of behavior of today's and future's computer users. Our advantage: people are really using the systems we provide, in fact quite often many people - at least for some seconds. Our challenge: keep them using it, make them stay. This can be only achieved if we adjust the systems to the user's perspective - no, correction: it can be only achieved if we create the systems along the user's perspective. The user's perspective must be the leading and the driving factor.
So here we are again: talking about the distinction between the outside perspective and the system. The point: the system reflects the outside perspective. Its like a mirror, showing us what we understood about the outside perspective. So, a key point in Holistic Programming is: carefully observing what the user is doing and make this achieved knowledge part of the system. And, most difficult for us software developers: observing and understanding without applying our software design patterns to what we see, but "seeing it with the eyes of the user". This is certainly a challenge. But the even bigger challenge is that every user has a different point of view - and these are all valid perspectives and need to be served. We no longer can find the "right" way to see our system and train the users to take the same point of view. Our system must "learn" to comply to these different perspectives. The good news: today's internet users are trained to adjust the systems to their needs. Creating a personalized start page is already part of big community platforms - it will become part of all software systems, and it will not be limited to the start page.
Douglas Adams formulated in a remarkable speach at a software developers conference - back in 1994, when Microsoft just had learned to consider the Internet as the most meaningful technology of these days, he said something like: "Computers are not typewriters, not calculators, not drawing tools, they are modelling machines." I'd like to encourage: let's give computers back to the users: allow them to use computers as modelling machines and let them model their knowledge, so software finally does what it should - satisfy the users, the users of our software systems.
Contact • Data Privacy