How to stop failing at developing software products

Davide Panelli
Byte-Code
Published in
4 min readAug 21, 2018

If you look around the internet, it’s not difficult to find out that most software development projects are considered failures. It seems like we are doomed to burn tons of cash in software development to go nowhere.
And the reasons always looks the same: lack of communication, unclear objectives, changing requirements and none of the current mainstream agile methodologies seem able to reverse this trend.

It looks pretty clear that current mainstream processes are outdated and not very effective.

A popular quote often misattributed to Einstein, clearly defined insanity: doing the same thing over and over again and expecting different results.

So it’s not going to change much if you think that the next project will succeed if you hire a better developer or choose a better technology or use scrum (a process that is about 20 years old).

So what?

The first thing to realize is that a development project is not an “IT project,” it is a business project(that’s even truer if you are a startup launching a new product), and if the underlying assumptions are wrong, no software,technology or process will save your day. The best thing a development process can do for you is to help to validate or invalidate the business assumptions behind the project without burning lots of time and money.

We don’t want to be mere executors, and that’s the main reason we start our projects with a “Discovery Phase” and not just analyzing and quoting a feature list.
Our primary goal is to collaboratively explore the business requirements regarding assumptions, timeframes, and investment budgets, so we can generate viable options and set an up an initial roadmap focused on business objectives and investments, not on features and costs.
Are you happy if we met a business objective with half of the features initially requested? Probably yes, and would have a lot more budget to invest in the next business objective (not feature!)

What’s the trick?

The Discovery Phase is a one or two week-long time frame where we organize a series of interactive workshops (no sit down boring meetings!) to uncover, define and share business objectives, assumptions, and investments.
Some workshop and facilitation techniques that we use are:

Value Proposition Mapping

A simple way to understand your customers needs, and design products and services they want. For each segment of your target customers, we quickly and visually define the jobs-to-be-done, the pain, and gains and how your product or service help them to reach their goals.

Impact Mapping

Impact Mapping is a simple yet incredibly effective method for collaborative strategic planning that helps organizations make an impact with software. These workshops help to create better plans and roadmaps that ensure alignment of business and delivery and are easily adaptable to change.
Business stakeholders will communicate their assumptions more effectively to delivery teams, and how to engage delivery teams in making better strategic decisions.

Event Storming

EventStorming is a workshop format for quickly exploring complex business domains. It allows to come up with a comprehensive model of a complete business flow in hours instead of weeks.
The idea is to bring people with the questions and people who know the answer in the same room and to build a model together with an ultra-simple notation, no complex UML or jargon that might cut off participants from the heart of the discussion.

Specification by Examples

Specification by example is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements. This approach is particularly successful for managing requirements and functional tests on large-scale projects of a significant domain and organizational complexity.
Human brains are generally not that great at understanding abstractions or novel ideas/concepts when first exposed to them, but they’re good at deriving abstractions or concepts if given enough concrete examples.

At the end of the discovery phase, we have created a shared understanding of the project and created an initial roadmap with clear priorities, goals, and milestones. Only now we can get to work on features with the confidence of working the most important thing and not wasting precious resources.

We’re not genius, and we’re just standing on the shoulders of giants.
To learn more about the workshops, check out the sources:

Strategyzer | Value Proposition Canvas

Impact Mapping

Event Storming

Specification by example — Wikipedia.

If you want to know more on how we levereage interactive workshops to accellrate our customers development efforts reach out at Byte-Code website. To stay updated and recive the latest articles you can subscribe to our newsletter!

--

--

Davide Panelli
Byte-Code

Helping organisations to create value with software.