Declarative Thinking: Apps to build Apps
It’s a credit to the power of this development approach that business analysts, power users and consultants alike continued to embrace Salesforce and publish applications on AppExchange very quickly! Indeed it is now part of FinancialForce.com folklore that our very own Kevin Roberts (VP, Business Devlopment) was one of the first of us to sample this power, by taking a Compliance application written at the time by a small team of VisualBasic developers and replicating its functionality in Force.com over a weekend!
Kevin continues to be one of our key driving forces in extracting every ounce of power from this aspect of the platform. With a little help from our ClickLink solution, he rarely needs a single line of code from a developer. So how do we help Kevin and others achieve this?
- Know the platform inside and out. Make sure that solution builders in your organisation and partners know how to build and extend solutions on the platform declaratively. For instance, creating Custom Objects, Fields, Formula Fields, Rollup Summaries, Workflow (Field Updates) and using Flow.
- Complement the platform with your applications. Engineer applications that embrace the declarative nature of the platform to form a natural extension to it. Make sure developers understand how users expect to use the declarative aspects of the platform and then design and develop application behavior, configuration and extensibility to suit. Just because you provide a tailored UI via Visualforce, don’t assume all interaction will be through that. Power users want to integrate at the Salesforce UI and custom object level to leverage the skills they have acquired. Consider building the System Admin persona into your design and testing. Also, consider Salesforce Certification across your organisation.
ClickLink and Force.com
Our ClickLink application takes this practice to the next level. ClickLink is built with the sole purpose to reuse and extend platform declarative features such as List Views, Email Templates, Custom Buttons, Layouts and the Scheduler. It provides a point and click user interface that allows us to integrate our product’s own objects with any standard or custom object without the need for code.I tend to refer to it as a “solution enabler”, meaning it’s part of what it takes to deliver a solution but not the full story. Sitting aside Force.com when building the type of solutions our customers require is a powerful combination for not only delivering a highly integrated user experience, but also a very flexible and evolving one!
Recently our consultants have been very inventive with Formula Date Functions and Workflow Field Updates, combining these with ClickLink to implement our many varied Automated Billing solutions on the platform. Others have used it to implement specialised Data Loaders (splitting CSV files across objects), or even to extend the platform’s Clone button! I’m amazed at the use cases and ingenuity of our team as they find new ways to combine Force.com and ClickLink without needing developers! Hmmm….
So what’s next?
What if a developer could build a type of Declarative Application Wizard that can learn about an aspect of a requirement such as another object or CSV file and automatically generate the components needed in Force.com to deliver the solution? The result might be no different to the end user, but the benefit to the solution builder is that they save time otherwise spent pointing and clicking. As fun as that is, it can get a bit tedious not to mention error prone at times. In a later follow up to this blog I’ll illustrate how developers can build a tool to do just this using a library we made available last year, the Apex Metadata API Wrapper.