5 steps to software optimization
By Bernadette Sprawka
The process of implementing or upgrading a business management software solution is much more complex than just installing the new software and expecting everything to work perfectly. A needs assessment must be conducted, goals for the software need to be set and extensive testing is required to make sure that everything functions correctly.
Don't despair. Regardless of the size of the business and the scope of the business management software system being deployed, implementation best practices remain fairly consistent. The basic steps are typically the same, and should be followed for every implementation. What follows is a simple, five-step outline of those best practices, a detailed outline of the process for deploying or upgrading software, and an overview of the primary considerations that go into the decisions that must be made along the way.
A Five-Step Program:
- Strategy and planning
- Definition and design
- Testing and measurement
Steps one and four are highlighted because while each step is critical, those are both the most important and (unfortunately) the most often neglected. Engaging in comprehensive planning and committing to extensive testing dramatically increases the odds of a successful project. But the best way to maximize those odds is to begin with a detailed strategy session:
Strategy and planning
First, establish clear project boundaries with distinct start and end points, and specific goals. This will help minimize the kind of "scope creep" that can lengthen the project and introduce inefficiencies. Begin with a workshop: get the highest executives and all key stakeholders together to determine direction and key objectives. Essentially, a contract is being created between the management team and the project team about what is going to happen on this project. Use this time to generate a mission statement that articulates the vision and the goals that have been identified. Next, determine objectives (roles, responsibilities and timelines), setting clear expectations. Remember that knowledge transfer has to start at the beginning of the project, both to maximize a user's understanding of the system, and to optimize ownership and buy-in.
It's also important to identify risk points and draft a risk mitigation plan. Open and honest dialogue is critical here, and a distinctly defined process must be put in place for issues and change requests. No project ever goes precisely as planned, and assuming otherwise is a mistake. The strategy and planning phase is also the time to identify all the functionality in the project, and to tailor a product to a specific company or business process. Plan for all eventualities: including plans not only for change management, but also for communication, training, testing, user reporting, knowledge transfer and transition into production support. These can be fairly high level, but they need to be done as part of the process of building a consensus between the project team and management team. Time invested here will pay dividends throughout the project.
Definition and design
While this phase can be time consuming, it is an important piece of the puzzle. This is where the design of the technical and functional requirements of the system is put together. This phase should include a review of existing business processes and how they interface with the new software. Identify any gaps and address them, trying to avoid customizing software whenever possible, as that creates a higher cost of ownership that will translate throughout future upgrades and changes. This is also the time to talk about conversion environment strategies (i.e. the logistics of how and by whom the development database, test database, training database and production database will be utilized). To avoid errors and streamline development, be sure to recognize which environments will be needed when, and which environments people should be working in.
The development stage is the nuts and bolts of the process, the step where the project team is actively engaged in configuring all the information into the software and making necessary connections--both virtual and literal. This involves working on the mapping of tables for the conversion, the details of how the interfaces look and feel, the integration of workflow between other systems and any needed customizations. The key takeaway here is to think strategically about not just what goes into the system, but also why it is going in. This is the time to make the connection between technical operating details and the essential elements of what is needed to run the company. The final stage of development involves designing testing script to help identify what processes and workflows need to be tested during the testing phase.
Testing and measurement
Testing the system is arguably the most important step. It is also the step that often gets cut short in a misguided attempt to save time and money. Avoid making this error and realize that cutting corners here will increase costs. Quality testing means ensuring that everything is working correctly while the information is being backed up properly. This is where user training begins in earnest. Their involvement also facilitates a more in-depth testing regimen. If the testing phase is conducted properly, the deployment phase should be a non-event.
If the first four phases are executed correctly, "go live" should be just like any other business day. If not, then more than likely the strategy and planning or the testing phases were lacking. Efficient deployment not only requires a plan for moving into full production, but also a project shut-down date (allow an extra week or two of leeway to ensure that issues are resolved). Most critically, be sure to rigorously document the details of the implementation, especially the lessons learned. Retain that documentation in a secure place in the system--it will dramatically reduce the headaches and expense of future upgrades.
Bernadette Sprawka is managing partner and CFO of MIPRO, a consultancy specializing in implementations, upgrades and optimizations of Oracle's PeopleSoft applications.