Power of N: Building Insanely Great Enterprise Applications
Welcome to “Power of N”, a collection of blogs by John Ellithorpe, CTO of Model N. This Model N series will give readers perspective on Enterprise software and how Model N builds applications that solve our customers’ critical business needs. Power of N is the first in a thought leadership series from Model N that helps readers explore how SaaS and software solutions from Model N abstract complexity and help organizations manage and grow their Revenue.
Designing great enterprise applications is challenging. The days of simply exposing database tables on green screens has long past.
Today’s enterprises require sophisticated, user-friendly applications that empower users to optimize their productivity. These systems are highly complex spanning across the value chain and supporting large numbers of users. The stakes are high in designing enterprise applications that deliver consumer-style experiences, anywhere access, and innovative solutions. Over the past 17 years of building software, I have found six key characteristics that distinguish successful enterprise applications.
1. Fixing Pain and Fostering Process
It almost goes without saying that enterprise applications must solve a business problem, or else why would they exist. Business problems, as with any problem, exist within in a context, typically a larger business process. The success of the application depends on how well that product can solve the specific need, whilst also blending into the larger process.
Best-of-breed targeted applications can provide value in isolation. However, business processes generally span multiple applications. Stitching a myriad of best-of-breed solutions together quickly becomes complex eating away at the benefits of the individual solutions. Businesses desire a suite of high value applications that are seamlessly integrated to tackle an end-to-end business process. Automating closed-loop processes provides high value immediately as well as the ability to increase that value over time.
2. Adapting to a Dynamic Business
The velocity of businesses is ever increasing, as companies strive to maintain a competitive advantage and grow their business. Companies don’t have the luxury to wait for the next software release cycles, even for frequently releasing SaaS vendors. Moreover, leading companies leverage their systems as an integral component of a strategy to proactively engage the market.
Enterprise systems need to strike a critical balance of flexibility and rigidity. On one hand, the systems must be flexible enough to match the pace of the business. I’m not only talking about simple configuration changes, but policy decisions such as pricing and rebating strategies. On the other hand, businesses need to ensure that changes are managed in a controlled and efficient manner. With great power comes great responsibility. The business must be able to control how changes are staged, approved, and applied.
3. Empowering Users
Today’s users live in a highly technical world filled with addictive devices that foster expectations that their applications and tools they use at work should be as good as those they use at home. Enterprise applications can only deliver on the promise of business value by engaging the users and enabling them to the fullest.
Human-centered design philosophies are a key aspect to ensure systems adapt to the user rather than the users needing to bend to the systems. Business processes usually require collaboration between people potentially spread across the globe. Over and above making individuals more productive, business software must be social to enable effective real and virtual teams.
4. Scaling from SMB to Fortune 50
Companies can span from the mom-and-pop store on the corner to GE and Google. While it’s unlikely that a mom-and-pop store is mature enough to need sophisticated enterprise applications, we see smaller companies getting more and more complex as the world becomes increasingly flat.
We can see size differences that can span many orders of magnitude. Catalogs can range from 10s to 10,000s of SKUs. Transaction volume can span even larger ranges from 10,000s to 100,000,000s of lines. Enterprise systems should scale efficiently and ideally sublinearly. More importantly, enterprise applications should make efficient use of all the resources available, including CPU, memory, and I/O. Nothing is more frustrating than waiting for a long process to run when you can still see plenty of CPU cores idling.
5. Living in an Enterprise Ecosystem
Enterprise applications rarely live in isolation. Master data, such as products and direct customers, reside in MDM or ERP systems. Indirect customers may only reside in a CRM system. Channel data may come through EDI gateways. Smoothly and reliably plugging into the integration landscape is a key requirement. Seamless integration applies not just to the technical transport, such as web services or message queues, but also how well the system integrates with the overall logical process, such as payment processing or ship-and-debits.
Reliable integration is always a challenging problem as, by definition, integration spans across disparate systems and technologies. Great enterprise applications minimize points of failure, provide transparency to errors, and recover smoothly.
6. Building Trust in a Multi-Channel Cloud Solution
Every application must ensure privacy and controls. Recently, Google revealed that only half of all emails sent are unencrypted, a basic level of security. With proprietary information, such as competitive strategies and pricing policies, enterprise applications must be able to ensure that their information is secure and have strict controls on who is allowed to perform what actions.
Software is moving to the cloud. True business-to-business networks are growing to automate business processes that are not bound by the four walls of companies. TheInternet of Things will allow all devices and systems to be connected. Enterprise systems must be built from the ground up to enable users and systems across multiple channels to work in a system with strong authentication and authorization capabilities.
Enterprise applications are challenging to build. When done successfully, users are delighted and businesses gain true value. In my upcoming “Power of N” posts, I’ll be diving into the details on each of these characteristics, as well as how a company can evaluate enterprise applications, gain adoption to their implementation, and encourage support from employees.