Building Products for the Enterprise: How Enterprise Software Development Differs From Consumer Technology
By Mickey GrahamJuly 15, 2014
We are excited to announce our Work-Bench Member Spotlight series, where we do a monthly deep dive feature into some of the unique challenges that enterprise technology startups face in building, scaling, and selling a product to the enterprise. Each of our 15 member companies at Work-Bench has been tackling big challenges in product development, marketing, and sales, and have gained immense insights and learnings to share with our community. First up - Monaeo, a location-based tax and audit protection platform.
We recently sat down with Vinay Pai, tech lead at Monaeo, to shed light on a few of the differences between consumer and enterprise software development. Monaeoâs SaaS solution enables companies to understand their mobile footprint, send early warning alerts, and deliver reports to save taxes and provide protection in tax audits. Prior to joining Monaeo, Vinay was CTO at OkCupid.com, where he helped scale their architecture to handle 10x the traffic, with millions of active users when he left. An expert in both consumer tech and enterprise software engineering, Vinay shared his thoughts on the key differences between the two domain.
One of the most significant differences between engineering in consumer tech and enterprise tech is that enterprise software needs to integrate with a customerâs legacy technology and their other third-party vendors. In enterprise software development, there are many more external systems that a development team needs to prepare for. Customers will often require reports and integrations with their other third-party vendors, and a product offering must fit into a customers internal workflows, practices, and systems. âIt doesnât matter how great your system is if they have to go in and change everything - a large organization simply wonât use your product if itâs not compatible with their established processes and practices,â says Vinay.
Similar to consumer tech, it is essential in enterprise software development to come up with a core architecture that makes it very easy to build on top of. In consumer tech, developers are generally dealing with a feature rich system and the challenge is architecting an underlying system that is powerful and efficient. In enterprise tech, however, developers need to build an information architecture that can consume and output data without bleeding into core systems. A unique aspect of being in the enterprise tech space is that customers will dictate how they need the product to work. In the HR space, a customer may need a startup's solution to integrate with PeopleSoft, while another may be using Workday or ADP. If the product doesnât have a robust enough core system, developers will need to continue writing new code and reinventing the wheel in order to keep up.
Another key differentiating factor in enterprise software development is user testing. In the consumer space, one can generally build a new feature, push it live, and see what happens. In making a consumer design change, developers can build a simple version, roll it out to 5-10% of users, and measure the impact. This is not a luxury developers have in the enterprise space, and without the benefit of being able to roll out redesigns and new features to users seamlessly, a big challenge is understanding what exactly to build. The key to solving this problem, according to Vinay, is a close integration of product, sales, and development.
One way Monaeo gets around these customer testing challenges is by getting product feedback during the sales cycle. By incorporating mockups and prototypes in their demos, their sales team can receive valuable customer feedback while pitching the product, and understand which features the customer wants to have by the time they are ready to close the deal. Given the length of enterprise sales cycles, this typically means that a sales team should be a month or two ahead of the development team. That being said, it is crucial not to over-promise and under-deliver.
For this to work effectively, Vinay suggests keeping the information flowing in both directions. It is important for developers and founders to sit in on sales calls and to provide mockups and powerpoints for demos, as well as for the business team to know where the development team is on the product roadmap. Sitting in on sales calls every couple weeks allows the team to see what people care about, what resonates, and what questions come up. A close collaboration of the business, product, and development units allows a flow of information that can serve as effective user testing.
In scaling consumer products, developers rarely add a giant batch of users to their system overnight. Besides the rare case of showing up on the front page of Hacker News or Reddit and needing to handle the sudden influx of traffic, consumer tech companies generally tend to grow linearly or exponentially in a more predictable model.
As an enterprise SaaS company, however, developers may be adding tens of thousands or hundreds of thousands users simultaneously upon closing a large enterprise contract - such as Boxâs recent 300,000 person deal with General Electric. With a paying customer, there is more pressure on enterprise technology companies to support the scale of an enterprise wide deployment without crashing. Enterprise companies need to do their absolute best when it comes to testing and load generation, and Vinay suggests taking a more phased approach as far as possible. Batching users and managing the provisioning of users on to a system will help avoid many of these scalability issues.
Working with a large organization as a customer can dramatically slow down the pace of software development, and there are different expectations for the pace at which the process should move. There are many formal systems that need to be checked off as an enterprise software vendor, which can dramatically slow down the development process. Stakeholders often include an IT department, a security department, and other departments, who will probe with questions around how a service is hosted, what a disaster recovery plan looks like, and more. Oftentimes, the customerâs boilerplate forms and processes are outdated, rendering them ineffective and slowing down the procurement process even more.
If a customer wants an integration with one of their vendors, what could be a simple quick fix may actually take months to implement. What may normally take a week to set up - Â like configuring a csv - can be a painfully slow process, involving the customer, other third-party vendors, and a 15 page document with requirements and specifications on what format a csv file should be generated. Even once the enterprise product gets into the hands of a customerâs development team to integrate, it can be a 3 month process - if they are moving quickly.
In the consumer space, there are very few laws on how data is handled. It is very self-regulating, and the biggest motivation for not being careful with user data is the threat of a breach, negative publicity, and the loss of user trust. With federal regulations for data privacy, however, especially as it relates to personally identifiable information (PII) and material non-public information (MNPI), enterprise technology products have a number of much more formal requirements.Â
Interestingly, a lot of the more formal requirements enterprise customers want to see covered are antiquated, increasingly so with the transition from on-premise to cloud-based software. There are a lot of internal regulations that are asking for specific requests, which do not address underlying concerns such as having a network-based intrusion detection system (not relevant if on an AWS system). The key to overcoming these challenges, according to Vinay, is getting to the right people who understand the technology, addressing the underlying concerns, and playing by their rules when possible.
Are you interested in connecting with Monaeo? Check out their site to learn more.