Historically, choosing a Java EE application platform was like any major capital planning — it was driven by a clear business logic:
- Support for your current platform was expiring.
- You had to standardize your systems.
- You needed to accommodate a legacy system.
- You needed to reduce costs.
- You needed to take advantage of a specific advancement in Java technology.
Those are still primary factors, but there are a lot of additional factors to consider for something as foundational as an application platform. Part one of this series covers the business questions; part 2 will be out later this week to look at some of the technical considerations. [UPDATE: Part 2 is now live.]
Business considerations have a significant role in IT decision-making because your partnerships and budget commitments directly impact your company’s development agility, ability to adopt new technologies, and internal and external design decisions. When you start weighing your options, aside from transaction costs, there are a handful of questions you must ask to make sure that you maintain business agility.
#1: What is the ROI on total cost of ownership and the shortest possible payback period?
The total cost of ownership (TCO) is critical in calculating both your return on investment (ROI) and payback period. TCO includes both direct costs like the subscription fee and the indirect costs like reduced code maintenance, lower security and management overhead, and productivity improvements from faster time-to-market.
#2: Is the platform’s pricing model simple, easy to understand, and flexible enough to accommodate future needs?
How you purchase your application platform will have a major impact on your ROI and payback calculation. A single purchase should cover everything and only what you need. Particularly with enterprise-level software, there is a risk of ever-rising licensing and support fees and vendor lock-in with proprietary vendors. This is an advantage of open source. A subscription-based model ensures dedication to support and service, while a reliance on open standards prevents vendor lock-in because of proprietary technology.
#3: Can you trust the vendor to support you?
Reputation matters. Does that vendor have a reputation for customer service and actively engaging when problems arise? Is your vendor large enough to really support your needs? Make sure you select a platform from a vendor with a proven record of outstanding customer support. Enterprise software is complex, and when you’re using it to power mission-critical applications, the best help has to be available when you need it most.
#4: Does the platform’s vendor have a strong vision of technology that will inform your decisions in the future?
Like business, technology is evolving ever more rapidly. New technologies like microservices, mobile, and cloud are emerging; processes are moving from hierarchical waterfall model to agile DevOps models. Along with strong technologies, a vendor must be able to provide expertise that will flatten your learning curve and introduce changes at your own pace.
Expertise is crucial not only directly in the Java application platforms, but in all the adjacent technologies. A strong cross-technology portfolio means that vendor has the resources available to you for your entire IT stack.
Even more important, a vendor has to listen. A good technology vendor is a partner who understands your current business requirements and can help bridge the gap between more traditional technologies and emerging approaches. If they listen to your feedback, they can be more effective in helping you plan and implement technology which actually meets both your current and your future business needs.