Archived entries for Agile

Thinking inspired by the Agile UX retreat

In the quest to get agile and UX to get along better, and following successful retreats in the US, last weekend Johanna Kollmann brought together a bunch of agile and UX folk for an Agile UX retreat in London sponsored by.  Giving up a weekend was hard, but was worth it, meeting a great bunch of people and sharing thoughts and experiences from the agile and UX camps.  So what did I learn.

Rethink what we do

Coming out of the retreat it is clear that the way we do UX today needs a fundamental rethink.  As UX professionals we have fought long and hard to gain credibility and traction in organisations for what we do, but we need to be ready to evolve and embrace the changing world around us.  A world where IT no longer needs to have detailed specifications signed off before development start.  We no longer have the need (or the luxury) to do the up-front research that we are used to doing.  We no longer need to sign-off detailed wireframes before handing them over the fence to the developers to implement.  Software today really is soft.  It is more about creativity than engineering (see below).  The serialisation of activities is inefficient and wasteful.  It is time to ask how do we focus upon doing what is needed and when, working in parallel and infecting the whole system with user-centric thinking rather than siloing it into the upfront design.  This after all is what systems ergonomics is about; a forerunner to UCD that we know today, thinking about the macro (a broad system view of design, examining organizational environments, culture, history, and work goals) as well as the micro (fitting the task to the human).

But I am digressing from what I wanted to blog about, the Agile UX retreat.  Some key takeaways for me included Anders Ramsey’s analogies to the restaurant and the theatre.

Thinking analogies

Think of a restaurant.  We have the kitchen, the back room world that is focussed upon delivering consistency of servings.  Everything in the kitchen is utilitarian, serving the purpose to meet this goal.  At the front of the restaurant we have the dining room where the dishes (of consistent(ly good) quality) made in the kitchen are served.  The dining room is all about the ambiance.  Quality here is far more subjective, but a successful restauranteur will be as passionate about the dining room as she is about the food that is cooked in the kitchen.  This is the way that software is all too often built, with the kitchen and dining room being separate entities, however the way they are organised, paid for and owned, there’s little communication between the two.  To quote another Ramsey, Gordon, it is a Kitchen Nightmare.

Anders’ second analogy to consider was the Theatre.  An overly simplistic representation is that the director starts with a script.  From the script he iterates the production.  The producer’s role is to provide the director with what he needs to make the production successful.  Just be ready for the premiere which is on a fixed date.  In the lead up to the premiere the director assembles the cast, the crew and they rehearse.  They’ve got a strawman plan to work from – MacBeth, but how they implement it will evolve according to the stage, actors and artistic direction the director wants to take.  The producer does not care how or when they rehearse, she is only concerned with the success of the end goal.  As they rehearse they increase the fidelity of their performance until they premiere (go live).  but even then they are not done.  They are happy to accommodate changes to the performance, and if something different happens that clearly delights the audience they will happliy incorporate that into future performances (releases).  Sure, the audience is seeing a performance of Shakespere’s MacBeth, but it is a unique performance that has taken the initial plan and evolved as it has been created.

And so should we approach software development.  Not as an exercise in engineering, where our raw materials are fixed and highly stable, but as a creative artform, where our iterations are rehearsals for the premier and ongoing performances.

Thinking tensions

I’m sure there are more, but some examples of tensions that emerge when we try to work together:

AUX promotes rapid open communication and sharing but designers fear sharing.  (They worry early designs will be seized upon before they are ready)
AUX promotes visualisation and use of walls but corporate policies prevent this
AUX promptes doing just enough, just in time but a legacy of deliverable expectations gets in the way (research is rarely bought by the developers who will ultimately consume it).

Thinking people

At the end of the day, success comes down to people.  Agile zealots have done Agile no favours when they bang on about business value and see anything other than code as waste.  Good product design needs vision, it needs research to ensure you are building the right thing for the right people.  No one has the right to tell a UXer that testing ideas or building a prototype or undertaking research is waste if it is right for their context.  But it doesn’t need to take the time it does today.  The UX community needs to get out and spend time with the development community and understand how software is built today.  UXers need to start seeing developers as partners rather than consumers of what they do.  What if we aligned our teams around the products we build rather than the functional silos that the roles describe?  Bringing agile and UX together is more fundamental than arguing about the process (one iteration in front, washing machine cycles etc), it is about fundamentally changing the way we build software; see it as a team activity that works collaboratively rather than a factory production line with process gates and separation of responsibility.

More on the #auxretreat twitter feed

Vision, passion and personal investment

