If you’re new to Drupal, you might wonder if having all these freely available add-on modules means they all have such solid code that you can download them and get them running perfectly on your site in a matter of minutes (SPOILER ALERT: No.) After all, if a whole community of people have already worked to develop these things, what more is there to do?
The Best-Case Scenario
Say we set up a payment gateway, and the code is good. It’s been tested, it works, lots of people use it, it’s robust, it’s well supported.
There’s still setup and configuration. We need API keys, for instance. We need to configure settings: are you pre-authorizing payments? Are you doing full sales? Do we need development keys for your development environment? Is it the only payment option you’re using?
Working through all this stuff takes at least a couple hours. And that’s assuming there are no bugs or missing features. We can just turn it on and set a few parameters and away we go.
The More Common Scenario
Sometimes the module requires dozens of hours of development time to integrate everything, fix code, or add new features. That doesn’t even necessarily mean the original programmer did a bad job; it just might be a less-used module, so it hasn’t had as much testing. Or it might be a work in progress, so it’s not polished.
If we’ve worked with a particular module before, we can estimate our time pretty well. If not, we’ll look at things like how active it is, how many installs it has, how recently the maintainer has worked on it and how many outstanding bugs it has. Does it have 80 issues or only five? And if it does have 80 issues, are they at least being addressed?
Once we install a module, the problems of that module are now potential problems for our clients. So we need to be sure any bugs or issues it has won’t affect our build.
The Review Process
The first module anyone sends up to the Drupal community does go through some review (after that, they’re free to create whatever they want). To pass the review, the module shouldn’t have any obvious security flaws and should follow basic coding standards.
But it might not have a lot of functionality. Or at any rate, it might not have all the functionality that you expect or want it to have. And that means extra development time to build what’s missing.
The Bottom Line
A module might do exactly what you need, but there’s a good chance it’ll need additional work. Modules are put up for free by members of the community, and they’ve just done what they needed to accomplish their goal, which could be very different from yours. Until you install it and use it and try it out, you really don’t know.
To learn more, check out our High Five episode “Why Drupal Modules are NOT Plug-and-Play Solutions.”
Subscribe to our YouTube Channel for more Drupal Commerce goodness!