Saturday 11 January 2014

Sustainable software

It's almost trite to say we're living in a time of unparalleled change, especially in the digital sector.  The evidence is all around in the many business sectors reinventing themselves around digital models, there is sustained interest in entrepreneurship to fuel further change [entrepreneur porn] and predictions that 2014 will be the start of a global market place for particularly digital talent.

Even five years ago a simple marketing website was sufficient for many businesses, customers now expect to not only to buy online, but also make returns, reserve goods or track delivery using desktop, mobile and tablets.  Organisations need to pay attention to SEO across all platforms, user journeys, social media and as barriers to entry fall, monitor new technology developments that will spawn competitors that didn't exist two years ago.  

Increasingly many businesses are finding they are digital businesses as well as traditional businesses.  However for many of the same businesses "IT" was something bought in externally: an agency for your website; an ERP provider; or a payment systems specialist.  For larger companies consultancies did much of the work of linking these systems together.  

As technology becomes central to much of what businesses do, how they engage with it needs to change.  It's no longer a case of buying upgrades on a three or five year cycle, but a continuous investment requiring full time attention.  This post argues that many business are now in technology for the long term and that fundamental changes in thinking are needed to develop a sustainable digital future.  

How do organisations move from periodic investments to sustainable software?  Below four key topics are identified that businesses need to consider when embarking on technology-led change management.  

Strategy

To deliver results a digital strategy needs to be flexible and analytics driven and above all built for the long term.  Lean Startup is an emerging branch of management thinking that has grown out of digital business practice.  It asserts that a startup is any endeavour started under conditions of extreme uncertainty.  At launch it's very difficult to predict how a customer will engage with your product (if at all) and which parts of the service will really take off.  In response businesses should launch Minimum Viable Products, (the smallest possible service for the minimum possible investment) and then rapidly extend the product, whilst rigorously measuring what works and what doesn't.  Where an idea doesn't gain traction be prepared to 'pivot' your product rapidly to one with more potential.   

Lean Startup immediately challenges how most businesses engage with their technology providers.  Historically most engagements are discreet projects with signed off requirements, fixed costs and fixed schedules.  Can your business really predict in advance if the requirements agreed are the right ones?  If the annual digital budget has been sunk into a single project, how will you react when customers hate your site registration policy? 

Organisations need to consider carefully how they fund their technology systems and what the balance of in house vs. bought in services is.  Where companies use external partners be clear about what the objectives are: technology skills; access to the latest ideas; or training?  Will the investment be project based or a long term partnership?  

Agile development

Increasingly the standard approach for software development, Agile has emerged over the last 15 years, promoting a focus on incremental delivery of working software rather than volumes of up front documentation or large single releases.   In many ways agile was really the first management response to the change unleashed by the digital age and it remains the underpinning of all other strategies.  With the ability to rapidly update web sites or app stores with new versions of software, the already useful Agile approach really reaps benefits, not only can organisations quickly develop new versions of software, with the Internet they can now rapidly deliver them to end customers and start to understand how real customers start to respond to changes in the product.  This approach is called incremental delivery.


Intelligence

The benefits of incremental investment and delivery give organisations the ability to quickly change a product in response to how customers use it.  In order to decide what to put in the next release organisations must actively learn from the last one.  As incremental delivery has become wide spread models have emerged for learning from each delivery.  

Dave Maclure developed Startup Metrics for Pirates and Eric Ries conceived Lean Startup to show how to measure each release and conduct experiments (A/B tests) to find out what works and what doesn't.  Impossible without incremental delivery and instant Internet-based distribution, measurement fundamentally changes the software investment lifecycle.  One-off waterfall investments no longer make any sense as Ries and McClure demonstrate to find out what works and capitalise on it requires ongoing investment not a single hit.  The answer is to keep product developments lean and agile saving money for ongoing investment rather than spending all the budget on a single release.  

Organisation

As digital becomes more widespread, incremental development starts to become accepted and measurement and experimentation drive product road maps towards continued development of products the organisation needs to change to make software development sustainable.  Development is no longer a discrete activity, but a continuous process that is core to the life of the organisation.  

Organisations, that in the past may not have considered themselves in the technology business now have to consider how they fund technology development, whereas existing technology businesses must ensure they keep ahead of nimble new competitors.   

New organisation structures are emerging that show how to build a flexible technology workforce that is able to change and adapt as business opportunities present themselves.  

In an influential paper, Spotify, describe how to scale Agile by creating 'squads' focused on particular parts of their platform - each squad is designed to operate like a mini-startup responsible for it's own destiny and able to develop their part of the platform as they see fit.  

Valve, the games company published their staff training manual online.  Their culture has the lightest possible management structure with staff deciding what they want to work on and having no defined managers.  

The company I worked at for almost a decade, RM, evolved similar highly focused an autonomous teams led by a Creative Lead, Technology Lead and Project Manager who ensure all parts of a solution were in balance - although not identical,  this model was very similar to the squad structure later adopted by Spotify.   

Each of these initiatives shows how management theory is adapting to knowledge work in the software industry.  Developers have been frustrated for many years that often the only way to grow their careers is to move into people management.  The irony of this is that technologists tend to require little people management, are self motivated and thrive when left to solve technology problems.  Organisations are starting to realise that being a technologist is an end in itself to be rewarded and developed.  Bersin by Deloitte summarises how companies need to change their career and reward structures to develop highly skilled knowledge workers and not divert them to careers in people management.