So you’re thinking about developing your own custom Salesforce app on the Force.com platform because Salesforce doesn’t quite get you there with its point-and-click tools.
In a previous post, we pointed out that prior to taking on this task, it’s a good idea to be sure that there isn't an AppExchange app that 1) already does what you need or 2) is better than what you could build yourself.
But what if you think you can custom develop something yourself for less cost? Let's talk about the factors that contribute to how much it really costs to build a Salesforce app, and whether it's better for you to Build instead of Buy. In this post, we’ll cover a few questions you should ask yourself before getting that consultant to put their fingers to code (or doing it yourself).
What do you need the app to do?
The absolute first thing you should do, when deciding whether to buy an app off the AppExchange or to build your own, is clearly define your requirements in the form of use cases. This will give you an initial idea of what you are truly up against.
Who will be using the app? What exactly do they need to accomplish with it?
Cover all the scenarios and write these requirements down so everyone can agree on what needs to be done.
There are plenty of good resources on the internet to teach you how to gather and define requirements, so we won't cover that here. The point is that if you aren't doing this step, even if you are planning to buy an existing AppExchange solution, you're not understanding your real needs and might waste money in the long run.
Also, consider the “nice to have” features — if you’re coding yourself, you might give those up in order to reduce costs, but when buying an app, all those extras could be included at no additional cost.
How often will your solution need to change over time?
As you're defining your requirements, think about how your organization will use your Salesforce app over time. Do you anticipate requirement changes 3 or 6 months out? Sometimes you can't even answer this question at the outset because you need to get the app into the users' hands first to determine if it will require multiple iterations to get it right. But taking changes into consideration is a key factor.
Changes can be minor, like adding or renaming a new field or changing the order of a process. If you have custom Visualforce pages, you’ll need to update the code to accommodate even these small changes. If you expect to make a lot of changes over time, it might be better to go with a configurable AppExchange app that makes ongoing changes easier to manage.
As you evaluate AppExchange apps, it’s also worth considering how empowering the solution is to your users. Does the app allow users to alter it for their own needs? Or will it allow you, as the admin, to quickly do this for them? Working with an app that includes these features will give you the flexibility needed to accommodate new or changing use cases, as well as edge cases without having to begin the development process all over again.
Taking this subject one final step further, check to see if you will be able to modify the code of an AppExchange app. If you will be able to add custom code on top of an existing app as you can with GridBuddy you can save time and money by customizing an app that already exists to serve your needs, rather than building it all from scratch.
What's the true cost of your solution?
OK, so now you're ready to whip out the calculator and do some math on how much building your Salesforce app will cost. There are many factors to consider here. It's worth noting that custom development projects often end up costing more than anticipated instead of finishing with money to spare. Why is this? Here are a few factors you need to examine.
The time necessary to build something new in-house is more than just your developers' time to code it. It's the time needed to conduct requirements definition and analysis, the time needed to project manage and translate requirements into a solution design, and the time needed to support the solution after it's live.
The biggest cost people normally overlook in the "Build" decision is maintenance. This doesn’t just mean the development team’s time spent maintaining the solution, but all the costs associated with not having consistent resources dedicated to your Salesforce app over time. One of the real killers in custom development is customization that was put in previously by an employee, contractor or team who is no longer with your organization. If these key workers leave, you risk losing all the domain knowledge and programming capability needed to maintain the custom solution, especially if thorough documentation wasn’t created in the first place.
To illustrate why relying on individual employees or contractors to maintain your solution over time can make ongoing changes much more costly than you might anticipate, consider this example. Suppose your developer builds a time tracking software system and then shortly after leaves the company. If, later on, your users determine that they need the ability to edit time in a weekly grid view, you'll have to spend time getting new people up and running on the old developer's code before they can even begin building the new feature. This takes resources away from competing IT priorities, contributing further to the costs of your custom solution.
Don’t forget to factor in the cost of waiting for a solution to be developed, if you choose to build it yourself. Often, buying a configurable product on the AppExchange gives you faster time-to-value than building a completely new solution in-house—not to mention that it also saves you the hassle of dealing with frustrated users who don’t have the tools they need.
As you factor your costs, you’ll also need to account for expenses related to creating and maintaining support materials and documentation, as well as providing tech support for the app. If you don't have processes for fielding user support issues in place, you'll need to make the investment in establishing sooner rather than later.
Also, though we covered it before, it should be noted that the old adage of "time equals money" is especially true for businesses. Any excess time spent by your team on working with a custom solution is also money you're paying in salaries or contracts.
Remember that custom code requires code deployments, and with deployments come complications (especially in Salesforce where things like test coverage and dependencies can cause deployment failures).
It’s also worth noting that developing on Force.com can be tricky, as governor limits have effects that often aren’t seen until after the deployment when the app is being used at true scale. Salesforce can also complicate things with its three seasonal releases, all of which can impact any custom code you’ve developed internally. AppExchange vendors test their apps against new Salesforce releases well in advance of the actual release date so that they can resolve any conflicts close to Salesforce's release schedule.
Issues related to deployments, new Salesforce versions, and Salesforce limitations all contribute substantially to overall costs, but with AppExchange apps, code deployments are unnecessary. Often software vendors like AppBuddy will include upgrades in the monthly subscription price so all you need to do to take advantage of their latest features is re-install from their AppExchange listing. They also typically include the cost of new feature development (with the costs of new features spread among all their customers, not just one), support, support materials, and documentation into the cost of their license fees.
So Buy or Build?
For solutions that do exist on the AppExchange, it's important to look at the real costs and benefits of “Buy versus Build” before making a decision. Salesforce independent software vendors (ISVs) offer subject matter expertise, and they often represent better time-to-value than in-house development when solutions already exist on the AppExchange. In many cases, buying a subscription to these apps makes good economic and technical sense and saves you a lot of trouble finding your users the solutions they need.
If you have an IT department that has resources with Force.com development skills, you might find they are best put to work maintaining your core Salesforce system and the portfolio of solutions you may have. Depending on the nature of your organization, this may be more of an orchestration role than an application development role. Of course, if the solution you need doesn't exist on the AppExchange, the points discussed here can help you determine exactly what resources are necessary and what costs will be involved.