Archive for September, 2009

The burial of agile

Friday, September 25th, 2009

(Inspired by Alistair Cockburns presentation on “the death of agile”, his keynote at Agile 2009, available at http://www.infoq.com/presentations/cockburn-bury-not-praise-agile )

P.M.’s, agilists, programmers, lend me your ears;

I come to bury Agile, not to praise it.

The evil that methods do lives after them; the good is oft interred with their bones;

The noble Cockburn hath told you Agile was dated: If it were so, it was a grievous fault and grievously has Agile answered it.

Here come I to speak in Agile’s funeral. It was my friend, faithful and just to me — but Cockburn says Agile was dated and Cockburn is a knowledgeable man.

It hath brought many teams speed, whose savings did fill their coffers. Did this in Agile seem dated?

When teams were delayed, Agile gave control — seems made of sterner stuff. Yet Cockburn says it was dated, and Cockburn is a competent man.

I speak not to disprove what Cockburn spoke,

But here I am to speak what I do know. You all did love Agile once, not without cause.

What cause witholds you then, to mourn for it now?

Oh judgment! Thou art fled to brutish beasts and men have lost their reason.

Bear with me. My heart is in the coffin here with Agile and I must pause till it come back to me.

But yesterday the word of Agile might have stood against the world; now it lies there.

And none so poor to do it reverence.

Oh masters, if I were disposed to stir your hearts and minds to mutiny and rage, I should do Cockburn wrong, who, you all know, is a knowledgeable man.

I will not do him wrong; I rather choose to wrong the dead, to wrong myself and you, than I will wrong such a competent man.

Here is an opinion, in the Agile tradition — I thought it up myself, ’tis its legacy: Let but the people hear this legacy, which, pardon me, I do not mean to give, and they would go and kiss dead Agile’s wounds and dip their napkins in its sacred blood, yea, beg a hair from it for memory, and, dying, mention it within their wills, bequeathing it as a rich legacy unto their issue.

Have patience, gentle friends, I must not give it; it is not right you know how Agile served you. You are not wood, you are not stones, but men; and, being men, hearing this opinion of Agile, it will inflame you, it will make you mad! ‘Tis good you know not that you are its heirs, for if you should, oh, what would come of it!

Will you be patient? Will you stay awhile? I have overshot myself to tell you of it. I fear the highly competent man whose daggers have stabbed Agile, I do fear him!

Then make a ring about the corpse of Agile, and let me show you it that caused my thoughts. Shall I descend? And will you give me leave?

If you have tears, prepare to shed them now. You all do know these parts of Agile — I remember the first time I tried them out. ‘Twas on a summers evening, all alone, that day I finished a project in time.

Look — there is the standup meeting! See how the backlog has been broken! Through communication did we gain speed, and as your teams became self-managing, mark how the speedups followed it, as rushing out of doors, to be resolved if Cockburn so unkindly knocked or no.

Oh, disciples of agile, the naming of the parts was a necessary evil. The naming of parts created a bigger whole, losing us our way. Only through us did agile gain life and mortality.

For Cockburn, as you know, was an angel of agile — judge, oh you gods, how dearly he was loved. This was the most unkindest cut of all! For when even the angel took a stab, confusion, more strong than traitor’s arms, quite vanquished us, then burst our mighty hearts, and in our despair clouding our thoughts, even at the base of our professions grail, we raised poor agile to the lares, thus it fell.

Oh, what a fall was there, my compatriots! Then I and you and all of us fell down, while bloody confusion flourished over us!

Oh, now you weep, and I perceive you feel the pang of guilt — these are gracious drops. Kind souls, what weep you when you but behold our agile’s vesture removed? Look you here! Here the parts lie, for you to reuse.

Good friends, sweet friends, let me not stir you up to such a sudden flood of mutiny. They that have done this deed are honorable. What private thoughts they have, alas, I know not what made them do it. They are wise and honorable and will, no doubt, with reasons answer you.

I only speak right on; I tell you that which you yourselves do know; show you sweet agiles parts, poor dumb practices, and bid them speak for me…

Here is the worth, and under agile’s tradition. For all of us, experience to gather!

Moreover, we can change all its ways, its private arbors and well-tended practices — this is all left to you.

And to your teams forever, common knowledge, to gain wit, to constantly improve.

Here was a method. There will surely be another.

With apologies to both Alistair Cockburn and Shakespeare.

Mashups vs the hosting world

Wednesday, September 9th, 2009

Javazone is on – one of my local java conferences. Quite a good one, too. Couldn’t make it this year, though.

Presumably, there will be people talking about the latest way of aggregating bits into a bigger whole. It doesn’t matter what you call it – portlets, SOA, mashups. It is something every developer sees the value of and wants to do.

Then we want to get someone to host our applications. This is where twinkly-eyed developers meet a bit of an impasse.

Let us say an application wants to incorporate maps from google. This service is hidden beyond the hostname maps.google.com – but there is no way of knowing what this service resolves to in way of IP-addresses. Google has several data centres, and will presumably move their services around as they build more. Hosting people tend to like hiding our bits behind firewalls. Services migrating around is not compatible with any hosting products I have seen. There is an inherent flaw in the available hosting products – they tend to require a firm coupling to any external services that are used. Right now, that is not too much of a problem since few people successfully use cloud-type technologies. If clouds take off, this will become a major headache.

In extreme cases, even resolving hostnames to IP addresses is a problem. Old silo-type systems do not necessarily require access to DNS – they are self-contained. DNS is a somewhat fragile protocol opinion, so this might not be a totally silly idea. If is a bit too easy to steal domains or to poison DNS. Still, most mashup-like technologies tend to lean heavily on DNS to provide location information.

I think an improvement to DNS would be in order. I want something

  • I can control dynamically. I may want to switch traffic between locations very much faster than DNS allows. Some DNS resolver implementations do not even honor the time-to-live field.
  • is secure. Man-in-the-middle attacks and DNS poisoning should be impossible. It should be very easy to switch DNS server providers, but very hard for someone to steal my domains.
  • is context-sensitive. It makes absolutely no sense for someone in the US to use the same hosts as I do if someone has data centres in both Europe and the US.

Before this is sorted out, I am afraid I don’t have much hope for the kind of cloud computing I want to see. I am sure we will have lots of technologies claiming to be “cloud”, but they will still tie me to one hosting location too firmly for my liking. I have seen power outages and in extreme cases fires and flooding taking out whole locations, and these situations are never fun to get through. So far, my current project has seen two power outages, a major routing loop (hi, Sverre) and a catastrophic fire taking out our development systems. We always managed to get up and running again in less than a day due to very competent people and good backup routines, but significant loss of sleep was incurred along the way.

So – I want some really flexible solutions, thank you very much. And then I want hosting vendors to adopt these technologies. That is probably never going to happen, since this kind of technology would also open up competition between vendors in a completely new way. If you can switch away from a hosting location on very short notice because of a fire, you can probably also do it when some marketeer decides to up the price.

Still, it is a nice dream. It would make SOA, mashups or whatever this years’ buzzword is very much more achievable.