Agile – the Rationalism vs Empiricism Epiphany

23-Mar-2018. Just an FYI that I’m currently re-drafting this article with feedback from a couple of colleagues; you can expect some significant changes at some point – all of which should make the article clearer.

I’d like to share with you an epiphany.  I run the risk of it being like a riotously funny party joke, retold later to much less effect: a case of ‘I guess you had to be there’, but that’s seldom stopped me before.

This epiphany is essentially a new way of viewing several things:

  • Waterfall vs agile, and agile vs Agile (big A, little A).
  • Why people often don’t ‘get’ software development; and probably why your developers and project managers have a fractious relationship, especially whenever estimation and deadlines are hot topics.

In short, the epiphany is based in philosophy.  First the recognition that waterfall is inherently rational, whereas agile is inherently empirical.  You then realise that as theories within philosophy they both have roots back in antiquity (Plato and so forth) and have essentially been elaborated and compared for significantly longer than waterfall and agile have been around.  Therefore, we can contemplate agile and waterfall from a purely philosophical viewpoint (without any pretense of ‘brand’ or additional baggage), and we can also draw on significant body of previous philosophical work.

I also suggest to you that there exists a rationalist-empiricist continuum on which each of us are placed – some people are naturally inclined towards one or the other.

Let’s look at this further and see what we can through this lens.

Short Philosophical Primer

Rationalism and Empiricism are both theories within Epistemology – the branch of philosophy concerned with the theory of knowledge:

  • Rationalism is the view that “regards reason as the chief source and test of knowledge”, or in other words, where “the criterion of the truth is not sensory but intellectual and deductive”.
  • Empiricism is a theory that states that knowledge comes only or primarily from sensory experience.

Philosophical literature frequently discusses one in contrast to the other.  One often also sees references to things being ‘a priori’ or ‘a posteriori’.  This isn’t something you need to remember, but it is interesting to note the concept behind these two terms as it’s relevant to our subject and subsequent contemplation:

  • A Priori is “what comes before”, as opposed to
  • a Posteriori which is “what comes after”.

The question (of whether or not something comes before or after) is significant enough that a priori and a posteriori appear in ‘Elements’ – Euclid’s 300 BCE work which served as the model for precise thinking throughout 15th-18th century Europe.

For those of you less well disposed to latin, you might also come across the terms deductive and inductive:

  • A deductive argument is where the conclusion follows from the premise, i.e. via reason.  I think, therefore I am.
  • In contrast, an inductive argument is based on experience/observation; in such cases the argument may be strongly supported by the conclusion but not necessitated by it.

It’s also interesting to note that empiricism is a key part of the scientific method.

So, key takeaway: Rationalism and Empiricism have been around and thought about for ages, and there’s lots we can draw from that.

Is Waterfall Really Rational and Agile Empirical?

If you already ‘get it’, then you can probably skip this section.

Waterfall, as it is practiced in an Information Technology related project delivery context, is a sequential approach.  Typically it consists of phases such as analyse, design, build, test, and so on.  Each phase informs the next: analysis informs us what the problem is, based on this we design a solution, based on this design we implement the solution, and so on.  Only at the end, when the solution is complete, do we see it working and finally see how well it addresses the original problem.

In other words, the basis for the solutions design and implementation is rational thought – what we can deduce.  It’s essentially theoretical.

The planning of waterfall projects is also based on rationalism; at the outset, estimations are made as to how long each phase will take, how much it will cost, who needs to be involved.  All of this happens in advance, and is frequently updated.  Should reality hit the project, the team is forced to ‘re-baseline’ – delivery schedules, resource estimates and costs are all calculated, based mainly on a rational thought process.

Agile, again as practiced in ‘IT’, is based on an empirical approach where work is done and the results evaluated before proceeding.  At the beginning of an agile project effort is spent working out an initial prioritised list of problems to be solved, a small chunk of this is then worked on by the team, the results are evaluated and corrections made – corrections in terms of the base assumptions and the work/output itself.  In this way the project proceeds, repeating a consistent cycle of delivery and inspection.

The planning of agile projects is also based on empiricism; teams typically provide relative estimates based on the size of previous work that they have already done, and in this way the estimates are evidence based.

Agile Explained

As I wrote previously, Marty Cagan has a nice simple way of asking people if they are agile:

  1. How soon can you test?
  2. Does shipping out a release mean you’re finished?

At face-value this appears fairly straight-forward, but I think we can go further:

  • Are you driven by what you have planned or what you can prove through experience?

