The Framework

Agile project management methods (e.g. Scrum and Kanban) have given software development effective tools (e.g. product backlog) to steer projects in better ways than with traditional approaches (e.g. waterfall). Yet, truly successful projects are still a rarity. Despite the progress in the IT project management, development teams are left to struggle with solution scope management, feature prioritisation and defining a minimum viable product. The framework presented in this article is for those forward-looking enterprise architects and lead developers who are first-adopters of approaches that significantly improve the quality and effectiveness of an IT project delivery.


Having been involved with various software projects, you must have noticed that many projects go over budget and schedule, failing to produce the expected return on investment. Too often the existing ways of doing business are simply translated into a software version. This is done without questioning whether the current practices are still the best way to achieve the desired outcomes. The more effective approach is to design the digital services using customer needs as the main guideline, instead of existing internal business practices. Customer-centric design leads to feature prioritisation where items adding the most value from the customer point of view will be chosen. It gives purpose to the scope management and leads to a minimum viable product that is guaranteed to satisfy important customer needs. All stakeholders find such software projects much more successful.

Imagine this familiar scenario in the software industry: your development team is stressing over deploying a product into production. Deadline is in two days, and everyone seems to be on the edge (and some over it already). Snarky comments flying around in a cortisol heavy air are not helping whatsoever. Panicking project manager running around like a headless chicken and interrupting the team does make resorting to violence feel like a viable solution at times. “Just let us do our job”, developers think. You know how this song goes, been there before, got the t-shirt.

What can you do to solve this issue right now? Nothing, not a damn thing. Suck it up and deliver. The mistakes have been made way back.

Eventually, the storm calms down and there’s time for a self-reflection. Did we use the right tools for the job? How did it become so hard? Did we focus our efforts correctly? Did we even truly understand what was expected from us?

As a developer, you’ve got only one job: create customer value. And here’s the thing: value is subjective. It doesn’t matter what I or anyone else thinks is valuable. Only your customer’s opinion matter. The best way to do that is to give what they really need. They might want something else, but you are the expert who can open customers’ eyes.

I would argue that not many software projects take account of customer needs. Instead, we talk about technologies and data structures, all things techno-porn. It’s understandable because that’s what WE techies love to do.

Case Example

You work in a software consultancy company. A potential customer, cleaning supplies (equipment and liquids) company, JunkIsGone Ltd, contacts you and wants a web commerce site to sell their products. Obviously, your job is to make it happen. Currently, the company only has traditional, physical stores, but they see a lot of potential on web commerce. They currently have content marketing plan up and running: they educate their customers about eco-friendly, non-toxic cleaning supplies. Now it’s time to make products available online for better reach and service (in other words, to fill their pockets with more dough).

Create a Customer Persona

We established earlier that the receiver decides what’s valuable and what’s not. There’s no point to sell more sand into Sahara. That’s why we must first get some insight about our customer. There is a tool called Customer Persona. Its purpose is to create a lifelike person who is going to need our service. Following steps are here to help you to navigate through the process.

Start with traditional demographics details: Give persona a name and title. How old is she? What does she do while working and on free time? Use whatever specifics to make her relatable and real. Like she would have a tone and voice.

Then figure out her pain points. What challenges is she facing? Would she pay to make her problem go away? Key here is to go beyond what your service offers and later on, we can choose which problems to solve ourselves or with a partnership.

To find her goals, you can answer the following questions: What’s her aim in life or work? What pushes her to take action? And last, what motivates her?

Next, dig deep into her needs. Why would she need this service from us? Why would she buy? What do they NEED to solve their problem? And last but not least, does she know she has this problem? For example, did you know you have a customer experience problem?

With a well-made customer persona, you can understand your customer and her problems. However, be cautious about who the customer really is. In our case example, the customer is not the cleaning company. No, even though they pay for your services. The true customer is actually the person who buys cleaning supplies. Why? Because she keeps the cleaning company alive. When you help their business to flourish, so will yours. Who wouldn’t buy from the people who bring value to the table?

Persona Example

“Hillary, 37, housewife, married and mother of two. She wants to keep her kids safe and healthy. With two children, 3- and 7-year-olds, her house is constantly untidy and she’s afraid her kids get allergies or even more serious health problems because of dust and other unhealthy substances. She can no longer look after every single step because her kids are growing older and move faster. Every cleaning equipment must be healthy enough to eat, who knows what the 3-year-old puts in his mouth next. Also, environmental issues are close to her heart. She wants her kids to be able to live long and healthy lives. She also has lots of stuff to do and cleaning is just a chore.”

