Feature improvements: “Ongoing maintenance” for CiviCRM
Sure, CiviCRM is awesome and does more out of the box than you could possibly imagine …
… until you’ve used it for a while, and you start to imagine even more awesome things that it can’t quite do yet.
Fortunately, CiviCRM is very extensible, as evidenced by the 100s of extensions in the CiviCRM Extension Directory.
And if one of those extensions won’t do the trick for you, you could create a new one — or have one created for you.
(That is, you can do it after you’ve carefully considered your goals and resources and still believe you’ve got a sound business case for proceeding.)
This is what we mean by feature improvement.
What it is:
We’re talking about the modification of CiviCRM’s features — or creating entirely new features — through custom development. This usually means creating a CiviCRM extension, but it might also rely on some other means, depending on the need.
The possibilities are basically endless, but some custom development will be required for anything that’s not currently possible with point-and-click configuration.
Who can do it:
Again, let’s look at this question using the in-house/outsource criteria from earlier in this series. I’d rate this item like so:
Technical | Generic | Explainable | Inscrutable | Total | |
---|---|---|---|---|---|
Feature improvement | 5 | 2 | 2 | 5 | 14 |
On each criteria:
Technical: Very.
Creating a CiviCRM extension (or otherwise writing programming code to alter CiviCRM’s behavior) requires a highly technical set of skills, knowledge, and tools. Unless your in-house team is already very experienced in programming languages like PHP and JavaScript, it’s unlikely you’ll have this technical proficiency in-house.Generic: Somewhat.
This will depend on the need, but it’s likely that what you need is unique to your organization, though a seasoned CiviCRM developer will probably try to find some way it can be generalized for use by other organizations. (That’s good for you, by the way, since it increases the interest of others in making further improvements to your new CiviCRM extension — from which you’ll benefit down the road.)Explainable: Somewhat.
Again, this depends on the need. The less generic it is, the more time and effort you’ll need to invest in explaining to whomever is doing this custom development.Inscrutable: Very.
Although you’ll definitely care that the new feature works correctly in all aspects, you’re very unlikely to care how it works under the hood. You’re not very likely to inspect the programming code or ask why the developer prefers one code editor over another.
All of this means that it’s a very strong candidate for outsourcing.
You’ll still need to explain it to your selected specialist in the beginning, and they’ll need to show you how it works in the end. But in between, you can focus on other matters, while your specialist builds this feature for you.
Of course you could do it in-house, but unless you’re going into the business of custom feature development for CiviCRM, you’ll be facing a steep learning curve in exchange for mastery of a skill that you’ll rarely use.
The juice ain’t worth the squeeze, as my uncle used to say.
In summary:
Yes, you can improve CiviCRM’s features to do just about anything you can imagine (though I’d want you to be sure there’s a sound business case for it).
You’ll almost certainly want to outsource this — it requires a very technical set of skills, knowledge and tools, and anyway there’s not much value in doing it yourself.
This brings us near the end of our discussion. Tomorrow: what about custom visual design?
All the best,
A.