Monthly Archives: December 2010

Post navigation

…those who truly love programming see it as an art form. Its not just a technical pursuit, but one that allows the leveraging of one’s unique talent and views. You bring a form of personal expression into your work. You invest yourself physically and mentally in what you do. You suffer and toil, using code as your medium, just as other artists craft with paint or stone. You have a personal association and pride with its creation. The code and its results represent you.

According to the Bureau of Labor statistics, American adults spend by far more time working than any other activity. That’s a lot of your waking time being trapped in a routine. In a Stockholm Syndrome situation, the captor chips away at the self-esteem of the captive. So for most of our waking hours, those of us trapped in dead end jobs like these are exposed to environments which systematically destroy our self-confidence. Not only that, a persistent fear and feeling of failure makes it harder to actually explore the options for leaving the bad situation. The instinctive self-preservation reaction in this kind of situation is to work harder to try to avoid the perceived threat coming to fruition.

Software obeys the laws of entropy, like everything else. Continuous change leads to software rot, which erodes the conceptual integrity of the original design. Software rot is unavoidable, but programmers who fail to take conceptual integrity into consideration create software that rots so so fast that it becomes worthless before it is even completed. Entropic failure of conceptual integrity is probably the most common reason for software project failure. (The second most common reason is delivering something other than what the customer wanted.) Software rot slows down progress exponentially, so many projects face exploding timelines and budgets before they are killed.

…I think there is a role for a broad starting point architecture. Such things as stating early on how to layer the application, how you’ll interact with the database (if you need one), what approach to use to handle the web server.

Essentially I think many of these areas are patterns that we’ve learned over the years. As your knowledge of patterns grows, you should have a reasonable first take at how to use them. However the key difference is that these early architectural decisions aren’t expected to be set in stone, or rather the team knows that they may err in their early decisions, and should have the courage to fix them. Others have told the story of one project that, close to deployment, decided it didn’t need EJB anymore and removed it from their system. It was a sizeable refactoring, it was done late, but the enabling practices made it not just possible, but worthwhile.

How would this have worked the other way round. If you decided not to use EJB, would it be harder to add it later? Should you thus never start with EJB until you have tried things without and found it lacking? That’s a question that involves many factors. Certainly working without a complex component increases simplicity and makes things go faster. However sometimes it’s easier to rip out something like that than it is to put it in.

So my advice is to begin by assessing what the likely architecture is. If you see a large amount of data with multiple users, go ahead and use a database from day 1. If you see complex business logic, put in a domain model. However in deference to the gods of YAGNI, when in doubt err on the side of simplicity. Also be ready to simplify your architecture as soon as you see that part of the architecture isn’t adding anything.

…In order to work, evolutionary design needs a force that drives it to converge. This force can only come from people – somebody on the team has to have the determination to ensure that the design quality stays high.

This will does not have to come from everyone (although it’s nice if it does), usually just one or two people on the team take on the responsibility of keeping the design whole. This is one of the tasks that usually falls under the term ‘architect’.

This responsibility means keeping a constant eye on the code base, looking to see if any areas of it are getting messy, and then taking rapid action to correct the problem before it gets out of control. The keeper of the design doesn’t have to be the one who fixes it – but they do have to ensure that it gets fixed by somebody.

A lack of will to design seems to be a major reason why evolutionary design can fail. Even if people are familiar with the things I’ve talked about in this article, without that will design won’t take place.

…So is Design Dead? Not by any means, but the nature of design has changed.

Viktor E. Frankl’s“Man’s Search for Meaning” is now one of those select books that friends and family can expect me to be sending them for gifts over the next few years. For those not familiar it, it comprises of two parts: his harrowing account of survival in concentration camps during WWII, the concepts he gleamed from the experience; and a short description of “Logotherapy”, the form of therapy he pioneered that was influenced by it.

It is a short book, however, it took a long time to read because every page had something to think about and reflect upon. There are lessons for anyone, in any stage of life. Lessons for how we conduct ourselves under the best and worst of conditions, and finding the light in ourselves during the world’s darkest moments.

Quotes:

The attempt to develop a sense of humor and to see things in a humorous light is some kind of a trick learned while mastering the art of living.

…the “size” of human suffering is absolutely relative.

No man should judge unless he asks himself in absolute honesty whether in a similar situation he might not have done the same.

One literally became a number: dead or alive – that was unimportant; the life of a “number” was completely irrelevant. What stood behind that number mattered even less: the fate, the history, the name of the man.

