Pivot

It is very common for startup businesses to pivot (i.e. change their proposition) as their business grows. It is less common for businesses to bake in the chance of a pivot when they start.

What does youTube, Flickr and Twitter have in common?

You may know that youTube started life as a dating platform. Twitter started of life as a podcast subscription service. Flickr was originally a role playing game. All of them discovered that their original business model was not working and they ‘pivoted’ based on early feedback they had obtained. It is common for startups to flex and change their proposition in micro changes as they learn more from customer’s about the problem they need solved.

This is why an agile development approach is often better than waterfall when the problem is not fully understood. At the early stages you are not just developing software, you are testing the market. This is really the whole genus of a startup. You have a great idea and you keep evolving it alongside sales and marketing to try and find the real solution that your customers react positively too.

However, what is not so common is to communicate the likelihood of this happening with development resources from the start. There is a real danger that founder arrogance (which is absolutely necessary to get the process going at all) is so strong that the development team make architecture and design decisions that reduce overall flexibility.

I believe a pivot orientated approach should be taken. This is when the development team absolutely expect the solution will change. This means that there is time given to ‘what if’ thinking during the design stages. It also means the business owners need to keep close to the development team and keep them in the loop.

So, a good development team should architect for flexibility but it is important that the business owners keep the team close and everyone goes forward on a basis that change is good, may be essential for success and should be expected.

Architecture

Having a good software architecture is really important if you want to make money. This article tries to simplify the technology into a very short, non technical article that will help non technical business leaders understand what ‘software architecture’ means’ and why it is important to the bottom line.

I was asked by a business recently what the term software architecture really meant. The company had heard a lot about it but did not understand what it was. So I gave them an ‘architecture for dummies’ kind of response and they said they thought it helped them. So, here is the anecdotal , trying not to be technical, response to the question: what is software architecture ?

Firstly, software architecture is as important to software solutions as traditional architecture is for buildings. If you don’t architect a building correctly it will look horrible, be hard to build and may very well end up falling down. Software architecture is the same. I thought I’d explain it by walking through one classic software architecture: a layered architecture.

Programs are generally created by writing functions, i.e. “Get Customer”, “Calculate Interest” etc. The idea behind a layered architecture is you separate these functions into layers and mandate that each layer is responsible for one (and only one) major part of the overall program.

The diagram to the side is a classic layered architecture, this one has 5 main sections:

  • User interface layer only presents information to user and accepts input (generally, these are web browser or mobile app based interfaces).
  • Application, is the main program, i.e. “Run mortgage process”.
  • Business objects are high level supporting functions, i.e. “Get customer mortgage history”. These may get re-used in multiple points in an application layer.
  • Logical Data is supporting functions i.e. “Get customer addresses”, this will operate correctly no matter where data is physically stored.
  • Physical is the low level stuff i.e. “Get customer address from an Oracle database”, things like SQL are normally in this layer.

The communications between the layers is usually carried out behind well defined application programming interfaces (API’s). An API is actually quite simple, is simply defines what inputs a function needs to do it’s job and what the outputs are. For example, ‘Get Customer’ may require the customer ID number and will return their address and balance on account. This means I can change code behind the API without risking the creation of unforeseen errors to all the other parts of the program that use the API.

A layered architecture mandates that you can only call into the layer below. So the UI layer could not make direct oracle calls to the physical layer but would have to go through the application layers.

“So what”, I hear you cry! Well, let’s say you were using an Oracle database but then decided it was too expensive and you wanted to move to MySQL. Well, the only layer you would have to reprogram would be the physical layer. This will reduce risk and cost. If you had not done this your developers would have to modify many layers which would increase cost and increase the chances of introducing a bug.

More importantly, as the API’s themselves may not change, you can radically change the internals of a function (sometimes called refactoring) with little risk of breaking other parts of the program stack. So you might, for example, completely change the rules for calculating a mortgage but the UI, which calls ‘Calculate mortgage’ API, might not need to change at all. This allows companies to develop more agile and maintainable code faster. It also means that new software engineers know where to look for the code that they want to change.

So, is this what most software developers do ?

The Bad News

In my experience, there have been lots of times where developers did not think enough about the architecture of their solution. They were so keen to get on with the programming that they omitted this stage. I think this is because they may have been taught to program and not engineer or sheer time pressure makes them hack up a quick solution.

In addition, the business idea behind the software is often run by non technical entrepreneur’s who just assume that best practice is being observed. Generally, if the development is not being overseen by an experienced architect, it’s not being done.

This creates real problems for the business as it is normal for the software to be changed multiple times as the business pivots. The result is a code base of ‘Spagetti code’ which is hard to maintain, is buggy and slow to respond to the market. Therefore, as a business owner, ensure you have someone architecting the solution before the programmers start hacking away.

I also reckon that it is one of the key areas you should investigate if you intend to acquire a business with custom built software. Find out how the solution was architected and who knows how to develop and debug it.

Maintenance costs and unhappy existing customers, may be the pig in a poke that you could well do without.

MOT for Software

In some respects, software businesses are like cars. They need periodic maintenance and checkups or they will break down !

Over the last 40 years I have worked hard to make many software businesses successful. From startup to enterprise level. Over this time I have refined a number of techniques that allow me to dig into the most common areas where a software business will begin to lose money.