Something that is common with the start-ups I’ve been involved with, and stories of entrepreneurialism you can read is the passion of those involved.  They have a drive and desire to succeed, backed by enthusiasm and belief for the product they are building.   More often than not, they are personally invested in the project; maybe it is a problem that they feel needs addressing (Dyson), or an opportunity in an industry they are familiar with. It almost always it goes beyond just a job, it is a hunger to bring change and make a difference.  They have a vision, it what drives them, yet they are willing adapt the original vision and move with agility as circumstances dictate.

FlickR started its life as a tool in a role playing game.  The game was not successful and ultimately shelved (fail fast) with the photo sharing capability being developed; the team realised where the value was rather than sticking to a failed big up front plan.  If you go back in time to 1999 and look at how google described itself:

Google Inc. was founded in 1998 by Sergey Brin and Larry Page to make it easier to find high-quality information on the web.

Nothing there about browsers or phone operating systems or word processors or spreadsheets.  Twelve years to go from a search engine to the Google we know today.  Place that lens over most enterprises and how have they managed to adapt to the changing world?  I know of several enterprise projects that are three plus years in, (that’s a quarter of Google’s life) and have still yet to start delivering value.  You don’t get that with start-ups, or places where vision, passion and personal investment drive the product strategy (thinking Apple and Steve Jobs for example).

I’ll lay the fault at Enterprise Culture.  Silo thinking and career progression through the ranks.  So an individual is personally invested in delivering documentation that specifies the system.  When she delivers these she is done.  What happens next is someone else’s problem.  Reward is rarely for delivering the overall vision, why should it?  How often do all stakeholders involved in a project have a strong grasp of the what’s and why’s of what they are doing?  They are only rewarded on the how they deliver the fragment that they are responsible for.

When IT becomes a supplier rather than a partner, no-one has ultimate responsibility for delivering a coherent holistic vision, it becomes a contractual relationship rather than a passionate obsession.  Funding projects is all to often a charade and a nonsense.  The business submit their funding requests (a line item for a potential project) for the forthcoming financial year in the autumn / winter.  Budgets are finalised in the Spring with the new financial year and months have elapsed due to internal budgetting and accounting formalities rather than the ability to respond to the market.  Contrast that with the start up model with seed funding to get started and if the projects shows viability second round funding follows.  If the project is not viable it is suffocated before wasting cash.  (There are interesting perspectives on this leaner model at Beyond Budgetting).

I wonder if in these lean times we are going to start seeing lean thinking applied to enterprises and a start-up culture being nurtured.  There is certainly a growing interest in agile, beyond the practitioners and from C level executives.  But agility in software development is only the first step.  To be really successful it needs to spread through the whole organisation, not just paying lip-service to the word “agile”, but devolving responsibility to individuals and collaborative, cross-organisation teams who can share the vision, passion and are personally invested in getting the right quality products to market at speed.

Tractors, nuclear powerplants and the bleeding edge

It is common for organisations to select a major technology leader (such as IBM or Oracle) and ride their product development cycle.  On client I worked for stated that they would:

“not follow a ‘best-of-breed’ approach, but rather select a major technology leader (IBM)… This means we explicitly seek and accept the “80% solution” rather than trying to optimise for each and every possible requirement. …Shortcomings will be made explicit in order that we can escalate with IBM, and influence their product strategy”.

Influence the IBM product strategy.  Good luck.  This one-size-fits all approach to technology maybe appealing on paper, and certainly has its benefits, you recruit a certain type of developer who has skills in that technology stack, if you are big enough your buying power may get a small voice in future releases that you will pay through the nose for.  But is it the best approach for the business?  A colleague, Stuart Hogg, takes three metaphors for enterprise IT.  The tractor, the nuclear power plant and the bleeding edge.

The tractor. This is the technology that keeps the lights on.  It is commodity software, it is the HR system, email, intranet etc.

Nuclear powerplant. This is the (generally bespoke) mission critical software that drives the business.

The Bleeding edge. This is the platform where you do cutting edge stuff, test and learn.  The ideas may one day be migrated to the nuclear powerplant.

All too many organisations get confused between these three models, loose sight of where they should be investing and plump for a one-size-fits-all technology to do all three.  Thus we see tractor technology trying to do the bleeding edge (Is it possible to innovate at speed with those Big Enterprise Solutions?)  By trying to combine utilitarian computing with strategic and speculative innovation, using the same skillsets, timeframes, processes and models, IT will never truly deliver the value for which it is capable.  Another ThoughtWorker, Ross Petit reiterates this point using a banking metaphor of utilitarian retail banking and speculative investment banking. He divides IT into “utility”, around 70 percent of IT investment (tractor and the nuclear powerplant); and “value add” the other (bleeding edge)30 percent.   Like other utilities such as electricity and water, ‘you don’t typically provide your own. You plug into a utility service that provides it for you’.  In IT that means SAAS and outsourcing and taking a strategic decision to differentiate between the different functions that IT performs.  He concludes:

Separating utility from value add will make IT a better performing part of the business. Because they’re comingled today, we project characteristics of “investment” into what are really utilities, and in the process we squandor capital. Conversely, and to ITs disadvantage, we project a great deal of “utility” into the things that are really investments, which impairs returns.

As a business function, IT has no definition on its own. It only has definition as part of a business, which means it needs to be run as a business. The risk tolerance, management, capabilities, retention risks, governance and business objectives of these two functions are vastly different. Indeed, the “business technologist” of value added IT needs a vastly different set of skills, capability, and aptitude than she or he generally has today. Clearly, they’re vastly different businesses, and should be directed accordingly.

Separating the utility from the value add allows us to reduce cost without jeopardizing accessibility to utility functions, and simultaneously build capability to maximize technology investments. Running them as entirely different business units, managed to a different set of hiring expectations, performance goals, incentive and reward systems, will equip each to better fulfill the objectives that maximize their business impact.

Don’t blue-tack the walls

Story wall picture

Agile is messy.  It is untidy; it clutters desks and dirties the walls.  Progress is not hidden in spreadsheets and gant charts in Microsoft Project.  No, it is on the wall.

Walls are central to agile.  Indeed any visual thinking process that uses ‘information radiators’ as central to communicating information (rather than circulating documents) will make use of walls, sticking cards, posters, post-its, stuff up for all to see.  When you start to use walls, good things happen.  Other people become curious, they walk to wall, they look and see.  When you have wireframes stuck to the walls they go arrrr!  that’s what you are building! There is a palpable excitement, a buzz to organisations who start (and continue) to use walls.

That is, until the detractors come along with demands to tear down the wall.

These usally take one of three guises.

The first, predominantly found in financial services is compliance.  Increasingly clear desk policies are being rigorously policed to ensure documents are not leaked between departments and this often finds its way onto the information radiators.

The second is facilities management who seem to think that their clean whitewashed walls are delivering greater value to the business than anything untidy that is stuck on them. Their knee-jerk reaction is to ban the use of blue-tack and get a whiteboard permanently drilled to the wall to hold the cards.

The third and final detractor is the IT manager who is dazzled by technology and insists on using technology to solve the problem.  Out goes the card wall and in comes a plasma screen with an excel spreadsheet displaying the cards.  This completely misses the point of the wall, of the human element.  Richard Durnall tells the story of his experience at Ford where they employed a technology based process for managing inventory at the plant.  ”Unfortunately this process had a problem; it was rubbish.”  He contrasts this tech-centric system for that employed by Toyota:

When the guy on the line started a new box of parts, he’d take a card off the top and put it into a letterbox. Every 10 minutes or so another guy would drive around in a little truck and collect up all the cards. He’d then go to an office where he had a card sorter connected to a computer. He’d put the cards through the sorter, which at the same time sent messages on usage to the supplier network, and then he’d go and fill up his truck based on the cards that he had, returning the cards to the boxes.

Managing inventory with cards.  Using paper in a paperless office; not everybody gets it.

Knowing that you will have detractors to the paper walls is a first step in managing expectations and getting everybody on board.  Talk to compliance, facilities, and let them know what you are doing.  Ensure an executive sponsor can override any petty bureaucratic blockers.

And before you know it, the information radiators will have moved out of IT and into the way the business manages its tasks as well.

Hey usability dude, join the devs (Usability rant part 3)

The last couple of posts here and here have been critical of boutique usability companies that offer user testing services. In the final part of my rant, here’s an alternative approach.  Seed into the development teams someone with a usability background (probably with a psychology degree), someone who can create as well as critique.  Align them to Marketing (or ‘the business’) but physically locate them in IT.  To be successful they must be a passionate advocate for the business vision (hence business alignment), but unless they have a daily relationship with the developers (on hand to support immediate design decisions) they will fail.  (The only way to do this is for them to be part of the development team, same building, same floor, same location).

It is better than they Eschew the formal usability testing process for more informal guerilla usability testing.  In an agile project treat this as akin to the showcase.  Testing sketches and wireframes prior to the development iteration, and putting working software when it has sufficient UI coherence in front of users and well as business stakeholders, with the developers as observers in the process.  One person can cover multiple workstreams.  This is a far better use of a limited budget than commissioning ad-hoc reports too late in the day.

