Infor recently updated Epiphany, their CRM solution, with a JSF user interface. Epiphany offers companies an integrated marketing, sales, and service approach to customer relations. Along with tracking customer interaction, Epiphany helps its customers formulate insights that can increase leads, retention, and revenue. It gives their customer-facing staff detailed recommendations and coordination during every customer experience.
Infor first released Epiphany in 1996, with a user interface written in a custom framework based on Java Servlets. In 2012, they decided to update the application to a more modern user interface built on current Java EE. They created a service layer, which is essentially a set of interfaces that have default implementations that talk to the legacy code. The interfaces are interchangeable since their plan is to change the legacy code into RESTful web services later. The JSF-integrated application is in its second major release and has been well received by the customers.
The development team consisted of 20 developers, including one principal software engineer and two senior software engineers. They used an iterative developmental model. The resources the team used to get up to speed with JSF included training by Cagatay Civici of Primefaces, internal mentoring sessions, and the Stack Overflow website.
The team developed the application using JSF 2.0, Mojarra, and RichFaces 4.3.7. They also used CDI, jQuery, jqPlot(charts) and D3. The development platform was Eclipse and NetBeans. A JRebel plugin has proven very helpful. They deployed on JBoss, WebLogic, and WebSphere platforms.
Currently, about 600 companies around the world use Epiphany, including Microsoft, Sony, Volkswagen, and the Navy Federal Credit Union. For the most part, their reviews have been very positive, and both the customers and the sales team are excited. However the customers did report some minor performance concerns.
To address the performance concerns, the team is using Chrome Audit/YSlow to find issues and resolve them. They are also using query optimization, and AJAX or lazy loading when possible.