There are 8 main areas that I investigate and I have now updated my diagnostic tool that I can use to give a report back to business owners on what areas of their software process might need some attention. If required,  I can continue to work with the business after the MOT to drive the necessary change into the business.

The above diagram is a representative output from the process. It is not an automatic process and requires me to meet and work with your team but it is an attempt to give a metric on which business owners can respond. I think it a great tool to use if :

  • You are a startup and don’t really understand the software life cycle and could do with a friend to rely on.
  • You are an established business but know that you could improve your business and would like external help to galvanise your team.
  • You are about to acquire a business and would like an insight into the underlying software processes and general state of health of the business.

If you would like to know more about this or book me in, please contact mike@red25.com or call +44 7808 056269.

Wicked Web

The importance of you website cannot be underestimated. This little article pokes a bit of fun at the practices of many companies.

Whilst the subterfuge might be necessary, it really pissed Dave off. He had changed trains twice and had made sure he left his mobile phone at home. Not having his mobile with him was enough to make him shiver. But here he was at last. He looked across the café and there was Terrance, eyebrows raised and a smug smile on his face. Dave walked over.

‘What have you got for me today? ‘ said Dave. He sat down and flicked open his laptop.

Terrance smiled and began ‘Today, my friend, I’m going to tell you about the Internet and in particular how the Spikes use it to control global commerce.’

Dave looked up, nodded then created a new document. ‘OK, lets go.’

Terrance began, ‘Have you ever wondered why so many companies go bust.’

He paused.

‘Did you know that 50% of all  businesses fail in the first two years ?  Now, technically the reason why most fail is of course  because they run out of money. But the Spikes certainly help these failures along and one of the main ways they help them fail is via their websites.’

‘How so?’  said Dave.

Terrance grinned, thought for a moment then began. ‘You know there are only three purposes of a website.  Ecommerce, to enhance a companies’ credentials and to generate leads. Lets not worry about the first one; the Spikes already control Amazon et al.  However to make the smaller guys fail they encourage really bad habits that cause the smaller companies websites to become ineffective.’

‘Have you ever heard the expression “form over function”?’  Dave nodded.

‘Have you also noticed how most websites look the same these days? Typically they look better and better every year. They are normally responsive design, simple background images, funky fonts, great pictures and easy to use. In fact they are gorgeous.’

‘So why is that a problem?’ said Dave.

‘Well it’s not a problem in itself, but the design is typically controlled by a certain part of the business. For most smaller businesses, the creative team are normally external and are motivated and driven by design. The designers will probably drive a mini cooper, design on an IMac, love Casablanca etc. In short they love good design probably more than they love the function of the site. ‘

‘Now, this is not in itself an issue, but it is a work of genius that the Spikes promote. They never discourage good design, but they make sure there is a gap between the designers motivation and the business needs. In short the messages that should be used to try and generate more leads are often lost in this gap. Even more than this they leave the impression in the mind of the CEO that the website is OK because the web team are all over it.  The reality is that what the CEO knows as the businesses core strengths are often not represented on the website. ‘

‘How many websites have you visited and don’t understand what the business does. This happens all the time and results in a huge loss of lead potential for the business. Companies try hard  to get people to visit their site. But, hey presto, when they do they visit they do not recognize that the company can actually help them.’

‘Sorry, I don’t understand, what do you mean? ‘ said Dave.

‘Well. Surely the purpose of most businesses is to help their customers. It must be. But, if you look at most websites they tend to speak more about the owner of the web sites rather than problems of their customers and prospects. They are self-obsessed. They will talk about all the great products they have, their companies’ offices, the brilliance of their staff and so on. It is the wrong focus. But hey, they do it in a really pretty web site!’

‘The prospect is forced to search around to see if this company can actually help them. Now this might work if the prospect was already known and directed to the website by one of the companies’ staff. But even so it would be better for the prospect if they saw their problem on the website along with how with company actually solves the problem.’

‘It’s even worse for product companies. Now most of them know that they should be selling benefit over feature. But do you know what, they do the exact opposite. There will be a list of products that the company sells along with funky names and icon’s. Products that the company is very proud of, but the visitor to the site has no idea of what benefit it would bring them.’

‘Often this is even on the home page !‘ He whispered.

Terrance smiled.

‘In addition the copy is normally given by a technical resource and is copied verbatim onto the website. So the poor prospect is faced with a barrage of words like: framework, cloud, federated, big data etc. etc. They have no idea what it means for them, they are lost and typically seek the solace of a trusted brand. So, yet again the Spikes keep control and another company is on the train heading to oblivion!’ Terrance paused.

‘So there you have it. By promoting really bad messages really great products and services never see the light of day.’

Dave typed a bit then stopped. Looking directly at Terrance he asked ‘How do the Spikes control this behaviour, surely this is in the hands of the management of the company.’

‘Great question! They do it in many ways. Firstly, they create a number of operational issues for the business, like shortages of cash, performance problems etc. that put the team into firefighting mode. They then engineer changes to market conditions that affect the value of the company’s proposition. The management team reacts. But in doing so they lose sight of their strategy and forget to focus on the customer, as they are too busy surviving. The net result is that shabby web sites are allowed to flourish which permeates the problems of cash etc. It’s brilliant really.’

Dave sat back. It was true. If businesses kept a focus on their customers’ problems and offered great solutions they could change the game. But alas, unless they kept reminding themselves of this and reacting with their strategy, the situation would not change.

He sunk back into his chair and though.