Petition

I’ve written in the past about the government’s abysmal track record on IT development.  I met with the local MP to discuss the issues but he didn’t really get it; he sent me away to write a policy paper for him which I really had time for…  So good news that someone is doing something about it with a petition on the Number 10 website.

In his recent update on the progress of the petition, Rob Bowley mentions the Rural Payments Agency project.  I can’t attest to either have been an ‘expert’ or to have had a salary anything near what he mentions, but I was a consultant on that project so nod in informed agreement.  That experience gave me a benchmark to compare ‘bad’ ways of going about an IT project to compare with the ‘good’ world of lean and agile that I now inhabit.

Please sign the petition.

We didn’t build it because the business didn’t prioritise it

Agile software development is inherently democratic.  Choice over Prescription could be included in the Agile manifesto.  We give the customer the choice, the choice to decide what is most important to them, what will deliver the greatest value and build that first.  We do not prescribe that they must build a complex framework first- the software will evolve, You ain’t gonna need it (Yagni) until you need it.

The problem with this democracy, with this unleashed choice is that, if you don’t have the right mix of stakeholders, the (agile project) customer doesn’t always know what is best.  They are not always the best people to choose.

There is a difference between domain knowledge and what I’ll call ‘experience’ knowledge.  A banker may know the banking domain inside and out, they can tell you the difference between all the different types of balance and how (and where) they are calculated; closing balance, running balance, etc.  But unless they have done any research with customers, unless they have ‘experience knowledge’, when it comes to  a question such as which balance to provide as an SMS alert, their ‘domain’ knowledge is as good as your common-sense.

Imagine software were a supermarket store.  IT are responsible for the construction of the store, the basic layout, the signage, the checkout, the peripherals.  The business are responsible for what goes into the store, the merchanising, the planogram.  The business imperative is to fill the shelves and shift the product.  They want to spend their money to this goal, anything that does not directly support this will be of lower priority.  That is their domain and they will prioritise that over anything else.  If they could fill the store with nothing but shelves they’d probably be happy.

Now imagine visiting the store.  There’s no carpark, there are no shopping trolleys, there’s no emergency exits.  There’s no ramp for disabled customers.  The shelves rise to eight foot high (with no steps to reach the heights), the aisles are difficult to negotiate because of promotional displays between the shelves.  The business is happy, but what about the customer?

In the agile world, nobody is going to pay attention to this stuff unless it is prioritised.  “Sorry, we didn’t build any shopping trolleys because you prioritised building more shelf space over them”.

This sort of thing happens all the time; functional domain requirements trump experience requirements. Why? Because no-one brings experience knowledge into prioritization and planning sessions.

When stating their choice, your stakeholder wears a commercial hat, they are thinking about their targets and those are based upon shifting product.  They are living in thier operational business domain.  But cold commercials are not what shifts product.  It is the experience that does.  Now go back to the democracy of choice on an agile project.  Who is the ‘business’ specifiying requirements? Is it a balanced team? Is their an experience champion with an equal voice?  Is the voice of the customer recgognised?  If not, isn’t about time you got an customer experience champion onto the team.

About a successful project that was a failiure

On time, on budget, to the scope that was agreed from the outset of development.  A successful project?  Well no actually.  It was a complete failure.

Here is a story about an insurance company with a number of differnet products sold through intermediaries.  Whilst the intermediaries were good at selling single insurance products, they weren’t so good at cross-selling or up-selling other products.  Focus groups with the intermediaries revealed that they didn’t know about all the other types of insurance available through the company.

What if the intermediaries could have a portal where they could access all our insurance products in the same place with customer alerts and sales support prompts identifying further selling opportunities?

From this initial idea a benefits case was pulled together consisting of a product definition and financial projections.  In pulling together the benefits case, the potential revenue uplift numbers surprised everyone.  Signing off the benefits case on the new Intermediary Portal was duly signed off, and the product definition was handed over to IT to build.

Being an agile IT shop, the business and developers sat down together and got their heads around the product definition.  It soon became clear that the challenge was one of “single sign-on”.  Each of the insurance products offered were on a different legacy application that required the intermediaries to sign-on with different credentials.  To bring them all together in a single portal was far harder than the simple problem that the initial product definition suggested.

In pulling together the benefits case, a rough estimate had been supplied by IT. Now it was an in-flight project with an initial list of stories, it became clear that they had significantly under-estimated.   Of the twenty different products that the business wanted on the portal, for the budget the business had set aside would deliver barely four products.

