|Chapter 18 - Where do we go from here?|
We are fortunate to live in the dawn of our discipline. It is us who will lay the foundations of what is to become software architecture. Far more fortunate are we than those who will come and lay claim to our title, for they will be mere links in the continuity rather than forge and anvil from which it came.
And in this dawn, we travel two roads in one, the technological
path, which gives us the means to understand and solve highly complex technical
problems, and also the personal path, which allows us to communicate with our
fellow beings and seek the goals we have set ourselves. Let us turn our face to the sun and allow the shadows of software
so far, to fall away behind us. We shall create a new beginning.
Seize the title of Software Architect!
There is no-one to stop you. We have no body of knowledge, a confusion of terms and methods, and many gurus promoting alternative visions. If you do not seize the title, the management trap will seize you, and you will be mere administrator instead of innovator.
We need software architects. We need people to be recognised as being responsible for ensuring software systems meet their purpose, and people who endeavour to create systems which uphold their own principles and the desires of their clients.
Yes, we struggle, as all did before us who were at the beginning of other things. And so we look for answers to our own confusions and wonder what history has to offer us, so our way might be clearer. We begin by contemplating contemplation itself:
Indeed, in my own experience across the traditions, I have found that the best teachers are those who do not exalt their own teachings (and, by implication, themselves) above the teachings of others. Having travelled far in their own development they have left behind such narrowness, and are able to see the truth wherever it is to be found. Nor are they averse to criticising their own traditions where such criticism is justified. They live in openness and freedom because they are not bound by the dogma that gets in the way of wisdom.
follow that advice, and see what the world's
major movements of thought have to offer us.
A chronology of advice for Software Architects.
Who can say how many times enlightenment came to earlier beings as unrecorded civilisations rose and fell? The great records of the Egyptians, the Babylonians and Romans showed us that they were great warriors and administrators, but they left us little on how we might conduct ourselves. It was the Greeks who began (in recorded history) to document the why rather than the how. Outside the monotheistic religions, it was Socrates who was first recorded to take the bitter hemlock, and death for his beliefs. It was the Greeks who gave us the word architecture: literally arch drawer, or arch designer.
All of these recording traditions raised civilisation, upon which we depend as software architects, but the real advice on what to do as a software architect comes from many different ancient and modern sources. Let us pass on a swift journey through two and a half thousand years, and gather things that belong to other journeys that might be applied equally to our own.
The Buddha, or enlightened one, sought the path of peace and serenity. He suggested:
Try it and see what happens. If it works for you, use it. If it does not, discard it and look elsewhere.
This does not mean you should discard lightly. If something does not work for you, you must understand why is does not work for you.
It is difficult to date the Bhagavad Gita, or Song of the Lord. It was added to the Mahabharata as the latter began to take its final form in the reign of Asoka, the third Mauyra emperor. It survived in oral form before being written down, and its origins are in the mists of civilisation.
Freedom from fear
Purity of heart
Constancy in learning and contemplation
Freedom from anger
Aversion to fault finding
Sympathy for all
Peace from greedy cravings
A good will
Freedom from pride 
Some say that despite our almost miraculous advances into materials, medicine and engineering, we have not discovered any better how we are meant to live. Our brief interval crammed between birth and death is jammed full of learning and examination, metered out by success and failure, pay packets, meetings and holidays.
It is a sobering thought to realise that we have moved from the age of revelation to the age of science and technology and hardly have time to breathe in the lessons of the past.
Yet to be fully effective as software architects, the life lessons are as important to us as the technology lessons. We have neglected them to our cost for long enough. Too many non-software people permeate software society because we need their man-management and personnel skills. We must learn these lessons ourselves, and use them to better deliver the excellence our professions demands.
It is not as if these lessons are hidden from us. They are out in plain view, published in books, posted on the internet. We have only to turn our view a little, and the path is wide before us.
Although we see the seven now, they were originally compiled from the four cardinal and three theological virtues.
The cardinal virtues were derived from Plato. The Christian theological virtues are from St Paul.
Faith - believe in yourself and those around you
Hope - Believe that your will to succeed or change will have effect
Charity - Help others where and when you can
Fortitude - Do not give up
Justice - Reward those who deserve rewarding, thank those who need thanked
Temperance - Moderation can win over extremism. The tortoise can beat the hair. Relax, you're doing fine.
Prudence - Be cautious, wise and discreet.
In what was arguably the most important single speech, Jesus bade us, amongst many things, to:
First take the plank out of your own eye, so that you might see clearly to remove the splinter from your brother's.
The sermon on the mount, in a few moments of speech gave us many proverbs and information on how we should be. Proverb for proverb, it is matched only by Solomon.
The contrary virtues came from Psychomachia, or the Battle for the Soul of Man.
Humility - Oft presented but seldom found
Kindness - Be kind, especially to those struggling to understand
Abstinence - Avoid the habits which will drag you down. Do not overindulge yourself.
Chastity - Refinement in taste and style
Patience - You will require a great deal
Liberality - Cultivate the mind for its own sake
Diligence - Be steady and earnest in the application of your knowledge
Great faith - We do what we believe can be done
Great doubt - We carry the spirit of enquiry in our hearts
Great determination - We will do whatever we need to give us more faith, more doubt and higher achievement
Miyamoto Musashi, sitting in a cave in the mountains at the age of sixty, and considering the way of strategy, left us this:
Musashi was a supreme samurai swordsman and strategist. By the age of thirty he considered himself invincible, having beaten (and killed) the sixty opponents who had faced him. In feudal Japan, swordsmanship was an art, and he carried that art into drawing, carving and writing. Many of his works still exist today, yet none is the equivalent of his way of strategy. It is studied by many of the business leaders in Japan, just as it is studied by Kendo students worldwide.
Gandhi, more than anyone in recent history, embodied the greatness of the prophets of old. We certainly live in a time where commerce has no morality, and the larger the business, the less its humane character. Mergers and acquisitions are a feature of our time, where money for expensive buyouts seems easily available. The consequences of these huge buyouts rarely favour the individual.
To prove that the remarkable minds of our time also had time to take out from their scientific endeavours and enter the world of philosophy, Einstein created three rules of work:
Even the wags of contemporary politics can teach us something, for software and politics are both viewed as black arts peopled by those speaking fork-tongued:
I think I can say, and say with pride, that we have some legislatures that bring higher prices than any in the world.
It could probably be shown by facts and figures that there is no distinctly native American criminal class except Congress.
Congress is so strange. A man gets up to speak and says nothing. Nobody listens and then everybody disagrees.
How many words would you have to change in the above sentences to create the equivalent thoughts of those outside software on those inside?
Success is moving from one failure to another without any loss of enthusiasm.
We have survived long enough on Churchill's comical vision of success. It is time we moved beyond it, and could take the advice of another leader of the 2nd world war
Have a great plan. Execute it violently. Do it today.
And finally, for we who begin something while all about us is doubt and confusion:
Say "The truth has come: while falsehood can neither
initiate anything, nor repeat it."
Say "If I go astray, I go astray because of my own shortcomings. And if I am guided, it is because of my Lord's inspiration. He is hearer. Near.
If you could only see them when the great terror strikes; they cannot escape then, and they will be taken away forcibly.
They will then say, "Now we believe it," but it will be far too late.
They had rejected it in the past; they have decided instead to uphold conjecture and guesswork.
Consequently, they were deprived of everything they longed for. This is the same fate as their counterparts in previous generations. They harboured too many doubts.
Where do we go from here?
In the cold light of day, you might consider this whole book as just a list of things you might like to know. I have no doubt you knew some of them already.
We still have a long way to go in software systems and how to think about designing them. Consider the simple example of two pairs of people sitting down, one with a computer, and the other with a pad of paper and a pencil.
The benefits of the pair with the computer are that hey may have some helpful software, some of it even quite useful, like a spelling checker. They may have rendering software to draw 3d models. They are less likely to run out of disk space than their counterparts will run out of paper, nor will their keys fail as often as pencil points. They can create indexes and hyperlinks and do sorts.
The paper and pen people have invested less. They can write and draw on the same piece of paper with ease. They can tear off pieces of paper and put them in piles to represent ideas. They can write in the margin, draw lines, circles, highlights and arrows leading from one bit of the document to the other. Governing thoughts can be divided into pages far easier than onscreen. Their batteries won’t run out, and they can put pages side by side to compare them. They can even spread pages around the table into piles of related ideas.
I’ll leave you to decide who is better off.
Imagine a user interface that can draw you in. It can create new ideas in your mind, even other worlds. It can make you hang on its every word and make you want to avoid others, meals.
interface already exists. It is called a book. I hope this one has entertained
you, and maybe introduced you to a slightly changed world.
The road ahead
It’s up to you. You can take up the gauntlet of Software Architecture, or you can leave it lying in the mud, and allow others to take up the challenge. Software desperately needs vision, and the role will be filled by Project Managers with an inkling of system design, or Business Analysts with a far better view of Business needs.
I would argue the role is solely for those with a schooling in development, and an understanding of the technical details of a wide range of technologies. If we don’t do it, someone else will.
To succeed, you must empathise with your customers. You must make every effort to communicate personally with them face to face, or failing that, by telephone, videoconference, email or letter (in that order). You must communicate in a comfortable environment in a language you both understand.
You must understand the personalities behind the stereotypes. Here is what the Sunday Times had to say about chief executives.
These are character traits. Not quite what you might have had in mind as a stereotype. Stereotypes are the enemy. We must dismantle them. The worst stereotype of all is our own. The techie. The propeller head. The Star Trek quoting, Dilbert reading, anorak wearing, uncommunicative, out of touch, lost in technology, software expert. We must work to destroy this stereotype if we are ever to be able to lead.
Figure 17.1 Licensed to kill the stereotype
Here is a diagram reproduced from Corporate Politics. It shows how we must climb from service delivery through project delivery to have any influence on business thinking. Operating at the bottom of this graph means IT is a cost, likely to be controlled by a Financial Director and misrepresented at board level.
If we cannot kill our stereotype, then we are destined to languish in service delivery when we should be using technology to transform business thinking: to be pivots upon which the world moves.
To move upward collectively is to tread a long and difficult path. Many have achieved it individually and we must look to those who have succeeded and see what has carried them on their upward journey. The answer is highly unlikely to be technical excellence. It is embodied above, and you may find it somewhere above. Equally, you may have your own path suggested by a mentor, or come across it through luck or grind.
If you are looking for a path, ,  and  may help you on your way.
To borrow again from Corporate Politics, have you ever heard anyone professing love for their IT department. Has anyone ever thought they are being cared for by the department as a whole?
It is unlikely. Often, someone will find someone helpful in the department, and forever more they will become their pets. When something needs doing, they will always want to speak to the same person. The reason for this is that the IT department is usually a personality-free exchange of technical geek speak, ending with 'Have you tried rebooting your machine?'
Have you ever heard anyone say ‘My computer hates me’? Hate, a computer? A logic based on and and or can hardly hate. It may not do what the user wants at some particular moment in time, but it is emotionless silicon, or it is as far as we are yet aware. Computers simply do not hate. Yet people think they do.
People are reflected in their observations. All black dogs are mad. Making ice cubes takes no energy because the fridge is already cold. It never works for me. Modern music is rubbish. It's much slower than it used to be. My computer hates me.
Imagine you are one of your own customers. How would you feel if you rang up the helpdesk and they told you to reboot your machine then call back. How would you feel if your particular computer hadn't behaved properly for three weeks and there was a glaring announcement on the soulless pre-recorded countdown to you being connected to a real person that claimed:
99.97% of calls were responded to within the
and we have achieved a 99.98% up time over the last year
Would that help your particular problem? Would you think that your IT department loved you? Would you have warm feelings of love every time you felt that you could call them?
And, in the grand scheme of life, where does it leave you? As Covey bids us to do: begin with the end in mind.
Figure 17.2 The Pearly Gates
If you want to know why Martin (The techie hero of Corporate Politics) is a bean can with headphones and dark glasses, you know where to look.
Our greatest enemy is our obfuscation of the issue, as we hide behind our clever terms for our various technologies and methods.
Here, reproduced in full is Ronald Kohl on
“Mr Watson, come here, I want you.” Hearing those words transmitted over an apparatus being tested by Alexander Graham Bell, Thomas A. Watson realized that his boss, Mr Bell, had at last successfully developed the telephone. Mr Bell had not intended to have the terse request be the first words uttered over his invention. However, he blurted them out in surprise when he accidentally spilled acid as he prepared for the test. The rest is history. What is not history is the conversation that followed.
WATSON: Mr Bell! We have just invented the telephone! What a glorious Day!
BELL: Yes, we have. But we aren’t going to call this apparatus a telephone. That wouldn’t fit our business model. We will call it a telecommunications device. We don’t want people to call our firm a telephone company. We want them to call us a telecommunications service provider.
WATSON: But Mr Bell, why use such a stupid obfuscation? It’s a telephone. And we will have a telephone company.
BELL: You just don’t get it. Ever since the telegraph was invented, we have been in the midst of a digital revolution. The Morse Code, Watson – that’s digital. This contraption I’ve invented is analog. We have started an analog revolution. The whole country will be wired. Everyone will get online, or else they will be left behind.
WATSON: That means that we will have to get a means to connect these online users. We can hire ladies to operate our network and help our users log on. We can call these ladies ‘operators.’
BELL: We can’t call them ‘operators,’ Watson. What we are dealing with here is electronics. We will refer to these ladies as real-time voice interfaces. We will promote our telecommunications device as being voice-enabled. You see Watson, everyone wants to be enabled today.
WATSON: As you say sir, but down the road I’m sure we will be able to get rid of the ladies and let people get online by dialing a number on a rotary device.
BELL: Now you’re cooking, dude. And we’ll promote the dial as an enhanced functionality solution. Everyone wants functionality today. They especially want enhanced functionality, and most of all they want enhanced functionality solutions.
WATSON: When we invent the dial, we’ll have to assign numbers to our customers, and we can list the numbers in a publication called a phone book.
BELL: Wrong, Watson. That book of numbers will be called a hard copy application enabler. And if you don’t have a hard copy enabler, you can ask our voice interface to look up the number, and that will allow her to provide online help in real time. That will provide even more enhanced functionality.
WATSON: We may disagree on words, Mr Bell, but I think we agree that our telecommunications device will change how people do business.
BELL: Right. People will be able to ring up our voice interface and buy things online. This will be referred to as ‘calling in an order,’ and that, in turn, will let users form collaborative supply chains. Of course, some potential users won’t understand our telecommunications device, and they will set up cultural barriers to change. By the way, I agree that the asinine vocabulary I’ve been using makes me sound like an imbecile. But I have a premonition. Some day everyone will talk like this, regardless of whether they are users, providers, enablers, or enhancers. So get used to it. Don’t set up cultural barriers to change, Watson. Get ready for a new paradigm.
We have four horizons to view. The technical, process, method and business horizons.
On the technical horizon, we’re likely to see great excitement, and even some slight functionality coming out of the 3G and other related work. Certainly, it will create a higher degree of on-line access in portable devices. We will also see the continuing convergence of computers, televisions and telephones.
On the process horizon, we shall see ideas continuing to merge, and although different methodologists will continue to speak their different languages, the developers will follow the path of least resistance.
The method horizon raises a few questions. We’ve gone OO, but we’re still on the journey. Web pages have seen OO take a back seat to delivering software.
On the business horizon, we can be clear that people will want more information from more points of view, sliced and diced into ever increasing complexity. They will want business solutions quicker, and more information and functionality available on the move. Our preference is moving towards small and free over bloated and not. The true costs of free have not yet been worked out.
Claims that My kid brother can create a website will not disappear, but the tools will become ever less affordable. Kid brother websites will be insecure, database free (files are easier) and go unsupported when the said kid brother takes up rock climbing or skateboarding.
The tools we use will become ever more creative, and ever more similar. Perhaps we will give up our monolithic word processors and create a more harmonious environment to create our paper equivalents in. We must be careful that we do not stifle creativity. For the joy will leave us, of tearing out a piece of paper with a message gone wrong and tossing it in the general direction of the bin to further clutter our floor. As will the joy of the warmth in our faces when those scrapped up balls of paper burn, bringing light and life to a darkened room.
Uniformity is on all horizons. Perish the thought.
Software people generally like logic. If this, then that is quite understandable. However, life is not always logical, the practices of the intellect not always predictable, measurable. There is not always a right answer. Right is only the slightly less fuzzy amongst the fuzzy.
You must study the strategy of being a software architect. So here, in the style of Musashi, though rather more koanish:
If you pay low, or if you beat someone down to a price lower than something is worth, your reputation as miser/negotiator will grow. The next time you begin negotiation the starting price will be higher. You will end up negotiating your life away while the decent payer is offered and pays the right price every time.
If you pay high, you are cheating yourself. Your seller is left with a short term windfall which, depending on their nature, they can absorb with glee, or begin piling in extra 'free of charge' items to equate the false price with the correct price.
You may think those who absorb with glee far outweigh the balancers.
You must pay the right price. You must come to recognise it.
In the art of software, you may have made some good choices; they may have been purchases, approaches or designs. At other times, you may have made some mediocre or bad choices. The fact is that many different methods, approaches or designs can be made to work, with varying degrees of success and ease.
To make things work better, and be easier to do, you must choose well. It is that simple.
You must first choose how to choose.
You may have heard that if a job is worth doing, it is worth doing well. Similarly, you may have heard that if a job needs doing, do it yourself. Or you may proclaim that if a job needs doing, and doing well, you should pay a professional to do it.
Doing software needs all of these doings. Only you can decide who the best doer is. If you follow one path to the exclusion of others, it is likely your software will not get done.
You must balance the triangle of doing, to do.
For you to win, another must lose. This is a falsehood, perpetuated by competition. If you love another, and they love you back, is one the victor and the other the loser? If you fight another and they fight you back, and you both die of injuries, is one the loser and one the victor.
You can deal with another, and both win. If we all work together, can we all win?
Silence in though, silence in action. Stillness in movement, or relaxation at speed, is the goal of all the great movers. Silence in thought, the volume of authority in command, the volume of equality in discussion.
Twice silence for one of speech. You must consider this well. The volume of authority is never loud.
You can only undermine yourself. Think on this.
Talent is rare. Doing something with it is rarer still.
To reach the ground, the parachute and its weight are interdependent. Too light a weight will blow away in the wind. To heavy a weight will break the parachute. The ground will break the weight.
You must consider what, internally and externally, is parachute and what is weight trying for what ground. And you must consider who, what, when and where is the ground.
To drive a car you steer along roads. You turn at turns. You accelerate and break. You consider other drivers. you avoid holes, verges. You do not drive off the road into the ditch.
Software is a complicated road. It lacks street lights, cats eyes, white lines and curbs. You must steer well.
A tree may bend in the wind, but it does not give up its branches.
To reach a destination better, you must know the place you are travelling to, and how to recognise it when you arrive. You must know the best route to take, avoiding the many obstructions between you and there.
We are all on many journeys at once. We travel our personal journeys, our relationship, career, job and project journeys.
Beware. All journeys converge. Treat each with balance and respect for the benefit it may bring.
* if you know the origin of the theological virtues, or the origin of the collection into the seven heavenly virtues, I would be grateful if you would let me know.Click here for the US book list