James Governor's Monkchips

On Agile, IT-Business Alignment, Martin Fowler and The Yawning Crevasse of Doom

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

I took some notes from a great keynote at QCon recently (which was really excellent by the way, more later), but never polished them up. So much for live-blogging…

For those of you that don’t know him Martin Fowler is a bona fide agile rock star – a practitioner steeped in practical lessons to improve development and business alignment.  His partner in crime in the QCon keynote was Dan North (currently building out a theory of behaviour-driven development). The double act was hardly Laurel and Hardy slick, but both guys gave great insights about effective software development cultures and worked well together. Hopefully I have captured some of these insights here. If you’re in a hurry just read the bold.

So what was the keynote about? The Yawning Crevasse of Doom, signifying the gap between software development and business.

The biggest problem we have in software is communications between the business people and the developers.” Amen, brother.

“We are used to seeing and hearing about big IT failures, but often the communication gap is in small things, delivering things that aren’t very useful.” Tell it, Martin!

Why Ferries Don’t Cut It

Fowler gave a suggestion for addressing the crevasse, based on two different ways of looking at the world – if you want to cross something you can use a ferry or a bridge.

Often we use intermediaries when we try and encourage a dialogue between different communities, such as the much-talked about (and seldom found) “business analyst”.

The analyst plays the role of ferry, carrying traffic from one side of the divide of the other. “Because of course, you never want business people to talk to developers… because they are hairy, smelly, and talk technical babble.”  😉

But argues Fowler “Any profession has jargon”. What is more –  

“Ferries don’t provide much bandwidth.”

A bridge, on the other hand, “offers direct communication between business and technical people. It allows rubbing together of different skills.”

And besides, said Fowler, if you’re going to cross a crevasse “its easier with a bridge than a ferry…”

Proximity, Serendipity and the Java Printing “Requirement”

Fowler then told a story that explains exactly why it makes sense to have techies talk directly to business people, but also points to the variance between “requirements” and real value, between requirements set in concrete, and those that really map to business needs.

The business person was adamant they needed new software, because the Java-based system they had ordered didn’t offer the right level of printer support. The techie who came to the office was intrigued to know why printer support was so important.

The user explained .. “Well, we need to be able to get a print out from that system there so that we can then input the data into that system over there.”

Developer then says… “Ummm. are you sure you need better printer support? We could just build a script to move the data from one system to another.”

“You can do that???” asked the user, surprised…

So much for “requirements”. And the moral of the story?  “A new requirement can come from a conversation.”

Agility meets NLP

Then Dan North took the reins, and introduced a useful concept, seemingly from leftfield – that is, Neuro linguistic programming (NLP). He explained that users and techies tended to program themselves to deliver poor outcomes.

The business person has this in mind. “You won’t deliver what we want. Even after months of negotiations.”

Techies meanwhile are thinking: “We know better than you, so we’ll overwhelm you with technical details.”

One way to overcome this barrier is to make design decisions later in the process – rather than thinking through every potential scenario and developing accordingly, only set things in stone once they are needed. “We dont need to make the decision now. make it when we need to. Its easier.”

So how can the two communities communicate more effectively? Bring. Teams. Together.

DN: i start thinking about the business analyst as bridge-builder

MF- Its about caring about whether the whole thing works. and motivation… if you have direct contact with the people that will use the system thats a hell of a lot more fulfilling.

DN: Who here has been on a project they know is doomed? (About half the room put their hands up. I expected more). 

MF – “Get two [equities] traders to come and do their job sitting in the same place as the developers. The traders start to realise the developers were caring about what they were doing.”

Seeing highly motivated people in action tends to rub off on other people, even if they are motivated by different things.

Summary Points, DSL and Object Theory

Point 1 – Prefer bridges over ferries

Point 2 – Understand how programming languages affect communication. Try to make the language as readable by the business expert as possible (Fowler didn’t use the phrase “view source”, but its v applicable). Even if the business person doesn’t fully understand the computer language, they can kind of see how it fits together, and more importantly feel a spark of recognition: “Oh – that takes some data from my invoice!”

Fowler believes in Domain-driven design, and the corrolorary domain specific languages (DSL), because he beleives they are more effective in spanning the crevasse. “Create a ubiquitous language, where he names of the classes and how they are combined matches the business conversation”.

“Its why i like objects. People can have an understanding of what’s going on.”

I dont assume business people will sit down and program in them but whats important is they can look through rules and review them and say ‘that’s not right’ is very valuable.”

Sounds a bit like thingamy doesn’t it? Perhaps Martin should be talking to Sig.

Fowler explained that his theories are based on real practical experience.  “I have been involved in building a data model across the UK National Health Service. But models are better if they are local, it’s better than to try and build a single model, which is too complex or too abstract. Contextual is the more straightforward and effective way to go.”

Point 3 – Fowler also suggested rather than build a single data model a better idea was to pass data on, using “classic iterative planning.”  Doing  so means that demos and prototypes can use real data, as opposed to mocked data, which again makes development much more real and compelling to business people.” [Regulatory Demands for anonymised data notwithstanding of course.]

Potshots at SOA

MF: “The problem with SOA is it means lot of different things to different people. In many organisations it means we’re hopeless and overweight as an IT department. but we’ll reorganise and become more effective. What does the business hear, in that case? A Peanuts-style “whah whah whah whah whah whah”. That area of SOA leaves me v cold and v worried.”

