The idea of an Enterprise Resource Planning (ERP) system seems to be the ultimate solution for many companies’ problems. Oftentimes, the objective of implementing an ERP system is to enable companies to re-engineer chaotic business processes, coordinate the systems of dispersed locations, consolidate data, and give management real-time decision making tools. All of these can be very real outcomes of a successful ERP implementation. However, if managed poorly, an ERP implementation will encounter schedule delays, budget overruns, dissatisfied users and customers, and at worst – complete project failure.
ERP software implementations have traditionally followed the Waterfall Method of the Systems Development Life Cycle (SDLC) which gives structure to managing large information systems projects. In 2001, a group of software developers got together to discuss more lightweight development methods. They published the Agile Manifesto which laid out the underlying concepts for a software development approach which is iterative and promotes collaboration between cross-functional teams. Today, Agile concepts are being employed in otherwise traditional ERP Waterfall implementations.
The 7 Key Principles of Lean Software Development originated by Tom and Mary Poppenieck translates Lean manufacturing principles into the software development area. These principles can be applied to ERP implementations in the following ways.
1. Eliminate Waste – this is more obvious in manufacturing but how does it translate to software development? There are seven particular types of waste that Lean software development strives to eliminate.
Inventory – Inventory becomes obsolete, so does partially completed development work
Over Processing – Paperwork consumes resources, slows response time, hides quality problems and becomes obsolete. Just because paperwork is a required deliverable does not mean it adds value. An ERP project must meet legal and statutory documentation requirements while at the same time strive to keep it short and as high level as possible
Over Production – In an ERP system, this is customization. Whenever possible customizing an ERP system should be avoided. Attempt to change the process, not the software. New code has to be written, integrated, tested (repeatedly), and then has to be maintained over the life of the system.
Transportation – This waste is actually resource related. Assigning people to multiple projects is a source of waste. Each time a developer has to switch tasks between projects it interrupts the thought processes and takes time to get reacquainted. Task switching time is waste. A lean ERP project plans resources so that the right skills are in the right positions and they are dedicated to the project.
Waiting – This is one of the most common wastes in software development. Delays in project approval, during requirements gathering, waiting for reviews and approvals, during testing, and training. Effective ERP project management, in addition to building in processes such as having document review and approval “get together” can reduce wait.
Motion – This waste applies to both people and artifacts. Requirements move from analyst to designers, design documents move from designers to programmers, and the code moves from coders to testers, etc. Each handoff of an artifact is an opportunity for a certain amount of knowledge to remain with the creator and never get passed along.
Defects – The amount of waste caused by a defect is the product of the defect impact and the time it goes undetected. During an ERP project, defects due to requirements can be reduced by utilizing a proven requirements gathering methodology and electronic tools to house and manage requirements. Coding and configuration defects will partially be reduced through better requirements but following good coding practice together with a good testing process will help reduce defects.
2. Build Quality In – Poor quality leads to waste, such as having to rewrite requirements because they were not descriptive enough or having to test a particular piece of code more than once. Even logging defects are considered waste. Successful ERP implementations employ quality assurance processes such as the Agile concepts of Pair Programming and Test Driven Development. Other ways to ensure quality is to minimize the time between development, testing, and bug fixing. Rather than logging bugs, fix them immediately. Sometimes there can be reasons to trade off quality against other factors, those being time, cost, and scope; however, quality should be built in throughout the entire development process.
3. Create Knowledge – Knowledge is important and helps promote long-term productivity of the team. Examples of ways to create knowledge would be code reviews, thoroughly commented code during development, Wikis, and user requirements management software.
4. Defer Commitment – This is not to say to procrastinate or to put off decisions indefinitely. This Lean principle drives towards keeping all development or configuration decision options open as long as practical, to allow the full breadth of opportunities to be presented and considered. In areas of complexity or uncertainty, where changes are likely, this is especially important. In Agile development, deferring commitment is part of Sprint Planning. Features that need to be more thoroughly defined can be placed in later Sprints. In ERP waterfall implementations, complex development can be prioritized to later in the development queue as requirements and specifications are developed.
5. Deliver Fast – This seems obvious but there are a multitude of reasons for not being able to deliver fast, for example: over-engineering architecture and/or requirements. One way to facilitate fast delivery is through queuing theory. Look for bottlenecks in the development process that tend to slow things down and fix them. It does not do any good to increase work in non-bottleneck areas, fix the problem. Other ways to deliver faster are have the right people, keep it simple, and work as a team.
6. Respect People – Another principle that seems to be obvious but unfortunately too often is forgotten. In practice, this means responding to people promptly, actively listening, hearing their opinions and not discounting those opinions when they differ from your own. This also means empowering people with the ability to make decisions regarding the ERP implementation. Empowerment builds a sense of ownership which now facilitates the previous five principles.
7. Optimize The Whole – A lean organization seeks to optimize the whole value stream, not just functions or teams. It is common for delays in projects and processes to be caused by handoffs between teams, departments or organizations. The hard truth is that crossing organizational boundaries, especially internal ones, is expensive.
While these principles will not guarantee an issue-free ERP implementation, they provide a framework for improving the entire implementation process, overall quality, and ultimately, the acceptance and usability of the final product.