Continuation of my previous post
This blog post will speculate on Innovation and Automation processes and how they might affect the IT outsourcing business.
This blog post will speculate on Innovation and Automation processes and how they might affect the IT outsourcing business.
Fictional, yet quite probable story of one project in one bank
In a galaxy far, far away, one bank decided to deprecate its legacy system and re-create a project, in order to increase its flexibility and deliver more features that will reliably provide
a greater amount of revenue.
a greater amount of revenue.
Chapter 1. Team & Project
How we should reassign team & project in a safe way. There are several obvious choices
- Same team, in-house - probably, new system will be just old system rewritten - same technology, same architecture. It might give some benefits, but overall delivery & time will suffer. Additional hire is possible, with question - what to do
with extra people once migration is be over? - 2 teams, in-house - take most promising people from old project, hire some new ones and re-create project with a new approach.
- 2 teams, in-house old project and outsource new one - promote someone from old team, so he will be transferring his knowledge to some smart people offshore.
- Outsource support + develop new project in-house (or mixed) - leave undesired people coaching how how to fix bugs in the old system, take brilliant in-house engineers and mix them with some talented contractors
Chapter 2. Automation
Every project needs infrastructure. What will be your choice ?
- Have same old reliable manual deployment process - +20% to development time, +1 Ops guy
- Have separate automation engineer - -10% development time, +1 devOps
- Have everyone ( or at least 2ppl) in a new project team who can support automated deployment solution (CD) process - -10% dev time, requires up-front investment, +1 devOps
Chapter 3. Innovation
What technology and approach to use for the new project ?
- Same technology, same approach - who needs innovation anyway ?
- New technology - learning curve might be steep, risks of instability are high (really?), potential profit - fast time to market with less maintenance.
- Stability - Scala was presented in 2003, so it's pretty stable now. Many fall victims of the familiarity bias.
- Quality - less code means less bugs
- Productivity - once you master it (it's more complex than java), you can be much faster than before (survey result with numbers)
Chapter 4. Conclusions and alternative endings
Now let's say there are 100 companies on the same market. How many of them can survive with ch1.3 approach (outsource new stuff)? It is much riskier than ch1.4 and in 2 years perspective quite suicidal for the business (As in Funky Business - outsource all but critical).Let's say 30 of them will go with ch1.4 approach. 10 will choose ch2.3 and 5 will go with ch3.2. 3 of them will go bankrupt due to various reasons, new technology included.
So 2 out of 100 projects will have time to market at least twice as short as market average. Management in these projects will listen to their developers, and developers will listen to product owners. I would definitely buy stocks of these companies.
In 4 years perspective, what companies/projects will survive and flourish ? I think the ones
that have chosen ch1.4+ch2.3+ch3.2 Do you think these companies will be outsourcing new projects/new technologies ? Quite possible. Will service providers be ready for it ?