We who lived in concentration camps can remember the men who walked through the huts comforting others, giving away their last piece of bread. They may have been few in number , but they offer sufficient proof that everything can be taken from a man but one thing: the last of the human freedoms – tho choose one’s attitude in any given set of circumstances, to choose one’s own way.

Dostoevsk said once, “There is only one thing that I dread: not to be worthy of my sufferings.” These words frequently came to my mind after I became acquainted with those martyrs whose behavior in camp, whose suffering and death, bore witness to the fact that the last inner freedom cannot be lost. It can be said that they were worthy of their sufferings; the way they bore their suffering was a genuine achievement. It is this spiritual freedom – which cannot be taken away – that makes life meaningful and purposeful.

The way in which a man accepts his fate and all the suffering it entails, the way in which he takes up his cross, gives him ample opportunity – even under the most difficult circumstances – add a deeper meaning to his life. It may remain brave, dignified and unselfish. Or in the bitter fight for self-preservation he may forget his human dignity and become no more than an animal. Here lies the chance for a man either to make use of or to forgo the opportunities of attaining the moral values that a difficult situation may afford him. And this decides whether he is worthy of his sufferings or not.

This uniqueness and singleness which distinguishes each individual and gives a meaning to his existence has a bearing on creative work as much as it does on human love.

A man who becomes conscious of the responsibility he bears toward a human being who affectionately waits for him, or to an unfinished work, will never be able to throw away his life. He knows the “why” for his existence, and he will be able to bear almost any “how”

Ultimately, man should not ask what the meaning of his life is, but rather must recognize that it is he who is asked. In a word, each man is questioned by life; and he can only answer to life by answering for his own life; to life he can only respond by being responsible.

According to logotherapy we can discover this meaning in life in three different ways: (1) by creating a work or doing a deed; (2) by experiencing something or encountering someone; and (3) by the attitude we take toward unavoidable suffering.

By his love he is enabled to see the essential traits and features in the beloved person; and even more, he sees that which is potential in him, which is not yet actualized but yet ought to be acutalized.

No one can become fully aware of the essence of another human being unless he loves him.

When we are no longer able to change a situation – just think of an incurable disease such as an inoperatable cancer – we are challenged to change ourselves.

…man’s main concern is not to gain pleasure or avoid pain but rather to see a meaning in his life. That is why man is ready to suffer, on the condition, to be sure, that his suffering has a meaning.

At any moment, man must decide, for better or worst, what will be the monument of his existence.

Every age has its own collective neurosis, and every age needs its own psychotherapy to cope with it.

Man does not simply exist but always decides what his existence will be, what he will become in the next moment.

Man is capable of changing the world for the better if possible, and of changing himself for the better if necessary.

A human being is not one thing among others; things determine each other, but man is ultimately self-determining. What he becomes – within the limits of endowment and environment – he has made out of himself. In the concentration camps, for example, in this living laboratory and on this testing ground, we watched and witnessed some of our comrades behave like swine while others behaved like saints. Man has both potentialities within himself which one is actualized depends on decisions but not on conditions.

For the world is in a bad state, but everything will become still worst unless each of us does his best. So let us be alert – alert in a twofold sense: Since Auschwitz we know what man is capable of. And since Hiroshima we know what is at stake.

Do you encourage play time with your children along these lines or have them involved in a preschool that operates with a similar program? I admit I have not – Emma’s play is either directed – baking, arts and crafts, or games, or non-structured free time. So can’t attest to how well the work. What these programs are attempting to improve or instill is important.

And BTW, I gotta agree with the author of “What should a 4 year old know” for what is truly important. Compassion towards others, and self control, are both in that mix.

That’s the Doctor describing the protagonist in this year’s Doctor Who Christmas special, “A Christmas Carol”, and an apt description for what many feel is the significance of Christmas Eve (and Winter Solstice for that matter). It was a terrific episode (for an in-depth review check out “Behind the Sofa” a great Doctor Who focused blog). If you’re worried about the time-paradox questions it opens up and possible inconsistencies – well it’s Doctor Who – and there have been many such episodes in the past.

Emma had 3 before this, but this year was really her first Christmas and I feel so blessed to be part of providing it in such a crazy, fragile world. It was a fantastic day that culminated in her Grandparents and Uncle and family stopping over for a great dinner. I hope your holiday was as touched by loved ones as mine.

My thoughts go to those who have lost someone whenever I post something like this. We feel our missing loved ones in a real significant way during the holidays. I miss Mom. And for you especially hurting, my thoughts and prayers go out to you.

Speaking of which, let me pass along Howard’s holiday wish because I can hope for nothing greater: