Archive for May, 2007

Harvard Law of Animal Behavior

"Under carefully controlled experimental circumstances, an animal will behave as it damned well pleases."

I can’t help but think there is something there important for software architects. Somewhere.

Powered by Qumana


But I still can’t program my VCR!

It should be relatively apparent at this stage (assuming of course you have read any of my previous posts) that I am interested in the philosophy and ethics of computing. Even more than that I am interested in the usability and benefit of computing.

I should be clear about this. I design software systems, have spent a number of years working with software, and have to admit to being a closet geek (not a geek about closets). But technology vaguely worries me. We spend an inordinate amount of time and energy developing out systems to make us better, more efficient, smarter, more informed, richer or more entertained. And then we tell people that it will make their lives better, more efficient, smarter, more informed, richer and more entertained. Yes, you’ll have to learn completely new ways of doing things, but the advatages are clear.

Now I personally believe the computing industry is incredibly immature (not necessarily the people in the industry). So it stands to reason we will build some systems that have a benefit, but lots that don’t. And as we mature the software will get, hopefully, better and more targetted to end users. Now I think we are beyond the "test pilot" phase where we strap people in, tell them to press the big red button, but only when we are safely behind the screen, and then say opps! when things go wrong. But how much further beyond?

Actually I think it all comes down to expectations. This new shiny system I want you to use will make things a little better. Some things will be annoying, but bear with it, because it’s going to get a lot better. I promise!!

But until that happens, can someone please come round and program my VCR??

Tags: ,

Powered by Qumana


Back in the 19th Century in Germany a term was coined to reflect the concept of politics based on practical considerations rather than ideology. Although the term, Real-politick, has long since fallen into disrepute, its initial intent was to convey the desire to avoid an arms race and achieve peace through acceptance rather than hard and fast viewpoints. The more time I spend in architecture and information systems, the more I think we need a similar term; Real-Design would be based primarily on the realities of the client’s needs and existing skill set and software base. Real-Design would be about designing solutions that fit with the immediate requirements of the customer whilst not precluding the move to a more controlled architecture in the future. Real-Design would allow us to state an end goal whilst not attempting to enforce an unrealistic work practice on end user to account for the gaps in deliverable technology and green field architecture.

A good example here is the canonical data model. I have to preference this by stating I am a huge fan of the model. In an ideal world the canonical data model isolates the core system from changes in the external systems, and isolates each of the external systems from each other. The catch is any data not include in the original model has to be included at a later date. And that is an incredibly expensive process in terms of both time and money. To avoid this, you are required to “design the world” before you start, leading to one of two outcomes; a long design cycle, or a flawed model. Neither are particularly desirable outcomes from the customers viewpoint.

So what is a better model? We move towards concepts like the canonical data model to avoid fragmented architectures, and to move us from the issues presented by point to point integrations.  Should we then go back to those problems? I see part of the problem being the way we attack the problem through technology. We attempt to fit a restrictive model over the top of an expansive problem, and then like try and poke the bits that don’t fit back in. Usually by telling customers to change the way they work to account for it.

A Real-Design solution to the problem would be to move towards a “just in time” conversion of only those data elements we care about with a mechanism for capturing the details of the translations in a repository that could be used in design and development time to bring about new integration segments. Or even better, a repository that would be used at run-time to look up the translations.

A Real-Design approach to integration would be the acceptance of the existence of less than perfect architectures within the system, and the development of a solution to play with all of them.

Tags: , ,

Powered by Qumana

Open source? Really?

continuing on from this post

The question of providing source to customers is touchy on a number of levels. If the concept is by bearing all we are forced to be honest, one would have to question how that would apply to the rest of commerce.  For example, if you were present during all of the steps involved in delivering that tasty prime-rib to your plate, would you be able to stomach it?

I think the issue here is whether there is an assumption that the only reason we do not provide source code to clients is out of a sense of dishonesty or deviancy. Leaving aside the fact that as consultants we regularly expose source code, one has to consider the capability of those not intimately involved in the development of the source code and the product in general to truly, and fairly, judge its relative merit. As a previous developer, I find it the height of arrogance to judge another’s source code without having been involved in its development, and privy to the tradeoffs that are associated.

Another critical point, in my mind, is whether there is value in the exposure of the source code. Take a product like Windows with millions of lines of code. It is unlikely that someone would choose to review the codebase prior to a purchase decision. The effort involved is unrealistic, and the depth of knowledge required to effectively evaluate the code would suggest a more appropriate course of action would be to write a new operating system! However the value in reviewing the code for competitive advantage is immense. Those requesting access then would have to be questioned as to the motive of their request; altruistic vs. competitive.

A question arises in all this as to whether the production of code is a social benefit or business. The answer, in my opinion, is it can be both. If you are involved in a project at home to develop a better word processor to gift to friends and family, development obviously carries an altruistic badge. But if you are being paid to work for a public company, then business is a reality to be accepted.

Now I certainly agree that the Patent Office is hardly a bastion of human endeavour or provides transparent protection of true innovation. And it is certainly the case that most companies will over inflate at times the value of their particular offering to ensure they win contracts. It is a ethical issue that often appears. If we all are aware all companies involved in a bid are involved in inflating their relative merits and we truly believe that our solution provides the best value to the client, what is the best course of action? Play the same game or refuse to play and loose the contract? At its heart this is a business not technical issue. Just as most process problems are not solvable through technology, I firmly believe that people or business issues are primarily issues to be resolved outside of technology.

I think my question back to you is this;

Does open source truly mean that users have a more informed and greater choice? Or is it simply another way of creating an illusion of choice given that users are unlikely to have neither the time nor skill set to truly evaluate the relative merits?

Tags: , ,

the old blog

ok, the old posts are at:

the move

Ok, I have moved my blog from Blogger to WordPress. Why? Because all of a sudden (yes I know I obviously don’t update my blog enough) Google owned Blogger and I had to have a google password. And that bugs me. Don’t ask me why. It’s an emotional thing. So I moved. Simple huh?

That’s all I have to say on the matter.