If you primarily “know” a thing because you have deduced it then you’re not being empirical, and therefore you’re not agile.  It’s that simple.

Agile: A vs a; Big A vs Little A

It’s true that in the context of contemporary software development the concept of Agile (as in the big A, as in the Agile Manifesto) is bundled up with additional ideas: individuals over interactions, collaboration, and so on; and whilst these additions clearly add immense value and have made agile more accessible for many, they don’t alter what’s arguably the single most important foundational idea behind agile – empiricism.

Take the agile manifesto and its guiding principles, for example:

  • Individuals and interactions over processes and tools.
  • Working software over comprehensive documentation.
  • Customer collaboration over contract negotiation.
  • Business people and developers must work
    together daily throughout the project.
  • Build projects around motivated individuals.
    Give them the environment and support they need,
    and trust them to get the job done.

Many of these ideas (such as those listed above) are not mutually exclusive with waterfall; any group of people using waterfall can still choose to collaborate, be motivated and trust each other.  It’s true (in my experience at least) that we don’t often associate the above with waterfall projects – but that’s inductive, just because it’s often the case does not mean it is bound to always be the case.

Sure, waterfall is based on rationalisation, which is often accompanied by process, requiring tools – but I’d argue that often the use of those processes and tools is often driven by other factors: social norms, people hiding behind process, and so on; it is still possible to put ‘individuals and interactions over processes and tools’ and follow a rational process.

There will no doubt be many for whom these additions are in fact indivisible parts of Agile, and I think that view is fine.  My point is that one of the ways to better understand agile/Agile is to mentally remove all of these additions and conceptualise agile/Agile (and waterfall/agile) from a philosophical perspective based on Empiricism and Rationalism.

We can also apply this lens to a more recent phenomenon, the mainstream adoption of Agile as a product to make money off.  Don’t confuse agile (and the key part: learning from experience and evidence) with Agile (i.e. specific recipes, brands and elaborate constructs).

State of Mind

Thinking about social norms and human behavior brings us to my second key point: the existence of a rationalist-empiricist continuum, and the premise that everyone is somewhere on this continuum – usually closer to one end than the other.

In my view, many software developers that I have worked with are empiricists – in that they have a greater affinity to an empirical way of thinking rather than a rational one.  Conversely, many project managers I have worked with are rationalists – they have a greater affinity to an rational way of thinking.

Are these philosophies, these states of mind, mutually exclusive?  I’d say not.  For a start this article is itself based on ideas which have emerged through a combination of both.  Furthermore, I can think of many occasions when I have personally used each.

Both are clearly useful tools, and like all tools they are most useful when the correct tool is matched to the problem being faced (not the other way around).  The problem that rationalists are frequently confronted with in a software project is that the nature of software development is inherently empirical.  Or to be a little more precise, the nature of software development when applied to solving a particular real-world problem, is usually inherently empirical.

I say ‘usually’ because I cannot say for certain that all such problems are categorically empirical.  If we stretch software out to encompass IT, and therefore hardware, rationalism becomes more relevant.

We must acknowledge that for a lot of people, especially the senior executive who’s paying the bill, the basic question of “when will it be ready and how much will it cost” is not unreasonable.  The challenge is how to best answer it – in this regard both Empiricism and Rationalism have their unique challenges.

 

 

Advertisements

Customer Inspired; Technology Enabled – Product Tank Wellington MeetUp with Marty Cagan

The Product Tank Wellington meetup ran a really cool session recently called “Customer Inspired; Technology Enabled” with internationally recognised product guru Marty Cagan.

As you can imagine, someone of Marty’s calibre provides a lot of great wisdom.  Some reinforced or reinvigorated stuff I think I already knew, but much was also new.

Here are my old-school hand-scribbled notes (2 pages) if you’re interested (or neglected to take your own, tsk tsk): Customer Inspired, Technology Enabled with Marty Cagan – 12-Feb-2018 – Adrians notes

Note to anyone doing architecture: broadly speaking, anywhere it says “product” I think we can swap with “solution”.  Which is why I’ve tagged this #ArchitectureInTransformation – architects need to (at least) be mindful of this stuff.

Also, in this context  when we talk about “product” we mean a technical product of some kind (i.e. software/technology related) – not something like floor polish or mint scented vacuum bags.

Key Takeaways and Gems

Asking customers what they want

If you’re looking for where to take your product, the short answer is “don’t”.  Instead, invest your time in asking customers about their problems.

