Center of Excellence
Any self-respecting Center of Excellence will practice solution assurance by conducting timely solution reviews and assessments as part of their teams design, development and deployment processes. These assessments will of course require formal “deep dives” into the solutions program code, but at a high level, the following are 5 fundamental questions to ask when performing a solution assessment:
Strategy – Is there a clear, consistent and understandable approach taken in solving the problem? For example, within the solution are similar problems or tasks solved in a consistent manner or does each resemble a brand new thought process? This is typical of projects that use multiple resources working in different locations or at different times – each displaying their own “coding style”.
Architecture – Can the solution delivery team demonstrate that the solution is both architecturally and functionally sound? For example, are the functional components of the solution kept separate and distinct or are certain components of the solution involved in doing multiple things? Are business computations imbedded in a reporting layer? Do calculation components also perform data transformation? Solution functionalities should be kept distinct so that if one component needs to change or be re-architected, it does not break or otherwise negatively affect the other components.
Customization – Does the solution leverage any pre-built assets or developed generic components or is it made up entirely of “customized”, “from scratch” code? Surely every matured delivery team will have a “set of tools” that they can utilize within the solution – rather than “re-solving” a problem they have solved in the past (known as re-inventing the wheel). If no “pre-built” components were used, did the delivery team at least identify “similar tasks, functions or features” (existing in the same functional component) within the solution that some re-usable object or code set could be built and used for?
Re-Invention – Is there any functionality delivered in the solution with “from scratch code” that was already offered from available vendor software? The delivery team should not have spent time (and money) implementing “a feature” that is already available in the technology being used to implement the solution. For all functionality and features required, an investigation should be made prior to beginning the design phase of the solution to identify anything already available to the team that may be used “out of the box”. If similar features already exist within the technology, the delivery team must be able to document:
- What might have been used to implement this functionality or feature?
- Why it was not used (typically includes a gap-analysis)?
Serviceability – Is the maintenance required to keep the solution “up and running” guided by a defined and documented methodology or specification? All maintenance required to keep the solution should be automated if possible and always be well documented. The strategy or approach to common maintenance tasks within the solution should be consistent with the approach to these same tasks in all of the solutions the practice delivers. Is the maintenance level of effort sustainable with the clients support staff going forward after the delivery team leaves? They level of effort (skills and time required) must be sustainable by the resources that are expected to support the solution.
The above are common sense but you’d be surprise how many are ignored by “experts”. When you select a delivery team to implement your solution – make sure to ask about them abbout the Center of Excellence and the philosophies on solution assessment.