Why We Built a Custom Project Management Application
There comes a time in every Salesforce.com implementation when the simple question comes up, "Shall we build this or use something from the AppExchange?" While it might seem an easy question that could be figured out with some ROI calculations, it can get a little difficult so here are three more questions and a few pointers to help make the decision easier.
How Unique Are You?
The first thing to consider are your requirements. Are they very unique in terms of your business model and process or are they trying to do something pretty standard like syncing Google Calendar with Salesforce.com? An AppExchange product can be great in that it covers 90% of the requirements and the question is, can you build, configure, or live without the last 10%. Installed packages also might cover requirements you haven't thought of or need which could be both a bonus or a distraction.
In our use case with projects, while there are a lot of AppExchange products out there for project management, none of them met our needs perfectly so we decided to start with a free Force.com labs built framework which got us 50% of the way to where we needed to be.
Can You Handle The Code?
Everything from configuration to APEX code requires some level of maintenance, documentation, training, and upkeep. An AppExchange solution can have the extra benefit of being managed by a third party, meaning they are responsible for bug fixes, changes to the platform, and new releases. Sometimes the AppExchange product is an "as is" concept and will not come with any support down the road, so make sure to read the reviews, visit the product's website, and ask them how often they release new features. Writing the code yourself comes with the responsibility of test classes, bug fixes, and overall code maintenance. Do you have the resources to handle the changes, debug the code, or build out new features as users request them?
As a Salesforce.com Development shop, our ability to handle code is pretty good, so a custom build for us didn't include as much risk. Once we got the package installed we built it out starting with configuration but eventually adding on VisualForce elements, Conga Composer reporting, and APEX triggers for data manipulation.
What is Your Time Worth?
The last thing to think about in evaluating build vs buy is the time to market. An AppExchange product can be up and running in minutes in a test environment with users pounding away with test scenarios. The product will sometimes come with detailed documentation and hopefully great support which is something you will never have to write or think about. Make sure to budget in time for an evaluation period for any installed product.
In the build case the time commitment can be anything from a few days to many months depending on the complexity, requirements, or resources to handle it. There will be requirements to discover, user stories to write, and a full development life cycle covering all of the build, test, deploy stages. This can be helpful if your requirements are less rigid as the build cycle can help define new requirements and changes as users get their hands on working models.
The project management software we built starts with the Opportunity object which is where we house all of our sales activity. From there we use custom triggers to take a closed won opportunity and build out and relate the project which includes, the Project record, Deliverables, Issues, Project Team Members, Invoices and Time Entries. This allows us to both use the detailed information from our proposals but housing it in a custom object which provides more granularity for projects. We also built a lot of roll up summary information and use Conga Composer for status reports and exportable project plans that include built in gantt charts. We continue to extend the features and functions of the project management software, but it takes it toll in terms of time and resources.
In the end, for us nothing scratched our itch well enough or provided enough built in value to buy and our requirements of being tightly integrated into our accounting, sales, support and other systems (all Salesforce.com of course) meant that a custom solution was the right way to go.
If you have questions about build vs buy, hit me up on Twitter @JasonMAtwood