In my previous post, I started listing a list of best practices that can and should be used when working on a business rules project. This post is about detailing one of these practices further.
Get help and Educate yourself and your team
First, if the organization is new to business rules, get help. Chances are guidance will be required and hopefully will help you succeed with your project. Yes consultants can be expensive, but they can help you avoid some of the pitfalls on this type of project, and if you make sure your team stays close to the consultants, they should be learning so that you will eventually become independent.
This brings me to my second point. Educate yourself and your team. Yes there is a cost to upfront classes and education (in time and $) but it will hopefully help you get the most out of your rules project. The formal courses, book readings and other resources available around should give you a kick start and then working with some experienced consultants should complete this education as well as give you some practical experience within your specific environment.
Why did I combine these two topics? Because the people you get to help you should also be there to educate you with their practical experience and knowledge similarly to some mentoring.
The reasoning behind this
Of course, being a consultant and instructor myself probably gives me a bias towards this, but I will point out why I think this is important with some details below.
Suppose you are starting a project and as you are evaluating your requirements, you realize that you will need a business rules engine (BRE) (I will focus on BRE here, but this may also apply to BPM as well). Now since you are new to this technology, you start reading on the subject (which is great), and start looking at the different products out there. You might even want some of them to come in and present you their products in demos (or through webminars), etc. Because of time and effort constraints you will probably limit yourself to some 3 or 4 products and your eventual choice would be based on their presentation and marketing material. Since you are new to this technology, you might not make the right decision. Getting help at the stage of the evaluation will hopefully provide you with an unbiased opinion and make sure that your choice is based on a more educated evaluation of the products in comparison to your requirements. You might be able to get away with not getting outside help for this part, but getting help would give you a sanity check.
Now that you have selected a product or a shortlist of products, it would probably be beneficial to ask the vendor(s) to do a proof of concept* for you. This proof of concept should be a relatively simple list of requirements that you have and you want to see how each product will respond to your requirements. The help you would get from an outside consultant here would be to keep a close eye on how each product is actually responding to your requirements, and help you identify places where you should ask more questions. This is also a time where you need to educate yourself more about how each product is going to require you to work in the future.
Next you select a product, and hopefully it is the best product to fit your requirements. The best thing for you to do is to educate yourself on that product. Identify the team members that you will want to be part of a prototype* or pilot*, that is the business analysts and developers that will be involved and send them on the appropriate courses provided by the vendor. This will give them a kickstart on the product and hopefully, working on the prototype will allow them to assimilate these new skills faster. This team will also become the internal experts, and possibly evangelists and teachers for the future phases of the project.
When working on the prototype, get help from either the vendor professional services and or outside consultants so that you learn how to do things using the best technique. This prototype is an excellent opportunity to improve on the skills of the team you trained and to give them the knowledge they need to take this over in the future. Your team will be learning from the consultants and be executing some of the work.
There is always more to learn, but this route should be taking you to the path of independence from outside consultants short of getting more manpower to execute some of the work faster. The need for consultants should reduce over time except when you have very specific challenges that require specialized knowledge to accomplish.
A sample timeline
The following graph displays a sample timeline for a business rules project from the help and education perspective. The scales used are arbitrary and used for demonstration purposes only.
First, the red line shows that the internal team starts small, eventually grows to involve the staff required for the prototype (or pilot) and then grows further when subsequent phases of the project continue to proceed. It shows what happens during a project, and not what would happen after the end of the project, where the internal staff might be reduced to fit only what is required for operations.
Second the blue line shows the involvement of external consultants. They get called in early in the project as to guide the team in the right direction. We eventually see a progressive withdrawal of the consultants once the project is well under way, with specialized interventions when there is a need for them.
Third, we see a Green line that might show additional manpower required to achieve some of the work in the timelines set by the project. This is an optional involvement that is required only if the internal staff is not sufficient to meet the deadlines, etc. This does not suggest that extra help will absolutely reduce timelines, the usual laws of adding people to a project still apply, but sometimes external help is required.
Finally, in purple, we see the evolution of the internal knowledge of the team that is involved. This is also for demonstration purposes and does not intend to imply that the team will not learn what they need faster (or slower).
- Get help: to start in the right direction and to learn from people with experience.
- Educate yourself: to be more efficient and to be autonomous sooner