Have you ever found yourself in front of a coffee-machine in the middle of a working day desperately trying to get a cup of coffee? It´s noon time, you might have already survived a couple of escalation meetings, a steering committee or quite intense one or another team discussion. Your short-term goal now is just a cup of coffee with a bit of nicely whipped milk.
So, you place a cup and press the button only to get the message that the evil machine is run out of water. You fill the water tank, press the button again to discover that now coffee is out. But you are strong and don´t lose hope that easily. After feeding the machine with some beans, you try again and you get…
Please clean the filters.
What a sophisticatedly engineered device giving you a barista lesson.
Life is a hard game sometimes. So are the new technologies.
In chess there is a tactic called zugzwang describing the situation when you are forced to make a move which will worsen your overall position.
Nowadays the world is changing fast, data volumes are getting bigger, computer capacity doubles every 2 years to accommodate. Business has to respond to the change of course. And technology can be either part of the winning strategy or put one in zugzwang.
What is migration?
But what is a migration in IT world actually?
Normally it refers to four areas:
- Software migration (e.g. OS Migration, enterprise software upgrades, etc.)
- Data migration
- Hardware migration
- Application migration (can involve all three dimensions above; can encompass all application levels or focus only on some of them. E.g., Core/Backend migration, User Interface migration, Interfaces migration)
And of course, migration can be done on the premise, to the cloud or hybrid.
Reasons to migrate
So many choices but why even bother? Coffee still can be made in a cezve…
Well, there are several dimensions where technology transformation can significantly contribute:
- patch security flaws & existing software vulnerabilities
- ensure data security
- reduce operational and maintenance costs
- enable cost-efficient further development of a system
- optimize technical support and system administration
- infrastructure optimization: leaner landscape with less dependencies & licence costs
Business process optimization:
- re-design existing processes to better respond to market & customer needs
- better risk mitigation
Enhancement of the system performance:
- ensure large volumes of data can be smoothly processed by the system
- cope with technology changes
Software quality & stability:
- enhance functionality
- improve usability
- bring compatibility with other software in use
- fixes for production bugs
Planning a migration project can take from several weeks to multiple months or even years depending on its scope.
And just by following the analogy above, quite often in the middle of coffee preparation the realization comes that there are no coffee beans left and someone needs to trigger procurement process again or maybe just go to a coffeeshop.
Just alike, before starting a migration project several aspects must be specially considered in the planning to avoid possible hidden costs:
- internal capacity assessment: the effort required for the project tasks is often underestimated.
Accompanied with scares among internal employees but specific to migration projects experiences, it leads to resources shortage, and consequently to timeline changes or involvement of eternal consultants on short notice
- additional coaching of internal employees
- integration costs are often underestimated, especially if some custom developed legacy applications are still planned to run
- agility trends: organizations try to adapt changes faster, but if it´s done in an unstructured manner, it can result in having redundant services, processes (partially) duplicating each other, unnecessary software licence costs
How to successfully test a migration project
One way to cope with many hidden costs is to include proper testing in the project plan. Steve Jobs once said that innovation is saying no to a thousand things. And testing is a powerful instrument to validate this “yes” or “no” answer.
Many might say though that testing is named #1 bottleneck in the delivery, and to avoid that and ensure your testing will be efficient and sufficient, several topics must be addressed during the planning phase:
- Determine the scope of the project, stabilize the requirements (incl. non-functional requirements)
- Determine the test scope:
- identify test objects & E2E processes (e.g. user interfaces, database tables, system interfaces, forms, reports, workflows)
- analyze changes between legacy and new applications
- conduct risk assessment
- Define test strategy & milestones:
- representative selection of test data constellations
- risk coverage
- automation strategy
- test tools & framework
- ensure test activities fit in the project timeline
- align test strategy with quality standards in the organization
- Define test team resources:
- required skill profiles
- test team organization
Generally, what we have found out today is, if a zugzwang is rather to be avoided, one needs to develop an overall IT strategy incl. QA standard and be a coffee lover.
Enjoy your cup of coffee over lunch!