You should not rely on customers to tell you about which direction to take your product, or what new features or capabilities to add, because:

  1. They don’t know what’s possible – they generally aren’t technologists. (The clever technologists should be the people on your team).
  2. Great (new) ideas have to be discovered.  For me personally, Marty was making a strong connection to empiricism – in that you can’t rationalize your way to a “new” idea.

The way to flip the question is to be to ask your customers about things that they do know about: their problem, their constraints.

Another reason why you can’t reliably ask customers what they want is because they themselves don’t actually know what they want until after they’ve seen it.

Engineers

Marty spoke repeatedly and at length about the importance of involving engineers in the product process.  He cited several cases where new successful products had emerged from the techies – essentially from random ideas they had on the fringes of a project, where their inventiveness (based on their deep understanding of the technology) led to something entirely new.

He suggested giving developers time for discovery – something in the ballpark of half an hour a day.

Overall his message was clear:

  1. Work with strong engineers that are passionate about your vision.
  2. Do not shelter them – expose them to the full business context; expose them to customers.
  3. Provide them with constraints, not requirements.

Requirements First?

Speaking of requirements (whilst talking about agile) he neatly flipped the old Analyse > Design > Build model around:

  1. Knowledge of the technology…
  2. > enables design…
  3. > drives desires/needs/requirements

Essentially this comes back to the same point posed by “asking customers what they want” – if customers don’t know what is possible then the requirements will always fail to get the most out of what the technology is capable of.

Are you Agile?  Really.

I had to laugh – Marty’s position on Agile was that it’s a no brainer, like why are people even asking this question.  And it wasn’t just the words that gave me a wry grin, it was also his tone: dry, cuttingly sardonic, with a hint of tactful incredulity and thinly veiled loathing.

Point is, there’s a difference between thinking you’re agile and being agile.  Try these two refreshingly straightforward questions:

  1. How soon can you test?
  2. Does shipping out a release mean you’re finished?

The correct answer to #1 is that if testing is done at the end, it’s too late; if you’re agile you’re testing as early as possible and not just at the end.  If you only test at the end, then that’s where you are putting all the risk.

#2 Is a really key one; it’s about the difference between releasing something and solving a problem.  The common misconception is that when you’ve put out a release, you’re done; but whilst getting stuff delivered is great, you’re only actually “finished” if you’ve solved the problem you set out to solve.  Shipping out a release merely gives you an opportunity to see if you’ve really solved it.

So, if you iterate – great; iterate, test and keep shipping until your target problem is solved.

Roadmaps

Much of Marty’s talk sounded like heresy… in that it would certainly sound blasphemous to many people I can think of.  His discussion on product roadmaps was no exception.

Roadmaps tend to assume that 100% of the ideas on them are good ideas.

The reality is somewhat different.  Marty cited Google: in their experience, for every 10 ideas they have (on a roadmap) only 1 tends to pan out.

Bad use of roadmaps relate back to the second point in “are you agile?” – in that people sometimes confuse delivery with completion.  People walk around with roadmaps and release schedules and focusing on getting stuff delivered.

So if that’s all wrong, what does right look like?

Essentially it comes back to having a strong product vision.

My notes on this part of the talk are scarce – a sign that I was either too deeply engrossed to write, or I agreed with what he said and felt no need to note the obvious.

In either case, the key takeaway for roadmaps takes heavily from the points above: focusing on the product vision – which I think we can safely extrapolate to:

  1. Understanding the customer and their problem.
  2. Giving your teams constraints and time to come-up with the unexpected.
  3. Iterating until solved, not just shipped.

Roadmaps and Agile

From a philosophical perspective, roadmaps are rational – they plan out what is to happen; whereas agile is empirical – it learns from what has happened.

Roadmaps attempt to answer the fundamental questions: how much will it cost, and when will we get it?  And as Marty acknowledges – that’s not an unreasonable thing to want to know.

Agile can answer these questions but only once you’ve done enough work, to provide enough meaningful experience, on which to base a forecast.  Marty elaborated on that theme in terms of a “high-integrity commitment”.  I don’t have any notes on that so allow me to refer you to Marty’s blog:

Teams

  • Measure teams as a whole; not in terms of “functional” teams, but product (solution) teams.  (What does this mean?  Think about the difference between “shipping” and “solving” and you’re pretty much there).
  • Provide teams with a competent and confident product manager.

Product Managers

The final subject I want to cover is around product managers – specifically good ones; it’s important to me because it’s highly relevant to what I see as a architect in solution-architect / domain-architect / enterprise-architect / consultant space.