Draw a Customer Journey Map

So far, we have found out your target customer and managed to draw a clear picture of her. Next, we need to understand in detail, how does she interact with our business.

We are going to find out what steps does the customer need to take to buy from the company. Visualising the whole path bring out the main issues from her point of view in a way we do business with her. Along the way we would think, what would be the most valuable matter for her and how can we do to solve her needs instead of wants. The difference between wants and needs is subtle: wants are usually nice to have features in the product that adds unwanted complexity without value. As we both know, complexity is a killer of delivering. Needs are core functions to solve customer’s underlying problem.

There’s a tool called Customer Journey Map to help us to represent how the customer interacts with our business. This might need some hurdling but it’s totally worth it. The first step is to find out, where does the customer’s journey begin and when it ends. Rule of thumb is that journey begins when the customer begins to realise she has the need and ends when the need is no longer valid.


After choosing the start point, let’s begin by mapping out the journey step by step towards the chosen end. At this point, the current journey is enough, because it will be optimised at later point. This method works well for improving existing business as well as totally new business. The only difference is that for new business you don’t need to map current state, only desired state.

Each step can be represented with a post-it sticker. And every single step must be written like the customer would say it. This is where the persona comes in handy because it gives lots of context for the journey.

Here’s what the example journey for Hillary might look like this today:

That’s not the whole journey but you’ll get a hang of it. You can spot potential missteps or obstacles she’s facing like: not founding the company site from Google, too complicated order process, she might not be home when a delivery arrives, etc. This journey can go on with maintaining equipment, upsell, customer care (complaints, loyalty program, etc.), basically just follow her steps to determine, what the company currently does.

Side note: your customer, the company, might not sell eco-friendly supplies. Now you can point out to them that this is a real customer need. Who wouldn’t want to keep their children from drinking polluted water and breathing poison clouds? Every single parent does. Is it your job to develop their products? No. Is it valuable information to your customer? Yes. Should you make an issue known? Yes, absolutely.

Touch points

Next step of the process is to find out, at which point the end customer touches the company’s business in any way. By phone, visiting website, visiting the store, smoke signals, whatever that might be. This is called multichannel service development. On the same map you created the journey, add touch points with a different colour of markers. For each touch point, describe what the customer does.

On the example piece of journey above there are touch points at least on:

As you may notice, one customer step can contain multiple touch points and that’s okay. From a customer point of view “Start using products” is a multi-step task. Bravely open up the box and see what’s inside.

Internal work

You have come very far and I thank you for it. Now, it’s time to link customer journey to company’s internal work. What does the company do at each step to make customer deliverable happen? Let’s see.

Take the same customer journey again and add internal work in there with the different colour marker (blue boxes here):

There are lots going out behind the curtain and customer sees only a facade in all of this. For creating great experience webshop site, understanding how customer needs a link to internal work is a crucial thing to do. You might find some company steps are completely unnecessary for delivering customer needs and you can point out to stop doing them. Thus saving a butt load of cash for the company. And who wouldn’t like that? At the minimum, you can optimise remaining steps and your customer thanks you for it.


One more thing to complete our treasure map: decisions. These can be legal limitations, standards to follow, business decisions (we do it this way) or any other limitation or guideline that’s relevant to the case.

And in the example (green boxes):

This example just mentions a few decisions you have to make. By the way, I don’t know any environment or non-toxic standards, but on this level, it doesn’t matter. It’s R&D departments job to figure that out, you just point the direction.

At all times you can add decisions, internal work and touch points when you learn more about the subject context. You might have already figured out the power of the customer journey map but to sum up: It’s fairly compact set of items where it is easy to see the big picture. Details have been intentionally left out to reduce complexity because complexity is a killer of delivery.

What business are you in from customer’s perspective?

Many people and organisations define their existence by what they do. “I’m a programmer”, “We build houses”, they say. I’d like to call this the “if you’re a hammer, every problem looks like nail” syndrome. Because human mind sees what it concentrates on, focusing on IT causes every opportunity to seem like a suitable candidate for an IT-project. However, this is rarely the right approach. Instead of automating processes, we should ask ourselves first: “Are all these tasks necessary to create customer value?”

