Behind the Scenes: The Engineering of Sales Intelligence Software
Several studies aggregating information about employability, salary, and job satisfaction have ranked Software Engineer as the best job out there. At Lattice Engines, the software team has been working on salesPRISM sales intelligence software for some time now, and we’ve certainly been making a grand old time of it. I wanted to write a bit about what we do and what makes us so happy.
salesPRISM as a product combines a very interesting set of features:
- Sales Representatives make heavy use of salesPRISM on a daily basis, so the overall system must be robust, scalable, and perform well.
- Our customers tie salesPRISM into a variety of business processes and workflows. Correspondingly, salesPRISM provides a very deep level of configuration, allowing us to easily meet customer needs simply by changing configuration settings rather than through custom software.
- As a SAAS application, salesPRISM is easily managed and inspected on an ongoing basis.
- We support a wide variety of integration standards and aggregate data from many different sources.
- We leverage this data for some very interesting data mining and analytic operations, which we then feed back into the running systems.
Many sales intelligence software applications support a subset of the above features, but supporting the entire collection is very challenging and lots of fun.
So how do we go about building the underlying software? Some of the most crucial decisions are simple things that apply to any software shop:
- We’ve hired a team of very smart people, and we let them do their jobs well.
- We follow solid software engineering principles, with an emphasis upon building for testability, quality coding, and automated deployment tools.
- Our overall system was designed with nice layered architecture and standard frameworks that simplify ongoing development.
This general approach has been augmented with some very specific ideas:
- In order to decrease implementation time and standardize application behavior, our software is heavily metadata driven. We make extensive use of attributed code, and use this to integrate software components as well as to generate SQL.
- Our deployment architecture was designed so that we can scale with hardware. Going further, at runtime we can move components around so as to best meet the specific latency targets for very different categories of operations. For example, we can host components to support low latency end user requests on different servers than those used to service long-running data mining or CRM synchronization operations.
- We have systems in place to record performance readings across the entire operation pipeline. In particular, we measured end user visibility, observed web service latency from the UI, server-side service latency, database latency, and Salesforce latency.
- Our database schema is also modular and allows us to separate modules based upon usage and performance constraints.
- We have some really nice data mining algorithms.
All in all, great buckets of fun for everyone.
Interested in salesPRISM sales intelligence software? Learn more.
Want to join the Lattice Engines software development team? Visit our careers page.


November 18, 2011 














