This post is over 6 months old. Some details, especially technical, may have changed.

The 'New' Value Triangle

New Value Triangle

A projects delivery effectiveness can be affected by many things. There is, however, a baseline trade off on three core values and being aware of this trade off can help you make better decisions. The diagram above highlight these core values,

  1. New Domain - this can be a new problem domain or new challenges within an understood domain. It may also be considered a new domain if a large proportion of team have limited or no experience in it. (e.g.coming into the health sector for the first time or possibly new legislation coming into effect).
  2. New Technology - New technology can be either mandated (integration work) or just by virtue of the fact technology is always evolving. There are always new (and potentially) improved ways to solve common problems in solutions.
  3. New People/Team - New people or teams occur when a large proportion of a team has never worked together or are changed between phases. Depending on the type of organisation you work within you may never work with the same person twice or for very short periods of time. This is common within utilisation focused service companies for example.

The "new" value triangle proposes that,

Given a new project you must only accept up to a maximum of two of the "new" trade offs.

Obviously the less the better but there will invariably be challenges outside of the project that will have an impact on these values. Having to cope with all three simultaneously will seriously impede successful delivery of a project and must be avoided at all costs.

Its worth noting that the term "new" when looking at each trade-off on its own merit isn't necessarily a negative thing. New blood on the team can inject fresh spirit and allow knowledge to propagate beyond the boundary of the team, new technology can speed up delivery of more robust solutions and a new domain can bring considerable business value. But at scale or combined these "new" values can become a hindrance on successful delivery.

Another consideration is that this is a general rule. You are not always going to be in a situation that mandates such trade-offs. Or perhaps you are in a situation that seemingly mandates all of them? It's possible, with careful thought, to slowly transition through all the "new" values over time but at any given point its always wise to keep tabs on what you are trading off to ensure you aren't holding back on the effectiveness of delivery.

So you've got to know when to trade off certain values and when you do what mediation patterns could be applied to prevent unnecessary waste

Standardise Technology (__NPT/ND__)

When a team (potentially new to each other) is kicking of a project in a new problem domain (to the team or the organisation at large) there is usually the greatest business risk and as such the team need to be ready for surprises as, and when, they happen.

One of easiest ways to achieve this is to reduce risk on the technology front. Standardising and using the most boring, non-shiny, well understood technologies removes any requirement for the team to learn new paradigms and principles while trying to wrap their collective minds around a new domain and potentially getting up to speed as an effective team.

Commoditise Solutions (__NT/NPT__)

From an organisational perspective when you find yourself consistently in a well known domain there is a risk you can begin producing extremely similar systems time and time again. This is isn't going to look terrible on the balance sheet but if you have a high team churn there is a lot time being wasted in getting people up to speed that could be avoided.

This is probably a very good opportunity to commoditise your solution, turn it into a product and sell it. That way you can establish a baseline consistency via a core team and established technology stack and focus even more on the adding true business value.

Iterate & Experiment (__ND/NT__)

Given an established team entering into new domains and technologies the simplest way to reduce risk is to iterate & experiment rapidly. If the organisation you work within delivers bespoke software its very likely that the work you do will be within a new domain or at least a new/different subdomain of a common domain you typically deliver into. When introducing new technology as well it's vital that teams work well and can begin delivering quickly and iteratively to understand both the new domain and any potentially how new technologies fit.

Having a largely consistent team as your unit of delivery allows us to focus on delivering the right tools to tackle the right problems which adds significantly more business value than the other trade-offs. Of course - changes are perfectly acceptable & encouraged as long as they aren't wiping out a large group of the core team in one fell swoop.

Conclusion

At any point in any project there will be trade-offs. Many of these trade-offs can be boiled down to something similar to this value triangle and knowing strategies for dealing with these situations allows the project to optimise for the most effective approach.

Published in Craftsmanship on March 30, 2013