For sure the majority of us working long enough in software engineering have been involved in at least one legacy modernization project. While each of these projects is different in it’s own way, there are some common pitfalls we should be aware of as they usually put significant risk on the modernization process.
These are the 12 most common pitfalls I often see repeating on legacy modernization projects:
👎 Unclear business goals for modernization. Unclear ‘why?’.
👎 Unclear business domain. Failing to understand what the application does.
👎 All or nothing. Release only when the entire application/system is modernized.
👎 Fail to transition. Each transformation comes in three steps – mindset, skillset, toolset – which need to follow in this order.
👎 Waiting to decide over one technology/framework/platform instead of considering a mix.
👎 Waiting for the right moment and starting very late.
👎 Failing to gather relevant knowledge about the system. Legacy software with no maintainers. Lack of knowledge of what’s running where.
👎 ‘If it’s new it’s better’ or ‘out code is better’ mentality.
👎 Willing to rewrite everything from scratch without first anticipating the magnitude.
👎 Failing to plan and predict, but still setting arbitrary deadlines.
👎 Feedback loop missing. Late integration of modernized parts into the whole.
What are your red flags when it comes to legacy application modernization or even brownfield projects?