Software Developer Business Patterns

Software Developer Business Patterns

By Allan Kelly

Overload, 20(111):21-24, October 2012

Patterns can be applied to business as well as software. Allan Kelly shows us how.

Paul Grenyer says: “I’ve read plenty of Allan Kelly’s writings and they always make me think about things from a different point of view and I always learn something. I don’t know if he sees everything differently to most people or just to me. I suspect it comes from Allan’s experience across every stage of the product lifecycle.”

“I read and enjoyed Allan’s first book, Changing Software Development and looked forward to Business Patterns for Software Developers . It came out at a time shortly after I had left a startup company. It helped me understand a lot of what had happened and why. As with all good patterns books it helped me recognise and name patterns. Again, I learnt a lot and the patterns are proving useful as I am now shaping my own startup.”

Here we go again, Apps. Even the word application is too big for the small pieces of software we download and install on our phones, tablets or other gadget. Apps are a wonderful reminder of the power of software. Indeed, software apps sit within a much bigger information, technology and communications ecology which is itself powered by software!

iOS Apps, Android Apps, Facebook Apps and now Apps for televisions. We’ve been here before, last time it was the web, and before that Windows, before that MSDOS and before that Apple IIs and TSR-80s.

Every seven years or so our industry comes up with a new paradigm which allows small pieces of software, sometimes written by one person, to advance the ecology itself. A few make millions while many have walk-on parts.

That is the way the software industry is: high growth, high failure, dynamic, loved of politicians and venture capitalists. The barriers to entry are shockingly low: as long as you can code, have an idea and can live on credit cards for a few months you can play too.

Yet the barriers to success are extremely high. Just because you can play doesn’t mean you will succeed. Infant mortality is shocking. And we repeat the same mistakes over and over again.

Perhaps the biggest mistake is to believe that if we build it they will come. Those days are over, if they ever existed in the first place.

Successful software companies know about marketing, product strategy, roadmaps, customers and many other things. In fact, successful software companies have a lot in common. There are, just as in code, patterns of success, patterns of business.

Over the last eight years I have collected many of these patterns. Often identifying and writing one pattern leads to the discovery of several more. All patterns are available for download from my website and 36 were published as a book in early 2012. In the rest of this piece I’d like to discuss a few of the patterns and how they fit together.

Same customers, different product

Once your business has a relationship with your customers they will trust you, satisfied customers have a positive impression of your company and your people. Sales staff already have a relationship with the customers and the company is in a good position both to understand their needs and to supply them.

Modern consumers are faced with a bewildering number of brands and product variations. Choosing a trusted brand is one way to navigate the jungle.

Nor is it just individual consumers who return to existing suppliers and brand. Business customers find it easier to buy from suppliers they have worked with before; and the promise of a compatible product is a big plus.

So rather than continually seek out new customers for the product you have consider the customers – rather than your products – as the asset. Expand your product offering so you have more products to sell to your existing customers. Do this by focusing on the customer.

This approach has the additional benefit that by deepening your relationship with the customer not only will you sell more, the customer will get a better solution and the relationship will be strengthened further.

Some sales will build directly on the products you have already sold – sometimes called ‘plus one’ sales: more licences for the same software, upgrades to enhanced versions new versions of existing software, and add-on modules are all possible. The next sale could be a service: support contracts, training and installation are highly applicable to existing products.

In fact, when you think about it there are actually four possibilities for sales, as shown in Figure 1.

Same customer Consumables, e.g. repeated razor blades or printer ink.
Sell to other groups within the same corporate.
Customer is the asset, find or develop new products to sell to the customer.
Different customer Product is the asset view. Diversification: a new product in a new market.
Same product Different product
Figure 1

Different Customer, Same Product is probably the default position of most companies – ‘We have a product, we need to find more customers!’ Yet making sales can be very expensive in itself, customers might already be using a competitor product or new sales channels might be needed to reach new customer groups.

Same Customer, Same Product is normally found with consumable products – Gillette razor blades or HP ink jet cartridges but it could be software upgrades, I must have bought five or six copies of Microsoft Office in my life.

When products last like software ways need to be found to entice the same customer to buy more of the same product. If the customer is a large organization then it might be possible to move from one group within the company to another selling licences as you go. While the paying customer might be the same the end user will be different.

For home users it might be an upgrade cycle – new OS, new PC, new Office version. Although even this might be considered a Same Customer, Different Product model depending on how you view upgrades.

Diversification – Different Customer, Different Product – is inherently risky because it is, in effect, establishing a new business. Sometimes companies pull this off, like the way Caterpillar extended its brand into clothing. Perhaps more often this is one jump too many, look at the way many tobacco companies have tried to move into food only to retreat later.

Same Customers, Different Product view customers, not the product, as the asset. Rather than sell an existing product to new customers you sell existing customer a new product. When done well this can be highly effective at low risk. Think of Oracle building on the database customer base to sell enterprise software and middleware, or the IBM Rational developer toolset.

Nor does the different product need to be your own product. You could use the patterns Value Added Reseller or White Label to offer products to your existing customer base under your own name. Offering another product as a complement to your own can reduce costs and eliminate competitive tension – something described in the pattern Complementor Not Competitor.

