For some time the 'buzz' in development is Agile (aka Extreme) development. Its basic concept is that this method of development promotes project management processes that encourage frequent inspection and adaptation, a leadership philosophy that encourages team work, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. What is these same concepts and ideals were applied to the implementation process for an ERP application?
Would this work for all ERP applications? Frankly, No. The application would need to be flexible and allow the user to make changes to the basic set up parameters at any time. How else can you make adapations?
By its design, Compiere is ideal for using this methodology for implementation.
The basic Agile concept is to concentrate on the most critical point(s) at that time and solve it in a time period of about 2 weeks. The delivery of every 2 weeks allows customers to see the progress and adjust the plan based on what was learned.
A critical view is that Agile projects concentrate on short term tactics and are not appliable to complex projects like ERP implementations. I regard that actually as a misuse of the Agile methodology. A prerequisite is always that you keep the big picture in mind. So the initial planning of a traditional project and an agile project is the same. But rather going into analysis-paralysis, Agile projects concentrate on fast delivery.
Many implementations fail not because of the software, or the knowledge of the implementation team or the desire of the business community. They fail because the implementation uses the 'big bang' approach. Nothing is released for review or comment until everything is completed. If there are issues it can be too late to address them (or to costly to). By using the Agile approach, there is constant and regular disclosure and feedback to ensure that all objectives are met, or if all objectives cannot be met in the prescribed time frame, the objectives are appropriately prioritized.
Crucial to the success of any implementation is communication. Thanks to the populariity of Agile Development, there a many tools to help in communication and scheduling. These tools can also be used for an implementation.
If you do not already have a tool there are many to choose from. When selecting a tools some things to consider are:
- On Premise or On-Demand
- Support multiple distinct prjoects
- Porject level security
- Customizable user interface (this is important as you will probably want to change some of terminology like Sprint or Interation so they are more applicable to an implmentation like Phase.)
- Ability to Customize workflows
- Interface for external party interaction
- Easy to use interface (this is of course subjective)
Many of the tools provide this and more. Some have community editions with limited functionality or limited to a single project that can be used to evaluate the product. Take advantage of the online demos and tutorials to make a better evaluation.
In the end it needs to be a tool that the team will use and will provide the necessary communication portal to help ensure a successful implementation.
Our three finalists of our current evaluation are:
- VersionOne http://www.versionone.com/
- Target Process http://targetprocess.com/
- Rally http://www.rallydev.com/
In my next blog, I will share my findings and our decision of what tools we will use.
For further reading on Agile check out the following:
The Agile Manifesto: http://agilemanifesto.org/principles.html
Overview in Wikipedia: http://en.wikipedia.org/wiki/Agile_software_development
The Agile Organizations: http://www.agilealliance.org/ and http://agilemethodology.org/
as well as a Waterfall vs. Agile comparison: http://agileintro.wordpress.com/2008/01/04/waterfall-vs-agile-methodology/