Marty placed a lot of emphasis on the importance of having a good product manager.  For him the product manager is like the “CEO of the product”, where CEO refers to the calibre of the person in that role, and because good CEO’s know all the elements of their business.

Product managers need to be smart, creative and persistent.

The product manager should must have a deep understanding of:

  1. The customer(s).
  2. Industry trends.
  3. How your business works.

The reason you want a good product manager is because this is type of invaluable knowledge and wisdom they’ll bring to your team, and to your product.

How to Introduce Yourself as an IT Architect

If, like me, you are an “IT” architect, you’ll know that describing what you do to other people is a challenge… even to people who have some idea about information technology.

It’s definitely not like being a fireman.

I think where we go wrong is that we try to explain the totality of what we do, which is too much (too broad, too complex, too nuanced).  Instead, perhaps we should just pick one thing and put it in a context people will understand.

Let’s break it down.  Broadly I think architects do four things:

  1. Create visions
  2. Craft decisions
  3. Technical leadership
  4. Be wise gnomes

Creating visions is all about the ability to paint the metaphorical big picture.  It’s the big picture that helps people understand where we should all be going, and why.  Sometimes the vision is ours – we discover it; other times the vision comes from others – they simply need help crystallizing it and then communicating it.

Crafting decisions is about getting decisions made.  Sometimes it’s about guiding and facilitating people so that they make the necessary decisions, in a logical and sensible way;  other times we need to make and assert decisions – to break an impasse, fill a void, or provide a specific direction.

Technical leadership is about making sure the thing is well made.  It’s dealing with the nuts and bolts, widgets and gizmos.  It’s not just limited to which tools should we use and how should we put the parts together, it also extends into how we should structure our work so that complexity is managed.

Wise gnomes have been there before.  They’ve done that.  They have first-hand knowledge of where the traps are and experience in dealing with them.

Which of these resonates with you the most?  For me, it probably depends on my most recent project, so if someone asks me what I do I’d mentally gravitate to whatever was most front-of-mind.

Explaining it to someone

  1. Pick one thing that you do (i.e. one of the four above if you’re stumped).
  2. Put it into a context the person will relate to.

Putting it into context could mean using the metaphor of someone they know, someone with qualities that have some relevance to what you do:

“Basically I’m like Gandalf, I stop the team getting themselves into trouble, support through mentoring, and take the lead in making hard decisions.”

“I’m like the ‘Spock’ of our team – when something complicated needs to be solved I’m the go-to person for logical advice and to make sure we’re not going to break anything.”

Alternatively the context could be based on something you do:

“I’m like the translator that helps the techies figure out what people want, and I help people understand what the technology can do.  That means I usually get stuck in the middle and have to work out the hard problems.”

“I’m like the navigator of the ship – people have a vague idea of where they want to go but need help deciding exactly where and how to get there.  That’s kinda what I do in terms of choosing which technology we use and how we want to use it.”

“Oh, so you design computers?”
“Sort of, I design systems for [system purpose or name of organisation] and help make the big decisions like which technology we’ll use.”

I’m an IT architect

Do you start with “I’m an IT architect“, or something similar?  Personally I do.  Most people know a little about a regular (i.e. building / civil engineering architect) and that context is useful for helping to explain what is it you do.

Some of my peers think architect is becoming a dirty word in some circles – I hope that’s not really the case.

 

Remember the Audience

Finally, the important foundation underneath all of this, is to tailor your response to the audience – what background information you think they might already have, and how you want to come across.

You’ll notice that in the examples above I’ve largely avoided talking about the specifics of what we do, this is because successfully leveraging those topics requires the audience to already know what you are talking about.

I think the key is to just get the conversation successfully started – stick to small easy concepts, once that’s achieved you can elaborate further or add to it with additional information.

 

 

 

WSAF Meet-Up on the “Brand” of Architects & Architecture

For those who couldn’t make this meet-up, here’s a summary of what was discussed (or at least some of it, it was one of those organic discussions that took it’s own path, and I don’t have a lot of notes as I was too busy actively listening or blabbering making insightful contributions).

The basic question was around: how are architects perceived, and what is our “brand”?  We tried not to focus on specific types of architect too much (i.e. enterprise vs solution), although we tended to focused on solution architecture.

This raised initial discussion around:

  1. What does it mean in the context of Agile – which we decided to come back to, but then didn’t.
  2. Distinguishing between architects and architecture – the latter will always be needed regardless of who does it and what they are called.
  3. The correlation between governance and architecture – where there’s a lack of good governance there is often a lack of good architecture or appreciation of architecture in general.