Of course it is sometimes difficult from the outside to tell what a company’s strategy actually is. Consider Dell’s recent acquisition of Quest Software. This might be a diversification move – Different Customer, Different Product – or attempt to sell software to existing hardware customers, or possibly vice versa.

Homogenous and segmented customers

In the beginning many companies assume – by conscious decision or through naivety – that all customers are homogenous. Indeed, this approach has some advantages: it reduces time to market entry and therefore costs. By entering the market it puts the company in the best possible position to understand what customers want and what is possible.

A homogenous customers approach has worked well for the likes of Microsoft – with MSDOS – and even Google’s early search product. If you consider all customers to be the same then one product is all you need to enter the market – thus keeping costs down and time short.

In the beginning companies may simply lack an understanding of potential customers. Sometimes the best way to gain knowledge about customers is simply to get into the market. However, sooner or later companies start segmenting their customer base so to serve customers better, and to extract more money.

Segmenting makes sense: customers are not homogenous. Different customers want different things, some value speed or ease of use, others value low price. Many a software development team has been lead astray by focusing on the needs of one customer too closely and producing a product which has little, or no, use to others.

The trick is to use Customer Understanding (another pattern) to segment customers into different groups and address the needs of each group separately. Segment groups are typically defined on discernable attributes and characteristics that allow differentiation of one group from another; another approach is to segment on the tasks to be performed. Either way, working with definable groups avoids generalisations that do not accurately describe any one group.

You may choose not to meet the needs of some groups if doing so would compromise the needs of another. When resources are limited is it better to target resources than spread them thin? Segmenting your customers will allow you to segment your market. As you decide which customer groups to serve, you will define your market position relative to your competitors. You are also deciding who you will not serve. In some cases you may need to extricate yourself from some existing group to pursue your new targets.

Segmentation can help avoid situations where more attention is paid to the customer who shouts loudest. Strategy is as much, or even more, about what you will not do, who you will not serve, as it is what you will do and who you will serve.

Those you decide to serve will benefit because they will get a product that more specifically fits their needs. A deliberate choice not to serve some groups allows you to serve others better. Sub-dividing your customer base will also help you spot opportunities to serve customers better.

But customer segmentation can go too far. While for customers the sheer choice of products on offer under the same brand can be overwhelming. Last year I needed to buy a new car GPS system, confronted with what seemed like several thousand products on Amazon I stuck with the brand I knew, Tom-Tom, and bought the cheapest product rather than spend time considering the merits of each product. (True, I momentarily considered a Garmin but was again overwhelmed by product choices.)

More dramatically contrast the approach of Nokia and Apple to the phone market. Nokia markets an amazing range of different phones. Conceivably there is a Nokia for every customer segment – indeed there might well be more than one. There comes a point were the costs of such a diversified product range become self-defeating.

Now consider Apple’s approach to the same market: there is one. There was one iPhone to start with and although Apple continues to offer older versions, and some Simple Product Variations (another pattern) there is essentially still one iPhone.

Apple too have segmented the market but having done so they decided to only address the premium smart phone market. Even here segmentation is limited. A quick look at Nokia’s website one day in June 2012 shows four different Lumia Smartphones, six other smart phones and at least a dozen simpler phones.

On the face of it addressing a segmented customer base with a range of products targeted at each segment should be a more effective approach than homogenous customers. But as the Apple v. Nokia story shows things aren’t always that simple.

Sequences and competitive advantage

Patterns don’t exist in isolation. If one company faces a problem and solves it using the same pattern as another it is quite likely to find the next problem is also quite similar and the corresponding solution is also similar.

Figure 2 shows one such pattern sequence. The start of this sequence is the desire to reach more customers. After segmenting the customer base the company engages Simple Product Variations – maybe a range of colours products al la the iMac or iPad covers – and Core Product Only. (While Core Product Only works in some domains it doesn’t have great history in the IT world. Consider Microsoft Works, it has most of the Office functionality most users need but has never sold well. Even Linux seldom appears on its own, it is usually the core of a distribution or baked into a product like Android.).

Consequently the company has a Product Portfolio. In order to reach the different customer segments – and limit competition with itself – the company then engages a variety of distribution channels.

While one pattern may address one set of problems right here and now in resolving the question new issues arise. Thus patterns tend to lead to other patterns – a pattern of patterns usually know as a pattern sequence.

Figure 2

That different companies follow the same patterns and same sequences isn’t a bad thing, in fact it validates the whole approach. For many companies the product, not the process or organization, is the competitive advantage. Why reinvent the process wheel when plenty of others have already shown how to play the game?

That said for some reinventing the wheel is the competitive advantage. The way the product or service is delivered, or the way the company works, could well be the things that make the company a winner. The actual product may be very similar to the competition but delivery very different. For these companies business patterns serve not as a template for what to do but rather a description of what not to do.


The software industry, indeed the wider technology industry, doesn’t stand still. As the patterns were re-edited for the book it became clear that some updates were needed.

