Releasing value in software development

  • I am not going talk about any specific technology that could be used to solve this problem
  • I’m not going to go into detail about how to generate the things needed to get to this point, ie I am not going not going to talk about how to create a ‘Tech vision’ that that has been fully formed though workshops and collaboration. etc. etc. etc. I am not going to talk about how to do user research appropriately to generate wire frames. etc. etc.

The problem

Booking appointments with a particular individual.

  • This is an aggregated booking system that talks to many individual booking sites, importantly it is not the master of the booking data
  • It can take up to 15 minutes for the individual booking site to confirm the booking
  • Users can only book appointments for themselves
  • Users are linked to a primary site and can only book appointments for that site
  • There are different types of appointment: urgent, planned, telephone, video, etc
  • We are not doing ‘managing appointments’ (ie edit, cancel, etc), this will be serviced by the booking site providing contact details
  • We are adding a feature to an existing system
  • Booking via the website is just the first of many possible ways to book (ie native app, alexa, etc)
  • Users will recieve notifications other than the website to show booking status’ (ie emails, push notificatiosn, etc)

The high level solution

The first thing I usually do is come up with some high level designs for what the user journey might look like, followed by some supporting visions.

The representative UX for our booking appointment flow
Appointment booking process outline

Slicing

There are many ways to slice this, and so I am going to go through a few different approaches. At ThoughtWorks we promote vertical slicing, but I want to show a journey through slicing and different types, ie to illuminate the different approaches outlined in the following drawings:

Incremental delivery by Jeff Patton
Iterative delivery by Jeff Patton
Combined Incremental/Iterative delivery by Jeff Patton

1. “Technical Slicing”

By which I mean, that technical areas drive the focus of the slices of work, often happens when “the business” is seperate from “technology”. And happens at the macro and micro level. For example, a lot of teams break a story down into a list of ‘technical tasks’ at the micro level or their git commits are a series of “technical slices”. Very rarely is it the right thing to do even then, and almost never the right thing to do at the macro level.

An example of “Technical Slicing”

2. “Screen Slicing”

Where the value is sliced by screen and so the technical delivery matches that which is needed for each screen. Often the first step taken when teams become full stack as it allows the team to consider tickets in their entirety. However, often, work doesn’t directly relate to a screen and these get sliced by “Technical Slicing”

An example of “Screen Slicing”

3. “Process Slicing”

Now we are getting somewhere! (In my humble opinion :P). Whilst we still often have a first slice that is ‘Technical focused’, after that, we end up with a real sense of iterative delivery towards a goal. On the downside, we still haven’t really considered how we might “Go Live” sooner, but the way our work is sliced means that we can take a holistic view on what is actually important at each step.

An example of “Process Slicing”

4. “Bottom Up, Common Failure Slicing”

With “Shared Failure Slicing” we take “Process Slicing” as a base and apply some rules to it.

An example of “Bottom Up, Common Failure Slicing”

Summary

What I have tried to show is that, often, your choice of tech can become irrelevant. It can of course become a hinderance, but often this is because it has limitied your ability to make decisions rather than because of some inherently bad thing about that technology. A team who aren’t responisble for their own decision making around whats best for their users will always struggle to release value regardless of the technology used to deliver it.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
defmyfunc

defmyfunc

6 Followers

Thoughtworker. Views are my own. Retweets/likes don't mean I agree. All the usual caveats. Etc.