Objects before behavior … continued

Now I have to define or limit the scope of application. I am here talking about enterprise operation management applications. The application that the companies support or run their businesses.

 

The hard core of programming is complex management. When one must keep track of business processes then OO is at least one magnitude more effective that any functional or procedural of course with the assumption that the coding is correctly produced!

 

The overall complexity can be divided in two subparts. Local complexity and its global aspect. A given domain functionality has a given intrinsic complexity. Here the local complexity is inversely proportional to its global part. This means that when one decreases local complexity at the same time one does increase global one. I have used APL programming language. It is an executable matrix algebra syntax. It was locally extremely complex – compact. The difficult with that was that only 10 % of Cobol programmer had any chance understanding it, but in hands of a master it was frighteningly powerful and productive.

 

Local complexity is easy to recognize because it can be seen in one o two pages of code but global complexity is insidious because it is really difficult to detect. This complexity steams from purely from number of combinations. The procedural languages gives too much freedom for programmer which ends up a mess.

 

This is why object with their association gives an almost isomorphic mapping from reality and thus enables to implement each behavior at most once. Their blessing is the restriction the put to a programmer. As I earlier said the prerequisite of this is that the development is done model driven and the implementation is strictly 3-tier. This meas that the application layer ( GUI , GUI- interactions, work flow control) is strictly separated from domain layer and business functionality.

 

I actually deeply understood this after reading Stuart Kauffman’s: Home at the universe. (http://www.amazon.com/At-Home-Universe-Self-Organization-Complexity/dp/0195111303/ref=sr_1_1?s=books&ie=UTF8&qid=1349817326&sr=1-1&keywords=at+home+in+the+universe+by+stuart+kauffman )

 

I warmly recommend this to all that truly.

Then when we consider really complex processes from reality, not only mathematics then the von Neumann architecture is not enough. For this reason big player have already for some time been developing new computing machine architectures that are simulating neurons and brain. ( see: http://www2.dac.com/events/videoarchive.aspx?confid=122&filter=keynote&id=122-120–0&#video )

 

Finally here is little bit more on complexity: https://jukkatamminen.wordpress.com/2011/08/01/managing-complexity/

Advertisements

ADDD is future!

Within at least 10 years I have not seen a slightest indication that there would be anything wrong with my ADDD approach on the contrary ever time it has been tried everything in the method has been proved to be working. Almost the opposite is true with many people and organizations!

I was fired by Tieto software house, because they did not find me any work. The reasons for this are
1. they don’t believe in object paradigm but processes and orchestrations.
2. they don’t want to work in lean and agile way, but they believe in detailed planning and waterfall.
3. they don’t believe in custom made but packages.
4. they don’t believe in professional teams but resource pools.
5. they don’t believe professional operating team (surgeon team) but distributed offshore development.

These differences drifted us apart. This is not just between me and one big software house. This is a global phenomena. The change here between the parties is a paradigm sift. Paradigm sifts are really big thing to do and to happen! Peter Coad in early 1990’s used as an example the wrist watch industry. When Japanese developed and electrical watch based on oscillating quarts crystal. Swiss had a flourishing watch industry base on old paradigm: mechanical machinery. These people from old paradigm were laughing at Japanese at their “toy” watches until their own industry collapsed totally! The same story repeats over and over again in our resent history: car production in UK or in US and Japan, home electronics in Germany and Japan, camera production in Germany and Japan, national flag carrier airlines and low cost airlines all over the world etc. Here the basic physics apply: the bigger the old paradigm activity is the more energy is required for the new paradigm activity to overthrow the old, but also the bigger the old is the faster the collapse will be after it has started.

The old paradigm will materialized in organizational structures. The bigger the organizations grow the more internal friction it will generate. This means that when a organization is created and its functional basic principles are set it is extremely difficult to change that fundamentally. The first big obstacles are the peoples’ skills. As the persons are selected by their their skills to suite the initial functions it is next to impossible to manage and carry out a process where the skill set is changed for most of the persons in the organization. This would require almost duple personnel if these people are to perform both their daily tasks and at the same time learn completely new skills. The next big question is do these people really learn required new skills at all! In short if this sometimes works it will be a miracle.

The most crucial part of this chain is of course the customer for whom the application is intended to. This current situation continues as long a the ability to secure their vital interests lacks almost totally from the client organizations. Of course this doesn’t change quickly. I have no idea how long this is actually going to take but anyhow it is required prerequisite for any progress! I can easily understand the responsible management when they are facing a situation, where they have a terrifying legacy backlog, ongoing critical production usage of the old system.

My prediction is that the change is going to start from medium size innovative modern companies. After the new far better production methods have been driven into at least some strong professional teams that has really internalize the fundamentals and the work processes thoroughly the last and then the customer that really wants the best and is not content when they only get something. This kind of customer must understand the underline principles at its high management, check the team’s quality and then trust it and fully commit to really work together to reach the results. A few such hits will finally start an avalanche.