June 22, 2017

Custom plugins vs third party for your business app

Whether you're building a web design for your local Atlanta business or building the next big Saas application, the decision of whether or not you should custom create software or purchase commercial software is probably going to come up.

Software and third party plugins can come in many forms.  From WordPress plugins to Ruby gems to front-end frameworks, each has its purpose but choosing the right one can make or break your web app.  While they're all slightly different, I'll refer to them as plugins for the simplicity of this article, even if they can be a standalone application.

In this article, we're going to discuss when purchasing premade software is a better choice and when you should suck it up and develop your own software.

What third party plugins really means

Rarely in any case is a full web design or app going to be completely void of any third party code.  You may use Bootstrap or Zurb for the front-end framework and Rails or Laravel for your backend framework.  Even WordPress acts like a framework that houses basic blog and post functionality.  

And in most cases, it would be ridiculous not to use these tools.  They cut down on development time drastically and prevent reinventing the wheel every time you develop a website or application. They allow the developer to do his or her job faster and provide more options to clients who don't have the budgets of large corporations.  But there are plenty of cases where a more specific piece of functionality is needed and that's where things get a little more complicated.

For example, let's say you need a company task management system that tracks time spent hourly by each individual task.  Do you go with one of the many Saas applications online, an open source third party product, or build a custom app for the company?

Third Party Software

Pros

  • Maintenance – Because a third party solution can focus their business around a product, upkeep by this software may be handled by 10, 20, or even 100 developers.
  • Features – Probably more than you need, but it's good to have them there just in case.
  • Development speed and cost – Configuring third party software is always going to be faster and cheaper than creating a brand new solution.

Cons

  • Licensing – Some software comes with restrictive licensing.  If you're planning to use your app or site commercially, make sure you have the right to do so.
  • Lack of extensibility – Sometimes third party plugins just aren't extensible enough and you need just one more feature, but there's no way to do so without breaking the integrity of the plugin.
  • Service fees – One time purchases don't have this issue, but for SAAS services, you may have monthly fees that grow as you continue to scale up.

Custom Software

Pros

  • Extensibility – Custom means that you can pick and choose exactly what features you need.  The sky is the limit.
  • Performance – Because you're limiting to only the features you need, these applications tend to be faster.
  • Scalability – Many third party solutions just can't scale as well and don't anticipate large amounts of traffic, whereas you can continue to tweak and improve performance with a bespoke solution.

Cons

  • Maintenance – Bugs are inevitable and they'll need to be fixed as they come up.  
  • Initial Cost – Custom built software is relatively much more expensive than buying an off-the-self solution.

Determining which to use

Answering the below questions will help you figure out whether your app should be using a third party or custom made plugin.  The answers lead towards third party tools if they are a viable option since these are the faster and more cost effective option.

1. Are there third party plugins that check off all your needs?

If someone has already developed exactly what you need, don't reinvent the wheel.  A developer can integrate this into your app at a fraction of the price and cost.  However, there is a big exception to this rule.  Is the plugin maintained?  An abandoned plugin or project spells trouble and will bite you in the ass at some point.  

Here are some general things to look out for:

  • How reputable is the company developing the plugin?
  • If it's open source, when was the last commit?
  • How frequently are updates made?
  • Is the code considered stable and ready for production?
  • Does the plugin allow room to grow if you need to add in new features in the future?

Qualifying the above is not always black and white.  And there are cases where you finish a project and even a reputable company produces a shoddy plugin.  However, if you believe the code is in good standing and it meets all your needs, third party is the solution for you- plain and simple.

2. Does the available plugin do 90% of what you need?

Maybe the plugin meets most of your needs, but is missing 1 or 2 key features.  What should you do?

Extend the plugin

Extending the code should be your first goal.  If it's open source, this may mean forking a copy on Github.  If it's WordPress, well written plugins usually have hooks and filters that can be used to inject custom pieces.  

API

If the service you're wanting to use is not open source and is available as a Saas app online, do they offer a good API with documentation?  Tapping into an API may grant you most of the features and data from a particular application.  Using this, you can easily incorporate it into your own application if it's an online service.

3. Are there multiple plugins that can be integrated?

Yet another solution is to integrate 2 or more plugins.  If plugin A does 60% of what you want to do, and plugin B does the other 40%, why not use both?  Combining 2 or more plugins into your application can still be far more efficient than writing a brand new solution.

For example, let's say that we're trying to create a site that offers memberships to geo-targetted data with visual mapping.  You're going to have a very difficult time finding software written already that does exactly this.  However, finding a membership plugin and finding a mapping plugin separately should give you a good variety of options to choose from.

However, trying to combine too many plugins together may create more problems than you need.  There's no exact number, but if you've put together more than 4 or 5 different pieces of software together, plan on performing updates and compatibility checks between these 4 or 5 programs.  At some point, the maintenance between so many different third party applications may not be worth it in comparison to a custom solution.

4. Can the third party software provide the user experience you need?

All too often I find this to be the breaking point between purchasing a premade solution and creating one from scratch.  If the overall UI is bad, can it be easily fixed?  Or will you end up rewriting most of the front-end to make it work for you?

It would be great if developers didn't create overly opinionated pieces of software, where they came plain and allowed you to configure it for integration with your app.  However, most of the time they're going to come with a handful of poor design choices and bloated front-end assets.  And to be fair, a "naked" plugin probably wouldn't sell as well.

If you spend nearly as much time trying to strip down a plugin to make it fit into your app, I would opt for a custom coded one instead.

5.  Do you have the budget for custom development?

If you've answered 'no' to all the previous questions, you may be in need of custom software.  However, not all small business in Atlanta have the time or budget to develop a custom solution from scratch.  Before beginning, you should have an honest and open talk with your developer about the budget, your future growth needs, and what kind of maintenance you can expect with the app.  

If the issues the app solves are worth more than the cost or it's an integral part of your business, then go for it.

More often than not in these cases, some mixture of #3 and custom coding is going to create the most affordable and stable web application.  However, researching quality coded plugins is an absolute must if you go this route.

 

Questions about web app costs?  Leave us a comment below or get in touch with us!