DN: Better to focus on stories, lets use information in tiny nuggets…

MF: At Thoughtworks the whole idea of useability is written into the process. Human beings are squishy, random and so on. From that comes the idea of “lo-fi prototyping… dont make it look too polished or they will say roll it out now.” Nailed. 

Dan also suggested software could learn from the production process behdind the movie industry – film all the scenes on the island at the same time. Dont keep going back to film a new scene at a location you’ve already been to.

MF – the best requirements come after the feature is put into production. Are people doing funky stuff with the application? How can we help them do more of that?

On Done

Two words- enough and done. “i thought we were done”. “we did enough.” 

Testing offers a shared language for “done”. Put tests in place and then done becomes much easier to deal with.

From test-driven, to behaviour-driven, development. Enabling a shared understanding of “done” – what is good enough, in both parties terms?

Get the IT people out into the business (druidstreet?)

The quickest way to destroy your own feedback loops it to offshore your helpdesk. (now that’s a sentiment i know James will agree with).

 

 

disclaimers: I chaired a track at QCon but was not paid to do so.

 

7 comments

  1. “We know better than you, so we’ll overwhelm you with technical details.”

    Not sure about that. Let me tell you why.

    “One way to overcome this barrier is to make design decisions later in the process – rather than thinking through every potential scenario and developing accordingly, only set things in stone once they are needed. “We don’t need to make the decision now. make it when we need to. Its easier.””

    I keep saying this, but the idea of deferred decision making does not fly under orthodox commercial arrangements, especially fixed price. FP demands decisions are made up front and the customer scope is tightly controlled. I don’t agree it’s a good model, but the two extremes, agile and bduf exhortations do not produce results under FP. It’s a pity someone wasn’t there to ask Fowler about this, because he damn well knows agile and FP don’t mesh.

    The biggest problems in IT delivery are contractual, not communicative. If you want agile development you need agile contracts (ask Cote’ if you don’t believe me). The models that seem to work are VC style rounded funding – more project money is realised on results – yet most governance/compliance process mitigates against that work style. There’s all this this talk about aligning IT with business as if IT held the burden of responsibility and didn’t get business, but seriously how many business stakeholders get delivery dynamics? I say the technical tribes have a far greater understanding of project dynamics whereas much business decision making and contracts are utterly naive and optimized for project failure. As a technical person, it’s very very frustrating to be set up to fail; it’s even more frustrating to see an utter lack of understanding as to how contract structures drive projects. It’s problem number one. Why is no-one talking about this?

  2. Great post – I love the bridge / ferry analogy!
    I think that if you want to “Create a ubiquitous language, where he names of the classes and how they are combined matches the business conversation” then you can just use a business rules management system. They work, they let you write business-friendly logic and they mostly support ways to build templates that let business users manage some of their rules. This helps close the gap between the different perspectives of IT and the business (about which I have blogged – http://www.edmblog.com/weblog/2005/08/different_persp.html) and solve one of the major problems with (for?) programmers (http://www.edmblog.com/weblog/2006/11/the_problem_wit.html).
    JT
    http://www.edmblog.com

  3. Are business rules a bridge or a ferry?…

    James Governer had a great post today – On Agile, IT-Business Alignment, Martin Fowler and The Yawning Crevasse of Doom talking about a presentation by Martin Fowler and Dan North. There were some wonderful comments in it: The biggest problem…

  4. “Any profession has jargon” – I had a quite discussion one day with a winemaker and a viticulturist – they both out-acronymed me easily …

    I agree with Bill about the contractual difficulties – waterfall survives because it covers more arses – Agile exposes too many dickheads for the corporate machine to be comfortable with it.

  5. In a word: fraud ( or corruption ). Anyone who tracks current management strategy books knows that the trend du jour is on the emphasis in on opening the budgets, pushing the decision making down to the front line users, letting them set the case for funding — but that’s NOT what is done. Why? Well, the auditor ( or xbrl ). What if your industry is built on bribes, kickbacks, corruption in general. What if everyone in industry knows it — but noone says it outloud. Ever try to build a UML diagram with a placeholder for graft? To oversimplify, there are only three impediments to a more mature geek-biz user parnership: 1) C-Suite full of greed-head immorals worried about short-term stock price driven targets — long-term business viability be damned; 2) there is no standard business process; 3) the standard business process involve illegalities. Why do you think so many US businesses are choosing to go private at just the moment SOX is being understood well enough to actually be effective. Why is it the US biz news and politicians say “healthcare is too expensive” but never follow it up with “well, I wonder where the money is actually going now?”

  6. You or your readers may be interested in this blog all about agile development:

    http://www.allaboutagile.com

    In particular there is a description of 10 key principles of agile development irrespective of which methodology you may be using:

    http://kw-agiledevelopment.blogspot.com/2007/02/10-things-you-need-to-know-about-agile.html

    And there’s also an agile development forum “all about agile” for further discussion with peers:

    http://www.groups.google.com/group/allaboutagile

    I hope these resources are useful.

    Kelly Waters
    http://www.allaboutagile.com

Leave a Reply

Your email address will not be published. Required fields are marked *