Does It Make Sense to Build Your Own Workflow Engine
Reading time: 5 minutes 32 seconds
Reading time: 5 minutes 32 seconds
When you decide to introduce a workflow engine into your IT infrastructure the main question you’ll probably have is whether you should build your own system or use an off-the-shelf solution. Given that in-house development of a workflow engine is a significant investment, you should consider all the pros and cons of either options.
When making a decision whether or not to build your own workflow engine, you should first evaluate your business capabilities and the needs of your company as there are a few major considerations.
First, ensure that you have a strong development team that will be able to build such a system from scratch. Consider what language they will use. For instance, if you chose an esoteric language it will be rather difficult to maintain the engine in the future.
Moreover, your team will need some time to learn how to code such a system from scratch and modify it to meet your requirements. Besides, make sure that you have enough resources for further maintenance and support. The TCO of a proprietary solution is often greater than you might think. If you believe that you have enough resources and capabilities to build your own workflow engine, you should consider the following pros and cons.
When choosing a workflow engine, each company wants it to support a certain set of features, necessary for effective business development. For instance, you might need a versioning system to be able to revert unwanted changes to your processes. In certain cases, one might require the automation of transitions from one activity to another based on certain conditions or time. Accordingly, you may want your system to be capable of setting timers. Not all of the solutions available on the market support these features. From this perspective, it is worth considering building your own workflow engine.
If you build the system in-house, you won't be dependent on your vendors in terms of maintenance and upgrades. There won't be any need to spend money on licensing costs since you own the source code. Development of a proprietary workflow engine frees you up from coordination with third-party vendors and consultants.
Besides, internal development seems to be a reasonable choice in case you deal with confidential information. For instance, working in such spheres as Healthcare or Finance, where all the data are highly sensitive, you are unlikely to opt for open source software. Vulnerabilities of this type of software are known by the broad public and can put your data at risk.
Quite often exploring and integrating a third-party engine turns into a complex and time-consuming process. Depending on their complexity, third-party options might not be your best option if you do not want your team to spend extra time on learning how to use them.
The development of a workflow engine from scratch is a process that requires a vast amount of resources. Let's do some simple math. On average, custom workflow development of middle complexity takes about 200 hours. If you want to include such options as a visual scheme designer and spice it up with documentation you may end up with another 300-400 hours. Given that you might want to add some new functions to your solution in the future, your expenditures might keep growing. Given a developer’s rate of $35 per man-hour, you end up spending $21,000. As a result, internal development will cost you three to five times more than the purchase of an out-of-the-box workflow engine.
Business owners who choose to develop a workflow engine themselves usually state that they need only basic functionality. However, since internal solutions are mainly designed to satisfy company’s immediate needs, they often fail when new business challenges arise.
In most cases managers are simply reluctant to consider the possibility that they might want to include some other features to their systems in the future. Indeed, those requirements that seem to be useless in the beginning may become crucial in the future. Moreover, if you want to continuously develop your business, sooner or later you will need in the features that seemed unnecessary at first sight.
You will spend a lot of time on maintenance
Quite often businesses mistakenly believe that once they have built their own solution they won't have to further allocate resources. However, quite soon they might want to add new functionality to their existing solution or fix defects. In this case, they will have to assign these tasks to team members, who will spend quite a lot of time on doing that.
When you buy an existing solution, you have an opportunity to delegate the burden of maintenance to external vendors. It will free up your staff and will enable them to focus on their core and value-adding activities. Moreover, since external providers know their products inside and out, they will be able to resolve any issues in a timely manner. In the long run, considering all the maintenance costs, it becomes reasonable to choose a ready-made solution provided by external suppliers.
If you opt for in-house development, you should also consider whether your developers will be able to build a flexible and adjustable workflow engine. For instance, if you ask your team to develop a system that processes document flows and later on decide to expand your solution by building a time-tracking tool, it is highly likely that the team will start coding everything from scratch. Such shifts in business might cost you a lot. Therefore, it is much easier and more cost-effective to find an off-the-shelf solution with comprehensive functionality.
When deciding whether it makes sense to build your own workflow engine, it is necessary to consider all the pros and cons. Developing a system internally is the right choice if you have a considerable amount of time and resources, or if your business requirements are extremely unique. In all the other scenarios, the necessity of building your own system is rather questionable.
If you believe that you do not have enough business capabilities to develop a workflow engine in-house, it is better to choose an out-of-the-box solution. In this case you receive a product with numerous built-in tools and ongoing support from experienced staff. As a result, you have an opportunity to spend your time on value-adding activities and business development.