Why is developing software solutions within the enterprise so difficult and fraught with failure? There are many commonly cited reasons :
- The complexity and fragmentation of IT landscapes
- Ever-changing business processes and requirements
- The need to learn and integrate new technologies, such as big data, cloud, etc.
- The difficulties of adopting new agile development methodologies
Alternative application development approaches
Most enterprises rely on (and will continue to rely on) programming languages like Java, C#, Python and SQL for the majority of in-house builds. These programming languages will continue to be prominent, but enterprises are addressing an increasing number of application requirements using packaged products and services. This includes SaaS products, packaged software from ERP vendors, PaaS and a new category of low-code application platforms.
In this blog post, we reflect on the choices that enterprise application development teams have when building new software.
ERP Software Packages for Enterprise Applications
Many of the large enterprise software vendors have sought to provide alternatives in the form of packaged software or ERP add-ons. Most ERP vendors have strong relationships with enterprises, and it is often an easy (read: politically correct) choice to partner with these large vendors to address new requirements.
Unfortunately, these offerings are often biased by each vendors’ unique approach. Oracle, for example, thinks databases first. SAP thinks business processes and Salesforce thinks user experience. Most enterprise software projects, however, require bringing all three elements together.
Further, it often doesn’t make economic or strategic sense to rely on an ERP vendor to deliver software for things other than core systems. Differentiating your business is difficult when you’re using the same software as your competitor! And we’ve all seen how hard, expensive and difficult it is to customize ERP systems.
Platform as a Service (PaaS)
Growth in the PaaS market is disproportional to other sectors, according to GigaOM, with some analysts estimating the market to be growing by 50% year-on-year. The growth in PaaS market follows from the success of Infrastructure as a Service (IaaS) offerings like Amazon EC2. If you can rely on cloud-based services to manage your physical infrastructure, it is natural to use a service-based platform to develop software.
There are a range of PaaS platforms on the market, including those from leading vendors such as Microsoft and Google. PaaS services provide a platform and environment to allow developers to build applications and services without the usual burdens of configuring an environment, procuring hardware or sourcing tools.
Many enterprises are skeptical of PaaS. For one, there are worries about lock-in as most platforms are limited to supporting only a limited range of technologies, and development managers are worried about how hard it will be to move from one cloud to the next.
A bigger concern is that many enterprises simply need more control and flexibility than they can get from PaaS platforms. In large enterprises, application performance and reliability are big concerns. Application development teams want control over ‘close-to-the-metal’ code in order to achieve processing performance goals. It doesn’t make sense to rely on third-party platforms for mission-critical or customer-facing systems.
High-Productivity Application Platforms
In response to these issues, a new class of ‘application platforms’ has emerged designed to help enterprise rapidly deliver business applications. Application platforms offer a comprehensive technology stack incorporating database integration, application logic and web app development to help teams develop applications without the usual complexity of integrating disparate tool sets. Many of these products present no- or low-code approaches to software development.
Application platforms are designed to address the common challenges faced by enterprise application teams.
- Integrate with enterprise infrastructure and legacy systems
- Reduce complexity with a graphical, data driven approach to development
- Deliver better ROI by empowering small multi-functional teams (including front-end and back-end developers) to work together fluidly
Application platforms are becoming more main stream, with Gartner in 2014 showing their support of this approach, recommending that companies evaluate high-productivity application platforms to rapidly deliver systems of differentiation.
Aptitude Software as a leader in the application platform market
At Aptitude Software, we have enjoyed seeing this new class of application platforms emerge. We decided years ago to market our own Aptitude platform as an Enterprise Application Platform at a time when there were few people that recognized ‘application platforms’ as its own product category.
Unfortunately, many application platforms (ours being an exception) are designed for smaller developments. They might be used to improve employee productivity or automate a basic business processes. And other offerings are really business process management suites (BPMS) that are inadequate for many software development efforts.
An application platform designed for true enterprise requirements
Aptitude is different from many of the other application platforms. It is designed to process massive data volumes and deliver complete transactional integrity. Our customers typically use it to build complex, mission-critical software systems, rather than small systems of engagement. For one example, one digital media store use it to calculate the royalty payments owed to record companies and other rights holders over hundreds of millions of monthly downloads.
The platform combines a high productivity development environment with a high-performance runtime engine. There are extensive application and data integration features, including the ability to generate code that can run in popular DBMSs. Other features include business activity monitoring (BAM), a powerful business rules engine and HTML5 Web forms support.
Alternative development approaches will continue to be prominent in the enterprise
At Aptitude Software, we’re thrilled to see the application platform market evolve and for vendors to provide an alternative to traditional code-based software development or relying on ERP ‘packages’. Today's enterprises need to build dynamic software more quickly than ever, while handling massive data volumes - and certainly many new options are available when considering new requirements.
If there’s a place in your firm for new ways to design, develop and deploy data-driven enterprise software systems, we’d enjoy to introduce you to the Aptitude platform. Please get in touch.