For example, Nokia was sited as an example in several patterns. In some cases the pattern and example still held. In others, the recent events at Nokia lead to new insights into the business of technology.

I believe the patterns themselves will stand the test of time but I expect some of the details and examples will change. I also expect that using this common languages for much of what our industry does will allow software developers and entrepreneurs to come up with new variations, new combinations and completely new approaches.

Complementor, Not Competitor

Strawberries do not compete with cream.

Three years, a lot of activity, and a few billion dollars later, we still weren’t [application software] leaders...

However, one thing we were doing exceptionally well was irritating the heck out of the leading application providers – companies like SAP, PeopleSoft and JD Edwards. These companies were in a great position to generate a lot of business for us...

What we said to them was ‘We are going to leave this market to you; we are going to be your partners rather than your competitor’. (Gerstner, 2003)


Within your product portfolio you sell two or more products that are complementary and usually sold together; it might not even make sense to buy them individually. Your competitors offer one or other of the products, and customers often mix-and-match. One of your products can hold its own against the competition, but the other cannot.


How do you arrange your product and services portfolio so that you maximise your profits and don’t lose money on products?


You have two complementary products: let’s call them ‘Strawberries’ and ‘Cream’. Strawberries sells well and makes money, but Cream sells less well; it loses money, and even some of your Strawberry customers prefer to buy their Cream from another vendor.

You have traditionally sold customers a total solution of both Strawberries and Cream. But, while your Strawberries are very good, there is better Cream on offer elsewhere. Customers who buy Strawberries elsewhere are unlikely to buy your Cream too.

Developing both Strawberries and Cream has allowed for innovation in the past, but now it is competitors who sell only Strawberries or only Cream who are generating the innovations. Having both does not offer a lot more opportunities for innovation.

Traditionally your own Strawberries and Cream, and the innovation possible, has given you a strategic advantage. But the market, business strategy and core competencies have changed over time, and you no longer get the advantage you once did.

Selling both products together makes for a bigger sale with more revenue, but when costs are broken down, most of the profit comes from the Strawberries.

Both Strawberries and Cream are expensive to develop; while Strawberries makes money, Cream is losing money.


Concentrate your activities on the most profitable part of the solution; discontinue the less profitable parts and replace the missing parts with ones from other vendors. Rather than competing with everyone, seek to complement those who can help you sell more of your most profitable products.

Customers will want to buy Strawberries and Cream; now that you no longer compete with the Cream manufacturers, they can be a source of customers. You will need to form partnerships to align your goals and methods. Your staff will need to know partners’ products and ensure partners’ Cream works well with your Strawberries.

You need to prove to your new partners that you are committed to this strategy. Move fast and decisively to show that you are now a friend and not an enemy. Cream makers could still recommend one of the other Strawberry suppliers, so work together to produce the best Strawberries for their Cream.


You no longer supply a total solution with your own products; instead, you sell your most profitable product and complement it with third-party products to offer a total solution.

Opportunities for innovation between Strawberries and Cream are more difficult to find and exploit; however, you can be more focused on innovation for Strawberries.

Discontinuing a loss-making product should immediately help your balance sheet. By partnering with others you can increase sales revenue for your profitable products – a classic win-win situation.

Sales of Strawberries alone may be smaller, but they will be more profitable; in addition, you are hoping to sell more Strawberries by working together with the Cream makers. You may be able to make revenue from consultancy services too.

You have saved the cost of developing an expensive product. Product development costs are lower; the cash released may be used elsewhere, say in new products or services.

However, you will need to ensure that your Strawberries are compatible with the Cream from various vendors. Ensuring compatibility can in itself be a timely and costly endeavour.

Customers are no longer locked into your products; they now choose your products because you have the best solution to their needs, not because they have no choice.

New partners may seek to lock you into their product; if you become dependent on one Cream maker, you will be in a weak position if they ask for special consideration and price cuts. So work with several Cream makers to give you the choice to walk away from a deal if a partner asks too much.


Products may be service products. You might stop offering your physical product while offering your services in support of your traditional competitors’ products. Conversely, you may discontinue your own services offerings and encourage third-party suppliers to offer services to support your products.


Games console manufactures usually lose money on each console sold while making large profits on the games for the consoles. After selling over 6 million Dreamcast consoles and losing $500 million, Sega left the market in 2001 and chose to focus on producing software for Sony, Microsoft and Nintendo consoles.

Related patterns

Contrast with Lifetime Services for Product s, where the sale of one product – possibly at a loss – allows you to make money from a second.

In Bed With The Enemy (Weiss, 2007) also describes how companies can work with former and even current competitors.

A Whole Product strategy can lead companies to produce supporting products that in time end up losing money in their own right. As long as customers see a total solution to their problems, it is not important whether all components come from one supplier or many.


[Gerstner03] Gerstner, L. V. 2003. Who says Elephants Can’t Dance? , London, HarperCollins

[Weiss07] ‘In Bed with the Enemy’ in Hvatum, L. & Schuemmer, T., eds. EuroPLoP – Proceedings of the 8th European Conference on Patterns Languages of Programs , 2007 Irsee, Germany. UVK Universitätsverlag Konstanz GmbH

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.