This led to a significant discussion around “can we define the benefits of (solution) architecture, and the risks of not doing it”?  Whilst this is hardly a new problem it is one that we really need to put to bed.  The obvious challenge is not merely to define it, but to do so in a way that is broadly and easily understood.

We also discussed what would logically follow next – assuming you had the ideal definition, what would you do with it ?  But unfortunately the conversation took a turn and I don’t have any notes.  From memory, there weren’t any major epiphany moments arising directly from this.  Sad.

People Who Do Similar Things

The topic then came up of comparing what architects did with people who do similar things.

One of the attendees mentioned her brother, whom is effectively an architect but doesn’t like to call himself one, but unfortunately we didn’t (or weren’t able to) dig into exactly why that was.

There was also a connection made between the role of a program manager and an architect.  Personally I can see how this might be the case in terms of seniority and leadership, but in other areas the correlation is much less clear.  Perhaps it is such that in some cases a program manager takes on some architectural leadership responsibilities when there is an absence of architects or effective governance.

Later on, this broad topic came back with a comparison to service design.  The widely agreed takeaway was that architects should add this to their general toolbox, the toolbox we all have of skills and ideas that we get from various places but don’t always get to use “for real”.  Service design feels like one of those – something it’s worth knowing a bit about – just enough to be dangerous.

Focus of the Solution Architect: Technical or Business?

We discussed the focus of the solution architect role – is/should it’s focus be technical or business?  There’s no doubt SA’s need a foot in each camp, but is one aspect inherently more dominant than the other?  And because this is about brand, i.e. perception, I asked people to consider not just how they see this for themselves, but also how they think non-architects perceive it.

I asked everyone to think about a scale from 0 to 100, where 0 was all business and 100 was all technical.  I then asked them to silently (in their own heads) come up with the answers to those two questions.  I then drew the scales up on the board and invited people (without changing their minds) to put their scores up.

15-09-2017+5-08+PM+Office+Lens+(1)

As you can see, people see solution architecture as a largely technical role, and their perception of how they think others perceive it is similar but not identical.

It makes me wonder about engineering architects (people who architect buildings, etc) – do they have a similar or comparable issue with brand?  Are they perceived as being largely technical, and is this how they want to be perceived?

It Ain’t What They Call You, It’s What You Answer to

We then got on to names – what do we call ourselves.  Sadly the list wasn’t very long and we didn’t really push past the obvious, but it was an interesting enough starting discussion for a Friday afternoon.

What’s wrong with “architect” – well nothing in my book, I still think it’s a useful term, and I still often compare myself to a building architect when describing what I do to a lay-person.  But that didn’t get in the way of our discussion.

“Digital Strategist” came up, but then we realised that’s probably taken.  Later someone adroitly evolved this to “Digital Capability Landscaping”.

“Principle _ _ _ _ _ _ _ _ _ _” made it up onto the whiteboard, a brave start but leaves just a tad too much to the imagination.  Typical architect, right?  In  my notes I wrote “(domain)”, implying the name of the domain you’re a principle in is the key – but what are those domains?  perhaps it goes back to the technology vs business discussion – do you go for a technology or business domain?

Someone suggested “Technologist”, and “Solution Design Thinking”.

I’m quite proud of one I dreamt up later: “Trade-off Merchant”.

The conversation then took a turn when someone suggested we pull up Google Trends with “enterprise architect” and “design thinking”.  We then played around with other terms.  I must admit I was pleased to see solution architect is still trending upwards. What is Google Trends? see Wikipedia.

wasf - trends

Final Tidbit

Someone mentioned a neat little resource: http://openmodels.org/

“The openmodels.org website hosts the Open Model Initiative, a project to collaboratively develop enterprise reference models for everyone to copy, use, modify, and (re-)distribute in an open and public process.”

The WSAF would also like to thank Middleware NZ for hosting us and providing drinks and nibbles.

Were you an attendee?  Got anything to add to my semi-random collection of notes?  Add a comment 🙂

Try This: Everyone Draw The Architecture – A Retrospective

There’s this really cool idea I read about in Luke Hohmann’s book “Beyond Software Architecture : Creating and Sustaining Winning Solutions”, only I haven’t yet found an opportunity to use it… until a couple of nights ago.

Have you ever been in a situation where: you’ve started working with an existing team and realised that things aren’t quite right?  The way people talk about the solution isn’t entirely consistent, things seem to be going in random directions, maybe they are talking at cross-purposes or even arguing about how things are done?  You might be familiar with this – it’s the kind of discussions you get when there isn’t a consistent team view of what the architecture is.

