I was sitting in a talk today here at the PHP NE Conference, where the presenter Fabrice Bernhard was setting the story on why it’s time to migrate that decade old PHP4 app into one leveraging a modern framework like Symfony. His key focus was the “how” to do that migration from a legacy and homegrown application structure, advocating away from the traditional methodology of a side-by-side rewrite, leaning more towards the concept of “progressive migration”, where you replace individual components over time. The former approach tends to be hampered by the additional labor of maintain two systems with no easy transition from the old system to the new. But the more important thing is that progressive migration gives a better sense of progress, giving a better sense of control in the transition
Case in point, is the story of FoxMeyer Drugs’ and their failed SAP implementation from the mid 90s. It’s an interesting tale to read, and one that’s all too common; people buying into a technology direction without thinking about the pieces and processes that can make it successful. Look at the big fails along the way, which hampered their success.
- Communication between the warehouse staff and executives was non-existent. The warehouse staff didn’t see how they fit into the big picture, and fought against the implementation at every turn.
- Poor scoping on performance requirements. The system implemented was drastically slower than the previous one, and had no way to deal with growth.
- Not having the right people in place to execute the project, including leaning on a consulting firm with little experience and high turnover
- Big change in scope and focus of the project part way thru, which caused huge cost overruns.
- But most of all, the blind arrogance of pushing thru an aggressive timetable without room for the setbacks and adjustments that happen along the way.
So what’s the lesson here? Here are a few things I think are important to consider in any large-scale project…
- Every user in the proposed system is a stakeholder in the implementation. Enterprise applications traditionally have been designed with management’s needs in mind, putting the end-user’s needs after that. Efficiency with technology is gained by empower users and removing barriers, and this must be accomplished with any new system rollout.
- Keep iterations small and deliver often. This enables the organization to realize benefits along the way, enabling you to measure results and react easily. This also enables you to pivot the project along the way to deal with business need changes.
- Good leadership is a project’s greatest asset. I was reading an article recently around why innovation fails in organizations, and the general theme was that poor leadership and short staffing ( both in headcount and skill abilities ) causes more projects to fail than anything else.
So if you are looking to implement a new technology in you organization, whether it be CRM, ERP, or something else, remember one thing: successful implementations are a healthy combination of technology and people; without both successes are difficult to achieve.