With new estimates a release plan was drawn up.  Release one would deliver single sign-on across four products identified by the business as being most profitable.  All the  sales support tools were de-scoped and scheduled for a third release with the second release delivering single sign-on for the remaining products.

Development started, the business stakeholders worked closely with the developers and the First Release of the Intermediary Portal went live with congratulations all round.  Funding for the next release was lined up depending upon the success of the first release.  But that success never came, take-up was less than expected and the cross and up-selling never materialised.

The proposition to the intermediaries as delivered was flawed; the portal had to be all or nothing, single sign-on across four unrelated products was not compelling to them.  There was no sales support.  The intermediaries thought “so what?”  IT had delivered on the business requirements yet the project was deemed a failure.

This story tells a striking lesson. The project failure was due to a lack of joined-up thinking.  The business and IT both had followed their processes and done the right thing.  The business had identified an opportunity, built a benefits case and had this signed off.  IT had run a model agile project with close engagement with the business.  However whilst both stages of the process were locally optimised, they were done in isolation of each other.  Once the (development) train had left the station both sides were committed to delivering the product portal.  No-one returned to the business case, no-one went back to the end users, the intermediaries and asked whether the cut down scope for the first release would actually be of value to them.  More importantly, IT were engaged too late in the process.  The business had settled on an IT solution to the problem without engaging IT.  Had IT been party to the ideation and visioning process they would have been able to raise the risk of the project complexity earlier on.  Indeed they could have killed the project before it started.

Returning to the initial problem; “intermediaries weren’t so good at cross-selling or up-selling other products… Focus groups with the intermediaries revealed that they didn’t know about all the other types of insurance available through the company.”  The problem didn’t need a portal solution. The issue was one of awareness; almost certainly an off-line marketing campaign would have delivered a greater ROI without the need for IT to build the wrong product.

Agile nursery

My daughter has just started at nursery school.  Daddy, she asked me, do you do show and tells?  Ummm, yes Olivia, we do.  But we call them showcases.  Daddy, when you start work in the morning do you sit in a circle?  Ummm, yes Olivia, we do. But we don’t sit down.  We call that Stand-ups.  Daddy, do you draw pictures? Yes, we do, we call those wireframes.  Daddy, do you play with Lego?  Yes, we call that the lego game.  Olivia.  Yes Daddy.  Do you want to come and work with us?!

A picture tells a thousand words. So prioritize pictures not words

Draw pictures to illustrate outcomes, design the user interface first and use that to prioritize requirements rather than working with written requirements.

In a single image you can convey a simple concept, an idea, a need or a desired outcome far quicker and more accurately than writing it in a sentence.  This is especially so in developing software which more often than not is visually manifest as a user interface.

When we captured requirements in agile, we are effectively conveying a simple concept, idea, need or desired outcome as a requirement.  And we do it in words.  Those slippery things that are so often misunderstood.  Things get really slippery when we try to prioritize those words against each other.  Stories are laid out on the table and the team spend as much time discussing what each story actually means, as giving them priority.  And because they are supposedly independent, you loose the inter-depedencies between them.  Jeff Patton has written some great stuff on this.

So prioritization with stories can be flawed, especially when you are working with a large volume of requirements, say at the outset of a programme of work, and what you really want to do is get an idea of what a first release should be.

Throw out the stories.  It’s too early to be writing words.  Muda.  Create illustrations of widgets and features and functions.  Sketch out on post-its illustrations of the simplest implementation of the concept, idea, need or desire.  On flip chart paper create blank screens that illustrate the interfaces that the requirement will be manifest on.  Identify the stakeholders who will interact with the requirements.  For example the retail website, the operational support application, the finance system.  Now ask the team to stick onto the screens the sketches.

The challenge is to strip back to the minimal functionality that they really need for that first release.    Let them draw extra functionality if they like, but everything must be on post-it notes.  Now pull the post-it notes off, one by one.  What if we removed this? What would happen if it wasn’t there?  Is there something simpler we could do?  Something more elegant?  Is an operational function required to make the website function work? The exercise may be extended with pictures of legacy applications and data elements, again, stripping them back to the bare necessities for that first release.

That didn’t take long did it, and it looks like an initial release candidate. We’ve defined our scope in a way that we do not believe we can cut any more.  Any less functionality would not be a meaningful release.  Now we can get down to writing the stories, focusing our effort on something we are agreed looks right.  We’ve prioritized pictures, outcomes over words; Picture Driven Design.



RSS Feed. This blog is proudly powered by Wordpress and is based on the theme Modern Clix..