Symptoms of dysfunctional architecture – budgeting software development in digital transformation
18 February 2017 Comments off
Reading time:
17 minutes
Word count:
3773
I have been involved in a few projects that are considered digital transformation. The term has a wildly convoluted meaning inside the industry. Some people think that this is about bringing about Agile software practices to laggard organisations, others believe that it is all about converting monolithic systems to micro-service oriented applications and, still, others think it is yet another baseball bat to beat the hands of IT staff. Whatever they think, I have rarely seen people talk about the financial budgets of a digital transformation projects. In this post, I going to open the window into budgets.
Doing Nothing
Software has a cost. In software architecture, when we create systems, we are development against factors: cost, time-to-market, maintainability, flexibility and so on. We tend to calls these features quality properties. There is always a trade-off in systems architecture. There is no such thing as absolutely zero cost software. We, consultants, attempt to explain this to several clients, but often our words of advice goes for a button. Software has a lifecycle and therefore a time of relevance. Eventually, software goes redundant through age or outside influences. Let’s have a look at typical circumstances where clients are very focused on time-to-market and yet they are careless about the process and budget.
So what sudden circumstances causes a client to suddenly think of new project? In no particular order, these are the usual suspects of reasonable causes:
- Legacy – the main provider announces the runtime, the operating system or even hardware has reached the end-of-life.
- Progression – the programming language and libraries are superseded by the next great thing
- People – The people who know how to maintain the software are now retired, unavailable or expensive to find and recruit
- External – a hard-coded proprietary dependency is no longer is in business, becomes unsupported and/or becomes very unreliable.
Software is an amalgamation of executable bits. All bits eventually rot away into irrelevancy when there is no viable revenue. The ROI #1becomes severely negative (ROI = Revenue – Cost). In other words, we architects, can accidentally build premature time-bombs into our architecture, because we forget that eventually technology becomes redundant. The real question is how do we inform our clients? How can we graciously tell them to replace ageing software, reinvent like Madonna, and take on the next hill climb in order to get on top of the next plateau. If we inform the client and they still refuse to the budge, and we know we are correct in our strategy, then that is, indeed, another problem: a business relationship.
ROI is usually expressed as a percentage and is typically used for personal financial decisions, to compare a company’s profitability or to compare the efficiency of different investments. The return on investment formula is: ROI = (Net Profit / Cost of Investment) x 100. In other words, you may lose your investment if you do not realise how much the process, software development is going to cost you. If you project over runs, then you will go into the red.
Traditional Budget
Let’s play a game of imagination and empathy. Assume that I am the CTO of fictional Xanadu Uthixo Enterprise (XUE) and I want to hire a crack-squad engineering team. Whilst my IT budget isn’t infinite, I want people with decent skills, ethics and behaviour.
Let’s look at resourcing at software development and we will assume that everyone in this team is contract hire. Let’s assume that we use median contract rates as a ball park. If we want the very best talent, then it cost more, but how much does the team cost overall?
Role Position | Day Rate | Number of Persons | Total Unit Day Cost |
Contract Business Analyst | £ 425.00 | 2 | £850.00 |
Contract Architect | £ 525.00 | 1 | £525.00 |
Contract Lead Developer | £ 468.00 | 1 | £468.00 |
Contract Interface Developer | £ 425.00 | 4 | £1,700.00 |
Contract Senior Developer | £ 475.00 | 4 | £1,900.00 |
Contract Tester | £ 350.00 | 3 | £1,050.00 |
Contract Project Manager | £ 500.00 | 1 | £500.00 |
Contract Operations | £ 525.00 | 1 | £525.00 |
Total | £7,518.00 |
That is a quite a big team of 17 folk and in my experience this is the bottom end of an affordable luxury VIP development team. Why? We are taking the median contract rates. Also let us assume that we have perfect talent-search outcomes. In other words, as CTO, I can attract the best, I have a warchest of British Sterling to burn through, and also candidates will 100% accept a contract with Xanadu regardless of family circumstance, spouses, children, location, travel, any of it. We will also assume that everyone starts on the exact date e.g. First working Monday of January and that all members of the team are on 6 month contracts.
Obviously, £7518 per day for the entire team is not the true figure. Recruiters will add their margin business rate on top (from 11% to 22% ) and also Xanadu will collect VAT (20%) on behalf of the revenue (HMRC). So Xanadu have to pay the VAT for all contractors with Limited companies (and obviously here the calculation rules vary with respect for umbrella companies). In other words, the true cost is going to more than £7518 per day by some margin.
Let’s assume, we have a well-oiled team and there are no conflicts, no controversies and reduced politics inside it. Our team is the Real Madrid F.C of the software development world, they have X-Factor and everyone in it, including yours truly, the CTO, just gels instantly. Unfortunately, the commercial world and the divest economy does not produce such teams, and if they do it is very rare. #2 #7
is thought of as a special exclusive football club to play for, to manage, and to be involved in.
At the time of writing, this club has won eleven European Cups. It is one of the top marque clubs
in the whole world and thus they have a brand, a following and finance to attract the best footballing
talent from South America, Africa and Europe.
prise away certain superstar rock-star engineer from say a Microsoft, Oracle, Google or RedHat.
How much money would you chuck at an individual, not naming names, in order to get him or her to leave and join
your crew, assuming you have great prospects, budgets and projects?
Cutting Corners
You may only want to pay a 10th of my price, you might find that on the market, but you will never the value.
If your business is not like mine Xanadu Uthixo (remember fictional guys and gals) then you will might be baulking at £7500 per day. You want value for my money, but maybe still want a reasonable functional team, but way cheaper. You may want to pay only a 10th of the price of the cost, you might find that on the market, but you will never the value. You can sit with how many stellar branded outsourcing firms dressed to nines in their bespoke Versace suits and Oswald Boetang ties and spanking Hugo Boss black shoes until the cows come home, and I will still be right on this notion of value. You may only want to pay the 10th of my price, you might find that on the market, but you will never the value.
My team at Xanadu runs a two week Agile SCRUM sprint and we perform sprint planning, retrospectives and demos with a stakeholder client. So in physical terms, we actually perform 8.5 days of work in the office. I also allow my team to work flexible hours up 7.5 hours in the office, co-located of course on site. However, the core hours are between 10am to 4pm. This means co-workers can start early in the morning at 07:30 and leave at 16:00 or they can come in 10:00 and leave at 18:30. (I prefer not to burn out my staff, and by the way I have read the book REWORK).
The cost of one SCRUM iteration is £63,903, over one month it is £127,806 and over six months the cost of the entire SCRUM project is £766,836. But don’t sweat it, because I am a fictional CTO, I have vernacular and I got the “lolly” #3 (the REVENUE to cover the costs (PROFIT == REVENUE – COST))
“Green” – the colour of a £1 British paper note used to be green. They are no longer minted or generally available.
How about you? You can’t deal with this expenditure in your company. So you might think of cutting out the most of expensive people (or resources). Do you need that architect for the entire six months? Perhaps you just get him (or her) into the office for one month Discovery phase. Do you need that additional business analyst? How many testers do you really need? Wait a minute, you have entire enterprise architect division internally that you can borrow somebody for a short term engagement in your project. You also can delegate to the IT infrastructure team and there is really no need for an operations resource.
Ok, so you revise your headcount with something like this:
Role Position | Day Rate | Number of Persons | Total Unit Day Cost |
Contract Business Analyst | £ 425.00 | 1 | £450.00 |
Contract Architect | £ 525.00 | 0 | £0.00 |
Contract Lead Developer | £ 468.00 | 1 | £468.00 |
Contract Interface Developer | £ 425.00 | 1 | £425.00 |
Contract Senior Developer | £ 475.00 | 2 | £950.00 |
Contract Tester | £ 350.00 | 1 | £400.00 |
Contract Project Manager | £ 500.00 | 1 | £500.00 |
Contract Operations | £ 525.00 | 0 | £0.00 |
Total | £3,193.00 |
You have just cut 10 people out of the equation. Therefore, you can run to your CTO with this revised hiring plan. The total daily cost is £3193 and over 6 months the cost is £325,686 for the project. What a saving! Or is it?
I will let you have victory in this project and let’s say the project is the golden goose #4 and it does go plan. The software development takes six months to deliver, not a day less or more, but of course we both know it does not flow usually this way in information technology.
You might be incredibly fortunate or not fortunate. Your CTO may shout at you and say this figure £326K figure over 6 months is ridiculous, “you’re a silly idiot!”. Maybe, you don’t need the best half median. Perhaps if you tinker with the standards of team and squeeze the recruitment companies to get cheaper candidates, it will be certainly be cheaper. If you go to slightly less qualified candidates, you don’t need the best, but you can cope with just good enough.
Okay, let’s see how that goes:
Role Position | Day Rate | Number of Persons | Total Unit Day Cost |
Contract Business Analyst | £ 375.00 | 1 | £375.00 |
Contract Architect | £ 450.00 | 0 | £0.00 |
Contract Lead Developer | £ 420.00 | 1 | £420.00 |
Contract Interface Developer | £ 350.00 | 1 | £350.00 |
Contract Developer | £ 400.00 | 2 | £800.00 |
Contract Tester | £ 325.00 | 1 | £325.00 |
Contract Project Manager | £ 450.00 | 1 | £450.00 |
Contract Operations | £ 425.00 | 0 | £0.00 |
Total | £2,720.00 |
Over 6 months, your cost is £277,440 and big saving is money. What are the changes that the software meets the Minimal Value Requirements of the customer? How many errors will be present in the Final Release Candidate?
You, then, have a brainwave. What is this trend about full-stack developers from recent years? Isn’t it all about finding engineers who have both front-end and back-end skills? Programming is programming after all, it is all code, you can ignore strength and weaknesses in individual skill set, personality and emotional intelligence.
Nevertheless let’s work this rate reduction into a new calculation:
Role Position | Day Rate | Number of Persons | Total Unit Day Cost |
Contract Business Analyst | £ 375.00 | 1 | £375.00 |
Contract Architect | £ 450.00 | 0 | £0.00 |
Contract Lead Developer | £ 420.00 | 1 | £420.00 |
Contract Interface Developer | £ 350.00 | 0 | £0.00 |
Contract Fullstack Developer | £ 414.00 | 2 | £828.00 |
Contract Tester | £ 325.00 | 0 | £0.00 |
Contract Project Manager | £ 450.00 | 1 | £450.00 |
Contract Operations | £ 425.00 | 0 | £0.00 |
Total | £2,073.00 |
Wow! You got rid the testers, because developers should be testing their own software. Because we have two full stack engineers, they can do the work of the single interface developer that we expired, who specialised in HTML5, CSS and JavaScript. After one month, your total cost is £35,241 and after six months, your total cost is £211,446.
If you like building professional software on the cheap, then your mileage will vary and you will certainly buy the value matching the quality that you paid for. Not mention you will have errors in the production system, because the developers were a little weak in their Java or JavaScript knowledge and application of that said knowledge.
Digital Transformation Project
Let’s look at a digital transformation project. Let’s also look at a client with deep pockets, or at least, one would like to think so, the government. Digital transformation is about investment, taking physical and paper based processes and delivering an online experience and modern architecture suitably for the twenty first century. This is the long-tail and unfortunately it is not free. Some other multi-nationals, concerns and corporations may also be able to match the government investment and in certain instances, even surpass it.
So let me pick an Exemplar project of note called Zebra Registered Land Address where every citizen legally submits a home address for municipal tax purposes, if they own a house or rent a flat. (Council Tax). Let suppose in this ZRLA project that we are already passed the Discovery Phase #5, and we are ready to build the Alpha Phase of said software.
- Discovery – this phase is devoted for analysis, research, and deciding whether to go or not go ahead
- Alpha – the development of initial working product, which simultaneously allows for testing and feedback
- Beta – the initial working product is released to selected users and team is working close building the minimal viable release
- Release – the working product has met minimal viable release, the requirements have been fulfilled and the product is live on the servers
We might reason that we don’t really need a full time technical architect full time on this project. ZRLA could share the architect with another Exemplar. We have a technical architect ? of the time and that might be reasonable.
We definitely need a SCRUM Master full time in our team, who reports upwards to a dedicated project manager who is responsible for three other work streams. In other words, the PM is shared ¼.
Because we are government project, we need to test with the citizens of our country. So let’s grab a few creative designers (for Photoshop and Illustrator design work) and a senior person to manage them. We also hire Debbie, who is an experienced content and copy strategist, but she only works part time (say 50%). We also reinstate business analysts, Sarah and Ian. Ian can only contribute part time on the project.
For this Examplar, that we need to demonstrate a quality MVR (Most Viable Release) with the Ministry of Noddy Housing Records, otherwise the project could be halted. So we definitely reinstate the testers and also add at least one Operations individual who knows about AWS or Google Compute deployments. In order to meet the new Digital Standards, we also need UX designers in order to check and feedback on the final software.
What would the digital transformation team cost look like?
Role Position | Day Rate | Number of Persons | Total Unit Day Cost |
Contract Business Analyst | £ 375.00 | 1.5 | £562.50 |
Contract Architect | £ 525.00 | 0.3333 | £174.98 |
Contract Lead Developer | £ 420.00 | 1 | £420.00 |
Contract Interface Developer | £ 350.00 | 6 | £2,100.00 |
Contract Senior Developer | £ 475.00 | 6 | £2,850.00 |
Contract Tester | £ 325.00 | 3 | £975.00 |
Contract Project Manager | £ 450.00 | 0.25 | £112.50 |
Creative Designer | £ 400.00 | 3 | £1,200.00 |
Senior Designer | £ 440.00 | 1 | £440.00 |
UX Designer | £ 475.00 | 2 | £950.00 |
Web Content Strategy Consultant | £ 400.00 | 0.5 | £200.00 |
SCRUM Master | £ 500.00 | 1 | £500.00 |
Contract Senior Operations | £ 450.00 | 1 | £450.00 |
Total | £10,934.98 |
Unsurprisingly, the cost for a single day is £10,934.99 for 26.5833 members of staff. Software is about the quality and value of the people. So after a two week iteration, our costs are £92,947.35 and for the entire six months without interruptions, holidays, sickness and flawless executable delivery, we have a grand total of £1,115,368.22 #6.
Conclusion
The moral of the story is that digital transformation looks expensive, because the CTO needs to hire professionals in order to ensure delivery of the value. The client, the Ministry, has a contractual agreement to cancel the project and kill it dead. Therefore compromising on value is a terrible choice. To the unsuspecting reader, the Agile approach appears expensive. However, compare this sample expenditure to costly large consultancy figures and you might agree to see it works out better in the long term.
The UK Government Digital Service took this alternative approach. Their strategy is focussed on the application of Agile software development and Lean software development methodologies, supplied primarily via small and medium enterprises rather than large suppliers (*See warning below about Off-Payroll Worker rules).
There’s no skills shortage…only a skill shortage at certain price points, just like there’s a shortage of Bentleys at £15,000.
The symptoms of dysfunctional architecture are:
- Being unaware of the full cost of the project
- Overestimating the ambition of the project and believing the hype
- Settling for less in order to target a fixed cost
- Recruiting less qualified individuals for the team and therefore execution slides, deliver is compromised
- Cutting corners of the lifecycle, people and resources
- Ignoring the effects of errors in the software construction process
- Cultural unawareness of digital transformation
One, some, or all of the above can torpedo the very best intentions of building the next generation system, application and platform with high value. The first dysfunction is to completely underestimate the cost of a software architecture. It is people who create the software.
Additional Notes
In this scenario, I have left out consultancy daily rates, because I really do not have exact monetary figures or quotable sources for them. Clients often prefer to go with big name consultancies rather direct with a contractor, because it puts a legal, financial and resourcing buffer between themselves and the “worker”. Consider that consultancy fees are rumoured into a £1000s per day. Consider a software developer at £450 per day, a consultancy might mark him or her up to £1000 per day plus VAT and the rest. Who pockets the margin?
Specialists skills typically cost a lot more, because the talent, experiences and availability is scarce. Not every project requires a web content consultant, but some projects might need a security specialist and some projects will need an expert data architect.
For the illustrations, I used a team of interim and contract hires. Many companies will prefer not use so many contractors or none at all. The calculations for full-time employees will be similar taking into consideration fractions of annual salary. Of course, if the six month Examplar with Xanadu Uthixo Enterprise blows up and the ministry says, “No. I reject your MVR”, would you fire everyone in the team? Would you transfer some employees to a new internal team? What? The worse thing to do would be to bury the cost as part of payroll (Hint: there are pre-project costs and post-project costs and they are incorporated into a SDLC (software development lifecycle))
Clients often believe it saves them money outsourcing software development in order to reduce the cost of local workers, but it is often with a severe risks in terms of final delivery. There are rumours of C-Level officers who allegedly make a living going from company to company and only staying for a few years. In the time, they will go through the outsourcing model, cutting costs through restructuring and job redundancies; and not increasing production and/or revenue, whilst manoeuvring to yet another platinum opportunity. Eventually, they leave the business and the rest of staff have to pick up the broken pieces. This is not digital transformation. This is not strategy, this is just avarice.
The big driver is the cost of software development and getting close to reasonable figure of intent. You should avoid at any cost, no pun intended, the race-to-the-bottom. If you don’t spend the money in this economic cycle, almost certainly in the next cycle you will find your organisation will even further behind the times. (Upgrading code from classic Java to Java 8, springs to my mind. Think of the forthcoming Java 9 or Java 10.) Hiring people to work on legacy systems becomes increasing difficult, because the majority of technology workers want to stay reasonably up-to-date. If you are cutting corners now, then price is your driver. With price, you will start to see more errors, lack of quality, deteriorating internal processes and lack of integrability, flexibility, robustness and availability. On the hand, if you change to value as your driver instead, then the outlook will be better. If you want to see big value in your current and futures services and products, then you need back it up with reserve finance and resources.
The budgets for high availability systems tend to be the most expensive, cutting costs is generally not a realistic option in nuclear, life-support, military, high-risk explorations and medical system architecture.
If you are contractor in the UK still working in public sector then you might have noticed the Off-Payroll Worker rules. These are mandated by law and apply from the 6th April 2017. Of course, the calculation are affected. The latest information suggests, at the time of writing, that IT budgets in the public sector will inflate by at least 20%.
Finally, I referenced the IT Jobs Watch website in order to source the median daily rates against staff roles, which I used in the example calculations. The figures were correct as of 7th February 2017.
Peter Pilgrim,
Independent Contractor
February 2017
PS: This is yet another article off the back burners.