Luke’s idea is pretty simple:

  1. Get everyone in the team, as an individual (no talking), to draw the architecture as they perceive it.
  2. Once everyone is done, put all the drawings up on the wall and review as a group.

Have a discussion along the lines of “what occurs to you and the team”, and “do you find congruence? If not, why not?”.

The idea fascinates me, but I hadn’t yet had a chance to do it – until I got a chance to speak at the Product Tank Wellington meet-up.  This specific meet-up was basically about architecture, and the intersection with product development.  I wanted to introduce some architecture ideas and get some discussion going around how they perceived architecture in their space.

Here’s the intro slides and brief I gave for the exercise:

Try This Draw The Architecture

Try This Draw The Architecture - brief

It all sounds great, what could go wrong?

Well, I was feeling a little bit flat that day – nothing major but not quite as “on to it” as you’d want to be if you’re presenting – especially when some of the audience are possibly more qualified in some ways to present on this than I am.  During the exercise I walked the floor observing, and after a few minutes we put all the 16 or so pictures up in the wall.

Everyone gathers around, a piece of pizza in-hand, and waits for the pay-off moment where I take what they have done and deliver some revelation and insight.

[Gulp].

Unfortunately it was bit of a “fake it until you make it” moment.  Because I hadn’t done the exercise before I was a little unprepared for what to do next, but that’s the problem with activities like this where you need the input from a group of people – it’s a little tricky to test it out in a meaningful way.

Before I explain further – take a look at some of the diagrams – what might you have said?  (Think of that as a little self-test).

30-08-2017+7-35+PM+Office+Lens_30-08-2017+7-36+PM+Office+Lens 1_30-08-2017+7-36+PM+Office+Lens_30-08-2017+7-37+PM+Office+Lens 1_30-08-2017+7-37+PM+Office+Lens 2_30-08-2017+7-37+PM+Office+Lens_

I managed to waffle a little bit so it wasn’t a complete farce, I asked a few questions and we generated some “ok” discussion – so I don’t think it was a totally wasted effort, before moving the conversation on.

Retro – What Did I Learn?

So first off – my thanks to everyone at the meet-up who took part, thanks for being guinea pigs in this little experiment!  I hope you got something out of it even if it wasn’t necessarily what I was aiming for.

What Worked Well:

One of my colleagues at Middleware attended, and like a lot of people I meet he’s interested in architecture but the whole concept is a little intimidating and he’s keen to know more.  He said the exercise was really great for keeping people engaged:

  1. It gave people a chance to get up and stretch their legs, good for energy.
  2. It gave people a break from listening to me and watching slides.

But that’s not exactly a surprise, in my experience (both presenting and being presented to, anything interactive is usually positive).

Challenges

  1. The volume of information to process.
  2. The variety of visual styles and approaches.
  3. Messy handwriting.
  4. Having very little time to analyse and respond – in front of a group.

I tried to look for common themes and areas where people had varied wildly; and in this regard the exercise went exactly as I had anticipated as there was a lot of variety.  The problem was that:

  • The insights that occurred to me weren’t quite in-line with the brief I thought had given the group, and I didn’t want to start making comments people thought were unfair because the goal-posts had changed.
  • I had a clear idea in my mind of how the exercise would go and how I would respond, but my assumptions didn’t entirely survive what actually happened, and consequently I felt I didn’t responded as well as I wanted to.

What Could Have Gone Better If:

  1. I had been more “on to it”.
  2. I had done more preparation and thinking about what might get drawn, and how I might need to respond.
  3. I had thought to ask one or two people to give us a quick summary of what they were thinking and the process they went through, as a way of generating some further discussion.
  4. I had picked a drawing at random and tried to interpret it “Ok, this is what I think you’re saying”, and use that as a way of generating some discussion and insight.  Repeat as appropriate.

Final Observations

The context of the exercise is important, as the objectives flow from the set-up:

  1. In this exercise people were dealing with a domain problem (flight bookings) that was essentially new to them – I presume they all have some background idea of such a system, but it not like they will have be actively building one for some time – which would be the case in a real-life scenario.
  2. It’s similar for the reviewer/facilitator; they way I would run the second half of the exercise would be different because what I needed to get out of it would have been very different.  Unlike an exercise at a meet-up, in a real-life project I would be bound to the outcomes as a member of the team – i.e. I’d have to live with them, so the drivers would be immensely stronger.

