Selling XPages - what matters?

April 4 2014

The XPages community has had an active two weeks of discussions, kicked off by my coworker Mark Roden's post Why learning JavaScript is more critical to XPage developers than Java. This inspired many comments and other posts and videos. The best of those were:

Tim Tripcony - "Do I Need to Learn Java?": a brief conversation with a composite character
Mark Roden - When the community comes together we get the right answer
Steven Wissel - Learning a new language or platform
Jeff Byrd - Life without xPages # 3 – a little more JAVA please

I think David Leedy's Notesin9 was brilliant and hilarious. If you have not watched this, you should. NotesIn9 141: Java vs JavaScript Throwdown. Mark also responded appropriately (And the gloves are off…… and An open letter to Mr. NotesIn9).

I have been reading and watching on the sideline. I no longer write code, so the technical discussion going on here is something I don't feel like I should provide an opinion. Mark, Tim, David and many more are much more qualified. But as the discussion morphs from technical to interacting with customers, I feel I can contribute to the discussion.

Selling XPages isn't actually selling XPages for me. I rarely sell technology. I focus on selling a solution to a business problem, using technology. One of the advantages I have is that I have a broad range of solutions I can sell. Besides XPages and other IBM solutions, PSC has practices that work with SaaS solutions such as Salesforce.com and Force.com, Microsoft Dynamics AX and CRM, Microsoft technologies including Microsoft SharePoint and .NET and Azure - even custom Microsoft Office development, and open source solutions around Java, Python, and LAMP. We specialize in integration of multiple of these systems, and do quite a bit in REST and libraries such as Node.JS, Backbone.JS, and Angular.JS. Because of our broad range of skills, I can focus on the solution before selecting a technology. Now, for sure, customers and prospects come to us and say 'we want you to build this and use XPages' or 'we are a Microsoft shop, pick a technology that works within that.' By selling solutions to business problems, most of my job is focused providing confidence that we can solve the problem. It is quite liberating as the selling process.

When it comes to XPages, the shift from 'we can build a XPages app for you' to 'Let's build a great application using this web platform called XPages' started 2 years ago. Our selling process focuses on customer success and user experience. For us, that means design and user experience is key. We have internal designers that focus on design patterns and look and feel. In many ways, the IBM Exceptional Design Experience process is something we have applied to XPages - and everything else. Technically, this means Twitter Bootstrap and a collection of resources such as jQuery, extJS, and other sources. We even use Java - especially with things like Apache Poi and much more. We don't limit ourselves. There is no 'you can only do it this way.'

In the past 5 years of selling, I have never once had a customer ask 'I want you to write this application in Java.' There is always an IT person asking about maintainability, future-proofing, and discussing their available resources. But rarely is it focused on 'please write this system in a specific language.' There is always talk on build vs. buy. Or open source vs. not. Selected Vendor and/or selected platform of course comes up. But never once has anyone said 'you can only write this in Language A.' Opposite that, we have had multiple customers tell us 'We don't have the resources to maintain an XPages application with lots of Java in it. Please design this to target our internal skills as much as possible.' Now, we can attribute that to the maturity of the XPages community outside of the top contributors, but it is reality. We take the stance that it is our job to educate our customers on their options, but not tell them they are wrong. Communication and direction matters, but putting blinders on to tell someone there is only one right way to develop a 'good application' makes no sense.

One thing I find interesting in this discussion is the difference between in-house and consultant and systems integrators vs. ISV's. This is a healthy discussion. I think that learning and sharing experiences on how we all see the technology helps everyone grow. What I likes most about this discussion was the 95% open-mindedness of the community. Comparing this to a discussion even just two years ago, it would have been far less.

To wrap this up, I do agree 100% with David Leedy that as a developer, you should always want to be learning. And always be practicing. I also agree that knowing Java is important, but it's one item in the XPages developer's toolbox. The best customer solutions that I have seen - those built by PSC and by others - use a mix of both and much more. The range of solutions coming from David and Jeff Byrd and Mark and Brad Balassaitis and so many more pushes the community forward. There was a time that XPages didn't even include projects like the ExtLib - look how far XPages has come in just five years!

TL;DR - don't get caught up in which language matters in a solution, focus on delivering the solution that solves the business problem. At the end of the day, the people who write the check really don't care about the language used.