Sunday 13 March 2016

Scaling the Heights



The production of software is increasingly becoming viewed like any other commodity with unfortunately little inherent value being placed on the code itself.
What this means is that unless your doing something very clever the only way to generate income from a technology business is scale, if your able to offer a service to the masses you can start to leverage some profit from your developers efforts.
Scaleability is a property of a code base in its own right and as such needs its own consideration, it won't just happen you have to anticipate what will happen when this system is getting intensively used and what problems only arise when your product is being used at scale.
Delivering on Your Promises
The first piece of software you drop into the market is only the first step, you can't even see the mountain at this stage let alone start to climb it.
From then on you most deliver consistently on an increasing cadence, not only new features but fixing defects, plugging holes and increasing performance.
The only way to achieve this pipeline is via automation, the days of a prolonged development cycle followed by protracted regression testing are over, someone else will fill the void your leaving before your ready to ship.
If your organisation is putting large amounts of conscious effort into deployment you run the risk of solving yesterdays problem when your software does eventually drop, instead deployment needs to become such a regular occurrence as to become mudane.
Diagnosing the Patient
When you've deployed a system at scale you can't afford to be reactive, you have to proactively monitors its health, by the time users start reporting a problem it has already become detrimental.
Careful thought should be put into what data, statistics and indicators can be drawn from a system.
This process should be entirely data driven, no presumptions should be made about what the data will show or what we want it to show, collect the data and learn the lessons it teaches don't try and force it in a particular direction.
When this data tells us about potential problems or possible improvements we need to factor this into our plans as no matter what we may think is happening that data represents reality. 
Securing the Castle
As your user base grows so does the level of trust those users are putting in your service, and unfortunately your success will bring attention from those that wish to break that trust and separate you from the data you hold.
Its important to realise that this is about more than just securing the data pertaining to the service your offering but protecting the user in general.
Many of your users will being using the same passwords and credentials across multiple services and they won't forgive you being the weak link in the chain that exposes it all.
Security and users privacy must be a consideration in everything you do and its even more important in this aspect that you are proactive and not reactive, waiting until there is a breach is too late.
Many of the things you need to consider when scaling your system are the same as when you first built it they simply scale in proportion to your business. But some problems are unique to a system with an increasing user base.
These are problems we are all striving to have as we aim for success but we do still need to supply answers and anticipate them rather than being caught out by users actually liking what where doing.

No comments:

Post a Comment