So, what could a programmer think instead of just code? Of course, developing customer’s business! For cleaning supplies, this could mean improving life quality. Such an approach may sound like a dumb word game, but it has an enormous psychological effect: you get what you focus on most. Expanding the landscape of your thinking gives you new ideas and more novel value to give.


Oh my god, you’ve come far already. Now a very cool step: the current customer journey has been mapped and now is the time review step by step how to a) remove or b) improve any touchpoint, internal work or decision you possibly can. And again, do this from Hillary’s point of view, not from the company’s. Keep in mind that any action to remove items from the map may also introduce new ones. Keep going until Hillary doesn’t have to think about her cleaning issue, just live happy, suburban life with her kids.

One possible action, after web commerce system is in place, would be getting rid of their own stores and if they still want to sell their products “offline”, they can make a deal with department store chains. This is definitely a huge cost savings and the customer is satisfied, to say the least. Again, not your choice, but giving customer possible strategy choices is definitely valuable.

Here’s one suggestion what the new journey would look like:

We have replaced physical store experience with online shopping experience. This would be more convenient from Hillary’s point of view. She doesn’t have to travel by car with kids to the store, wait enormously in traffic, find a parking place and all the annoying things related only before entering the store. Instead, she can do the shopping in 5 minutes, pay up and do more enjoyable stuff in her life. All while sipping white wine at home.

The final step: Roadmap

The World was not built in a day and it won’t be fixed in a day either. The company most certainly cannot fix all the issues at once. In fact, it’s a never ending game. Eventually, today’s desired state will be outdated too. When that happens, customer needs are a very good compass to use for the next iteration as well. But now, we must get started and improve step by step. That’s why we need to create a roadmap to create value for years to come: there’s a current state of the journey and a desired state of the journey. Now you can help your customer to choose, which issue to fix first. Low hanging apples first and then move to more advanced stuff. Note that the customer can also start multiple projects at the same time if there are will and funds. Of course, some coordination is needed between teams if the same domain entities are used but let’s get to that later.

Congratulations! You’ve crawled out of the IT box and improved your customer’s business. Time to add “Business Development” skill on your LinkedIn profile. Remember to ask for recommendations. You’ve earned it!

Limit the Project Scope

Slowly or surely we are moving towards the real software project because our job is to deliver. From the customer journey map, we can see which solution would deliver the most value for your customer. This is the project scope. The customer map also gives us clear instructions what features needs to be included. In software jargon: MVP, Minimum Viable Product.

In an example, a limited scope would look like following:

Write Use Cases

From developer’s perspective, one or two sentence stickers are not detailed enough to start working features. This is why we must write use cases from journey map items to bring down abstraction into the more concrete level. See how all the way customer needs feeds our steps forward. Also, those steps can be traced back to origin to see if the customer need is still valid.

Internal work we mapped to the journey helps us immensely. Those can be turned into use cases for developers. You can use business decisions to guide the process. In our example, to use case list could look like this:

This way you can see which part of the customer journey needs each use case.

Next steps

Coming this far, we have a good base to begin the software project. You can use whatever project methodology you feel that fits your case. Personally, I’d go with Agile methodologies. For example, Scrum for the development phase and Kanban for maintaining phase. But it’s totally up to you and your team.

There will be many hours of work ahead of you but I hope this gives your team and customer clear roadmap ahead. Customer Journey Map can be a damn hard tool to learn. Still, totally worth it. And if it’s too hard to use, you can always ask help from service design/customer experience consultant just to get started.

Round up

Now we have a clear link from customer needs to software we are developing. Each component in the project you have, must be linked to a customer need. Otherwise, it can be removed. Less code, less complexity, fewer problems. Simple, yet effective, right?

There will be a time when the project delivers everything it needs to do. What then? You knew it: go back to customer journey map and start working on the next valuable thing on it. Choose a scope, write use cases and collect domain models to form services. The journey map is a gift that keeps giving. In conclusion, this is how you KNOW you’re creating customer value, the only thing that matters.

Bonus stuff

A nice bonus is that the customer journey map is compact and fairly easy to explain to anyone. It contains only common language that people can relate to. When programmers can think like your customer, they’re much more likely to make good decisions on the way.