Would I do it again?

Absolutely.  In some ways the exercise was bit of a failure, at least in the short term, and I can only hope that people were able to take away something useful from it.  That said, it was a success from an iterative point of view: I now know a lot more about this technique and how to make it better next time.  These learnings will also help me should I ever need to do it “for real” in a project.

I also hope it was successful in that this write-up gives you something to think about, and perhaps the inspiration or basis to run this exercise yourself – either informally as a meet-up/learning activity, or as a “serious-face” exercise as part of your project.

Postscript

I’d like to belatedly comment on the work people did and share some observations on the content and possible thought-process (rather than the visual style):

  1. It’s interesting how people’s background comes through – the second diagram takes a decidedly infrastructure based lens.  This is not necessarily bad.  In situations like this (where it might not necessarily answer the question you thought you had asked) it may prompt valuable questions you hadn’t thought to ask.  That’s a strength of this sort of exercise, the variety of responses can provide insights you hadn’t expected and therefore might not have uncovered.
  2. It’s also interesting the different functional emphasis people use.  For example the last one seems to have a finance focus – three of the most prominent boxes are “Prices”, “Finance” and “Payment”, the first two of these are also in the center of the diagram, which might also be where they started drawing – and where they conceptually started.
  3. The first one is interesting because it blends functional concepts like “flights” and “Finance” with solution/technology concepts such as the enterprise service bus that links stuff together.
  4. The third example appears to have started with the “portal”, large and across the top; it then decomposes the portal down into parts, and then further elaborates those into related concepts.  It’s easy to see how the drawers mind may have been methodically working through the problem.
  5. The second-to-last example is interesting because it seems to very much be an exploratory diagram, where the drawer is literally working it out as they go: drawing some concept and then digesting that before adding the next piece.  There’s absolutely nothing wrong with this approach.  It’s true that a “messy” diagram might reflect the drawers understanding of the domain, but it hasn’t stopped them bringing in elements that others missed, such as thinking about search through to external providers (Expedia).  Like some of the other, this example also mixes technical and non-technical concepts (think “apples & pears”): “bank API’s” and “Weight Allowance”.
  6. Not all of the examples have included people/actors.  Neither approach is wrong, but to me including people starts to provoke thoughts around who does what, what scenarios they might have, and begins to bring people back into the discussion – which I think has a lot of value.

Were you one of the participants in this exercise?  If so, please feel free to add your thoughts in a comment.

 

 

