Many merchants and eCommerce agencies tend to rush to find and install extensions. They see a feature or function that is "cool" and figure why not install and use it. The downside to this approach is that extension code quality is all over the place. Installing dozens of extensions will cause enormous amounts of conflicts and site bugs and will raise the need to have ongoing site maintenance just to keep things up and running.
At Rocket Web, we prefer to take some introductory steps and ask questions like "Will this feature/function remove business and shopper friction points?, Will it remove barriers so that more shoppers will stay on the site and convert?" These early questions will help keep sites from adding everything they see and like.
Now to the question, "When does Rocket Web prefer custom code over an extension?". If the extension answers most, if not all, of the requirements' needs, then an extension is the right path to go forward with. One other option is when a large scope of work is identified and an extension gets our team 50% down the path, then customizing the rest of the extension will help save time and money.
But if the extension only offers 1/2 of the requirements, and the total amount of time to build the custom code to meet the requirements is a small accepted amount of time, then we suggest going forward with custom code. The reason for this is using an extension when you only need about 3 of the 7 offered features, you will be left with "extra" code you are not using that you need to maintain, which may cause additional issues with other parts of the site in the future.