Rich Windows app to browser app: What we learnt
Posted by Bruce Copeland - 28 October 2016
At Sandfield we aspire to build productive, long term partnerships with our clients to produce technology that provides a competitive edge. Sometimes we are a workmanlike supplier who looks after ordinary business as usual requirements. Other times we are deeply involved with strategic decisions that have a material impact on the direction and success of our client’s business. A relationship akin to a strategic alliance.
Everyone has choice so what are the advantages of using a good outsource provider versus employing people yourself or using contractors? In reality some outsource providers use contractors or view business as a series of contracts instead of an enduring relationship. So, a fair comparison is committing to an enduring relationship with a good outsource partner versus creating and managing that capability yourself inhouse.
Predictably the most common issue is cost. A simplistic calculation indicates the salary costs of a team directly employed are at first glance, less than the charge out rates of a software house who is in business to make money.
A fuller analysis will reveal that the costs are actually much closer. First, realistic salary costs need to be used and excellent talent is hard to find and expensive. We find many IT industry salary surveys are significantly below the true market rates for quality talent. Next, the direct salary cost needs to be loaded with a fair share of overhead and management time. This brings the comparative costs much closer, possibly within a third.
An external supplier provides flexibility to suit demand, offering efficiency. Careful planning ensures appropriately experienced people are available for planned work streams. When they are finished they move on and the cost stops.
Then there is the issue of productivity. An external team is specialised and typically operates under tight management and accountability with budgets, specifications and time frames. Accountability on an external supplier is significantly more onerous than typically on employees and contractors. Not to say that internal teams aren’t similarly disciplined it’s just that demands and expectations for an externally contracted supplier are much more rigorous. A deadline means a deadline. A good software house will have extensive systems and processes controlling and managing project risks and deliverables.
Despite the cost, is your team delivering exceptional value? A very good developer can be hundreds of times more productive than the least capable. Simplistically comparing charge out rates and salaries ignores the biggest determinate of great value, productivity.
A good outsource team is project orientated, constantly striving to complete projects to move on to the next one which makes them very efficient. An internal team is much more easily distracted and can get pushed and pulled around by internal demands. This isn’t a criticism, we suffer the same problem ourselves finding the time to make our own needs a priority. We also have partners to give us fresh perspectives and capabilities in areas such as design, marketing and accounting.
We once had a visitor to our office comment that “it's just a factory”. Initially I took umbrage at the remark but after a moment's reflection, that's exactly what we are. We are an efficient production line, a factory to produce great systems.
This brings us to “sticking to your knitting”. Are you in the business of software development and managing technology? Are you better off making others responsible for non-core specialities to free your organisation to focus on its own business? In the long run will you be more successful and profitable? We have SaaS clients who on the face of it are in the technology business but Sandfield is their strategic partner for software development as we are better at it.
There are a number of formidable challenges for anyone wanting to build and maintain a technology services unit, first is finding good people. Very good people typically want to work with similarly talented peers. What does your organisation offer that will attract and retain this precious talent? Are you able to recognise this talent when recruiting and can you nurture and grow the talent you need from intern programs? What about ongoing training and personal growth?
Technology is expanding in both depth and breadth, meaning there are new areas constantly emerging and the complexity is forever increasing. How many people do you need to cover all the technologies and do they have backup to cover holidays, sickness or when someone leaves? A good outsource partner has scale to maintain coverage over a range of specialities whereas small internal teams rely on talented generalists that can lead to undesirable levels of reliance on individuals and vulnerabilities.
Then there is domain knowledge. Every project is an opportunity to learn about a business and how technology has been deployed. Will the team be good custodians of this knowledge? Will there be a flow of fresh ideas and perspectives gained from completing projects with a large number of clients and industries? This is an incentive to proactively contribute new ideas and act as a sounding board for business improvement.
A good outsource partner doesn’t earn much revenue from “business as usual” activity or support and is reliant on ongoing investment in innovation. Is too much of the IT budget being spent on support, managing stability issues and performance?
At Sandfield we work hard to set and evolve standards and architectures to be used on all projects we undertake. We also have extensive software frameworks which we use on most new developments which handle important areas like security which are common over all systems and vital to get right. We know not all outsource organisations do this but we think it's important for the following reasons:
Without standards, well meaning individuals can utilise a range of technologies and architectures. We have seen situations where individuals have continually experimented with different technologies and approaches leaving a hotchpotch which has affected the long term viability of a system.
Setting standards isn’t easy. New technologies emerge weekly and their benefits need to be weighed up against making a change to the standards and the future cost of a change. Is this something that should be adopted now or when a new project is started? Is the weight of maintaining the existing code stifling progress and innovation? In any given situation does the standard approach mean a sub-optimal choice? Some people become very upset when they can’t adopt a technology or architecture they feel passionate about. Can you negotiate a resolution or is the inclination to acquiesce in case the person resigns? Does a passionate individual start to use a fear of resignation to exert undue influence over product direction and technological choices?
Or a term that makes me sweat, “one neck to choke” which also talks to the wisdom that it's advisable to have as few suppliers involved in a delivery as possible. Included in a good outsource relationship is the supplier's responsibility to just deliver the project as agreed. Although a customer is never completely insulated from the impacts of sickness, weddings, surprise resignations, technical problems and wild alterations in scope, it is the supplier's job to own the challenges and deliver the project successfully anyway.
Typically, Sandfield is responsible for software development and our clients are primarily responsible for setting priorities, determining scope, testing, deployment and adoption. Clients work on business requirements and we work on system requirements. In practice the two get blurred and the process is best described as cooperatively determining scope, budgets and timeframe as all three can be iteratively refined to achieving an optimal result; balancing business and technological imperatives and opportunities.
I’ve been known to describe the situation as employing a mechanic or a chauffeur. If your business employs a chauffeur to drive the adoption and evolution of technology in your business then you will be striving to optimise your investment. If on the other hand you employ mechanics then the risk is that your vehicle for innovation will spend a lot of time in your in-house workshop.