Design Thinking Entrée, with Blair Loveday, et al (#ITEA 2017)

Coming out of the ITEA conference, I referred to three magical signs that (IT) architecture is going through a positive transformation; #3 was around design thinking, a topic that a number of speakers covered in varying depth.  Amongst those was the heretic Blair Loveday; I mean sheesh, the guy’s a BA Chief Culture Officer, what blasphemy is this, him presenting at an architect conference?

Blair and the others spoke enough about design thinking to wet our appetites, but not nearly enough to constitute a meal; so, based on what I got from the conference and after some digging of my own, here’s my quick overview of design thinking – a sort of entrée to get you started.

In a Nutshell

I’m conscious that I’m partially trying to appeal to IT architects, let me do so by using the term ‘scientific method’, because it’s going to get a bit touchy-feely later on.

According to wikipedia, Design Thinking is comparable to the scientific method (feedback is obtained by collecting observational evidence and measurable facts) but with the addition of also considering the human aspect, or emotional state.  The inclusion of the human dimension is a key theme that you’ll find throughout design thinking literature.  For example, use of empathy is one of the specific techniques suggested for during the ‘learn from people’ phase.

The Three Lenses

One of the concepts Blair used to describe design thinking was a “the three “lenses” that you’ll see repeated in design thinking literature: desirability, feasibility and viability.

DesignThinking3

Blair respectively described these people, business and technology lenses, and then talked about then in the context of innovation – by type, depending on which lenses overlapped.  The central overlap of all three was “Experience Innovation”, which sounds fine but with all due respect is just a smidge too touchy-feely, even for me, on Monday – but that doesn’t matter.

Design thinking, according to Blair, is centered on the people / desirability lense – which is in keeping with Wikipedia’s view vis-à-vis the scientific method.  You’ll notice that this puts emphasis on emotional and functional innovation.

The thing I really like about this model is that it’s simple yet useful, calls out the human part (which is pretty essential) and provides one of several good anchors to understanding design thinking: making stuff that “is cool” or “just works”, for people.

Getting to Grips: Four Into One

Trying to understand design thinking by reading about it online is a little like talking to people who witnessed a traffic collision: everyone’s got a slightly different view.  Given how long design thinking has been around that’s probably not surprising.  I found a number of approaches.  What I’ve done below is to try and distil the main phases from the 4 interpretations that I studied:

DesignThinking4

The colour groupings are my own, looking for commonality across the different approaches, and are only indicative.  The four approaches are based on (from top to bottom): Design thinking example video (wikipedia), IDEO, Stanford University’s ‘Taking design thinking to schools initiative’ (wikipedia), and ‘A Framework for Design Thinking’ (Creativity at work).  Links to these references are below.

The third process, from Stanford, is the one Nick Malik referred to in his talk at ITEA 2017.

Chris Tuohy’s talk on experience’s at Westpac also touched on design thinking.  The Westpac approach has seven phases (not including an 8th step which seems to be a decision point at which the prototyped ideas are passed into a delivery-focused design and build lifecycle.  Unsurprisingly, these seven phases are all in common with those suggested by the 4 approaches above.

DesignThinkingWestpac

Distilled Comprehension: One from Four

Here’s my general take on what things a reasonable design thinking process should include:

DesignThinkingAK

  1. Learn from people: 
    1. IDEO seem to refer to this as “Insights”, observation, learning from extremes, interviews, immersion and empathy, and doing this all through the three lenses.
    2. Getting an idea of people’s motivations, habits and delights is a good place to start.
    3. A concept I came across more than once was the idea that people on the extremes (think bell curve) are good at helping to explain ideas that the mainstream are less able to articulate.
  2. Find patterns:
    1. Look at what you’re learned, try and make sense of it.
    2. Look for themes, apply intuition.
    3. Put yourself in the shoes of the users, leverage empathy.
    4. Distil design principles.  For example ask the “how might we” question: if a design principle or theme says “x” ask how you might turn that into a specific idea or prototype (and remember the three lenses).
  3. Generate ideas: 
    1. Don’t prequalify ideas out, just generate them.
    2. As IDEO say, “Push past the obvious”.
    3. The emphasis is on creativity.  Basically this is the divergent thinking (creating choices) phase.
  4. Make tangible, prototype and test: 
    1. This is the complementary convergent thinking phase (making choices).
    2. Make things tangible and real through prototyping.  Use any method you like, but make sure it’s using something that will resonate with your audience.
    3. Refine and improve.

Some of the descriptions include steps that come after what I would consider to be the core of design thinking (e.g. delivery).  I don’t think that’s necessarily bad.

You could say these were “steps”, implying a formal process; obviously you want to take time to understand before you race off and prototype stuff, but to put constraints that are too formal on the approach would do it a disservice.  For example, the phase of generating ideas and prototyping them could (and even should) be an iterative process.  After all: how many iterations = how long is a piece of string.

Finally, I got hold of Peter G. Rowe’s book “Design Thinking” from the Wellington public library; I haven’t made serious in-roads yet, but it looks interesting.  One of the things about it I am keen to explore the author’s views it given he’s coming from the perspective of a “real” architect (i.e. buildings, not IT).

Further online reading and viewing:

  • Wikipedia – check out the example video, it’s a really nice little summary.
  • IDEO – some useful content for sure, but not a lot of it (unless I did a “man-look”).
  • Creativity at Work

WSAF Micro-Unconference on the “brand” of architects + Digital + design-thinking, etc

Okay, so over at the WSAF’s regular coffee meet-up we (again) blundered into the “What the hell do we do again, and doesn’t everyone love us?” topic.  Rather than have a good short chat about it over coffee, some bright spark suggested we have a slightly longer great conversation about it with alcohol.

I posted notice of this impending unconference both on the WSAF’s linkedIn group – which you’re all most welcome to join (here) and on our meet-up group (here).

The date and time of the unconference is TBC, but it will almost certainly be on a Friday, very probably starting at 3pm, and go until 5-6pm-ish.  The venue will be the offices of Middleware New Zealand.  Date – likely to be one of the following (we’ll confirm soon): Sept 1st, 8th or 15th.

To start framing up the conversation I put this together (see diagram below).

Goal of the unconference

Apart from the usual highly desireable secondary benefits (i.e. drinking responsibly with like minded peers) the goal is to start identifying some specific things we can do to start actively transforming architecture so that we can keep doing rewarding work, and our stakeholders get consistent value of our involvement.

Architecture in Transformation

#ArchitectureInTransformation