There have been some lively discussions over the last week about application development and Domino, initially prompted by a blog post by Niklas Heidloff but continued on Twitter. The comments included quite a wish list from IBM, but to my mind the future of application development – on Domino or elsewhere – can be summed up in a single word: community.
One of my very first blog posts highlighted how building on the open and public work of others, we can achieve more, so community and collaboration has always been part of me. So none of what follows should seem out of character.
OpenNTF
Community was one of the reasons OpenNTF began, one of the challenges with the existing ecosystem that, as a board, we’ve identified over the last year, and one of the things we’re looking to address. Downloads and submissions to OpenNTF have been falling. There are occasional Notes Client projects, some Digital Experience projects, a whole history of Domino projects, and amongst all of this the XPages Extension Library with frequent deliveries and a significant amount of new functionality beyond core Domino 9.0.1. Those who complain that IBM have not done much for application development over the last two years should take a look at the change logs of the core Extension Library – and bear in mind that packages like relational existed in ExtLibX in the 9.0 timeframe, but were not part of the core, installed package. This has always been a multi-developer project – something I firmly believe is important for good, sustainable projects on OpenNTF. But it’s now also a multi-developer project contributed to by multiple organisations, not just IBM but with a host of contributions from me and other members of the community. And for those stuck in the past who will only put code on their server that’s officially supported by IBM, when XPages on Bluemix goes GA in the near future the latest Extension Library will officially by supported on Bluemix.
Another large, multi-developer project is OpenNTF Domino API, which Jesse Gallagher and I will be speaking about on next week’s TLCC webinar. Engage was the first user group for some years where I didn’t do a session on ODA. But Nathan’s session on graph would not have existed without it, as would Oliver Busse’s session at ICS.UG a couple of weeks before. We have a community developing (John Jardin recently contributed a feature request and the code for it), evangelising and using it. There have been a number of questions on StackOverflow about it. Just last night, Stephan Wissel asked on the XPages chat about how to determining if a column had a static value. I pointed him to code in ODA which works that out, so he didn’t have to reinvent the wheel.
Avoiding reinventing the wheel isn’t something useful for application developers. It’s critical. How many people are developing JavaScript applications without Bower, Gulp, Grunt, NPM and various other tools that I don’t understand but pull good code from various places to re-use? AngularJS, jQuery, Bootstrap etc are all about not reinventing the wheel. All are extremely popular, not because of a single company developing or producing marketing material, but because of community. This is why I feel as I do about OpenNTF.
And already it’s happening: Niklas’s blog post raised the topic of node.js and Domino. Some people no doubt want IBM to develop in that direction. I saw a few tweets of people stating their interest and commenting about having done some work in that direction. So I reached out, created an open Slack chat channel on OpenNTF for it (and there is also a Skype chat), and there is already code being shared to build a solution. By building a community around that need, it’s going to be better, quicker to market, and more sustainable. For others interested in JavaScript options, Stephan Wissel has been blogging for a few weeks about Project Castle, using vert.x and Domino. Again, what’s important is a community around it. For those interested in a Java approach, I’ve already blogged about Vaadin though Rene Winkelmeyer and others have much greater expertise in that area.
And for those wanting to use non-Domino backends, Frank van der Linden has contributed to ExtLibX a datasource connector to Cloudant.
The biggest challenge now is that with so much choice available for application development, knowing the right choice for you is very difficult unless you try a particular route first. It also means too much for any one to provide all the materials for people to get started, hence again the requirement for the community to add their expertise (like the blog posts I’ve done, building on others, of using Vaadin on Domino, which I know the developer advocates at Vaadin have themselves used with customers).
Some will no doubt be asking whether or how this will attract new developers to Domino. From speaking to active members of the community or from IBM Connect, I’m seeing people coming in from outside, maybe not many, but some. Yes, we can try to get more, but when you have a user group with over 400 people registering in Netherlands, up from last year, the community is clearly not moribund. Others may focus on new seats on a platform. Frankly, I think there is a large audience who need engaging, envigorating and educating before we can even consider looking beyond. There are a lot of Domino applications out there with a lot of data, scripted workflow, integration to other systems and backend processes. If we can get existing Domino customers and developers leveraging those more effectively rather than considering migration, we will have a more attractice proposition for new developers.
IBM and Feature Requests
Niklas’s blog post prompted some feature requests. To my mind, IBM have contributed a huge feature that has transformed the Domino app dev platform: extensibility. We have community members contributing to Extension Library, creating their own OSGi plugins, adding OSGi applications to an NSF, transforming Domino from NoSQL to a graph datastore, replicating from Domino to offline mobile, creating XPages datasource connectors to other NoSQL datastores – all because of the extensibility IBM have provided. Instead of just using their own resources, IBM have engaged an army of developers. JavaScript developers may want to develop with one front-end and have fully capable REST access, but Java developers like myself want a different focus. The cost of delivering the requirements means that it is unreasonable to expect IBM to deliver everything for us. What they can do is empower the community to deliver what the community wants.
And to those who feel that is a reason to criticise IBM, look at non-IBM application development technologies. The most active embrace open source and embrace contributions, whether as add ons or core code.
We are now in an era where every Domino application server should be extended with open source software. IBM sessions for years have been talking about OpenNTF and about leveraging code from OpenNTF. Those who think the Domino server should have no third-party additions and only have code developed by their own in-house developers are out of touch with the platform and out of touch with modern application development.
Niklas’s blog post highlights one thing, something I’ve been acutely aware of from an OpenNTF standpoint: his move to Bluemix has left a void that some of the XPages development team like Brian Gleeson (and others) have filled as much as their main priorities as developers can allow (and it’s also great to see Stephan Wissel back working with Domino). But the work done a few years ago has not been fully replaced. It needs to be engagement with developers not only at business partners but also customers. The likes of David Leedy and his colleagues at Czarnowski, not to mention other customer community advocates like Mitch Cohen, are invaluable to our community. I came to Intec many years ago from a customer, and before that was a power user on Lotus Notes before helping out with development of a new release of the department’s database. It’s debatable whether the roadmap from power user to developer still exists, but the pathway from customer to business partner and beyond is critical for the success of Domino app dev. There is work that can be done by IBM as well as the community to ensure there are others coming up behind them.
The Future
This is why I’m also positive about the future. In her very first address at IBM Connect a couple of months ago Inhi Cho Suh focussed on community. When I spoke to her at Engage and learned she started the first IBM Champion program, that resonated. And her determination to ensure IBM Connect 2017 was announced at Engage, plus the amount quantity and quality of IBMers at Engage further prove her commitment to community. A visionary leader cannot change the world alone, and it requires many people pulling in the same direction. But the leader we have gives me confidence that the community will become stronger.
From an application development point of view, there is a lot to do. Even for OpenNTF’s project governance review, I am under no illusions that the work required to increase downloads and contributions is not small. To build the application development community to what it was even before the recession is much bigger. Not least is educating a lot of customers who have allowed their Domino app dev corpus to ossify, who only speak to business partners with app dev expertise when they’ve got rid of their internal expertise and want someone to support legacy systems until they have completed migration. Personally I believe this requires educating and engaging the right people into the community, something that marketing doesn’t do. Those choosing alternate application development platforms are not doing so through a specific company’s marketing (with certain exceptions like Sharepoint, where app dev is not the hook but a promised side-effect). It’s done because of the community surrounding those technologies.
A Call To Arms
It was said most eloquently some years ago in HTML.
</bitching><doing> (Stop bitching, start doing)
If I remember correctly, it immediately preceded the community driving the use of StackOverflow for questions (currently over 4000 questions tagged with “XPages”) and the community collaborating on an IBM Press book, XPages Extension Library.
For anyone who wants IBM or any application development platform provider to deliver all the tools, don’t complain if they don’t develop it in the direction you want. The days of that are long gone. I have heard Christian Guedemann speak a number of times about the book The New Kingmakers and how developers are now key. By making the platform extensible, open sourcing more and more of the XPages components and accepting contributions to them, IBM have empowered the community to do great things together. Domino is becoming more and more our application development platform and those who accept the offer are already doing amazing things. I encourage my community colleagues to not bemoan it as an abrogation of responsibility by IBM, but embrace it as an opportunity for us all.
Perhaps a sensitive question but what is your opinion on the IBM Champions programme?
Only positive. As a member, it’s made me more confident, more active in the community, and made me up my game. It rewards people regardless of licence sales, which is important in my opinion. It rewards developers, admins, managers, marketers, owners – people fulfilling all roles. It rewards customers and business partners, which I also consider important. But I’ve also seen concerns that have been raised listened to and acted upon. There’s a lot of two-way honest but respectful communication and collaboration that goes on behind the scenes. And it gets better year on year. We are very fortunate in the IBMers we have had “wrangling” us (Joyce, Oliver and now Amanda) and it’s clear their role is well-respected within IBM. Maybe the next evolution for the program is to see what can be done to support and mentor future generations of champions, but maybe that’s something existing and retired champions can also help with.
Thank you Paul for a well composed shout out that inspires! You deliver the truth up front without being rude.
A great read Paul. Truly uplifting.
With all the recent posts, comments and tweets, I can’t help but feel that whether the output was positive or negative, if you had to read deeper into the feedback, each individual in his/her own way is longing for a resurgence in Domino and XPages.
All we need (and have to a small degree) are those brave enough to join us in growing the community.
Xpages ? No sure why to invest in a technology that has no future (where is the clear IBM roadmap ?) and where even IBM Champions are not believing in it anymore (read this : http://redpillnow.com/beyond-xpages/)
According to me, Domino as a great NoSQL backend is the only option to survive within the current competitive ecosystem of technologies.
If IBM would do things properly, Domino should be AHEAD of Mongodb today, because it has fixed and adressed so many problems in the past 20 years. And its security layers (ACL / authors-readers fields, field encryption…) are far better. In Mongo, you have to do all this stuff manually (and developers reinvent the wheel, once again).
On my side, I’ve created PickaForm, which is a 100% cloud app built with Domino / LotusScript (yes, you read well) as a backend and ExtJS as a frondend.
With PickaForm, you can build very simple apps doing exactly what you where doing in simple Domino apps, aka :
– forms
– views
– workflows
In my experience implementing Notes/Domino apps since 1999, this represent at least 50% of why Notes was used… That’s why I’ve decided to simplify the pipeline and make it available online.
If I’m pretty sure the future of Notes is now dead like every other thick cliens, I really HOPE that IBM will go on pushing Domino as a great (and cheap) back-end integrated platform, because it has really many advantages over other technology stacks.
Cheers.
There are also current IBM Champions working for SalesForce. People believe in what they are trying to sell.
I agree completely on the benefits of Domino NoSQL, and Nathan’s work on OpenNTF Domino API shows it still has a lot of untapped potential. The stability of Domino stacks up well against some other backends I’ve looked at this year. And there have bene a number of enhancements in the last five years to improve speed of access. The flexibility of how to integrate Domino data is great, but flexibility can mean it’s harder to get help if you hit problems, because it’s harder for others to know where the problem is. But there are definitely people out there who have dug deep enough for that not to be a problem. It may also make it harder to find additional developers with the specific toolset and if I’ve never wanted to be the sole expert in any area – it restricts opportunities for me and leaves risk for those relying on me.
In terms of XPages, I am still a fan of it. I’ve stepped beyond a bit before this year and stepped further this year. The component-based framework is the way many other technologies have gone since. It makes keeping the application up-to-date easier – converting from OneUI theme to Bootstrap was easy, updating renderers to new Bootstrap versions will be easier. The tooling (XPages / Custom Control editor, Faces Config, Xsp Properties) stacks up very well against competitors. It is still quicker for rapid application development than other competitors I’ve come across. It may be lacking investment, but like the NoSQL database, a considerable amount of groundwork already exists. Stepping beyond XPpages has made me appreciate that more.
In terms of Notes Client future and moving to the web, I agree. For now. The contest of desktop vs mobile is far from decided. But the move to web has also ended the “corporate browser” approach. No longer can a company have just one browser. And the longer web apps hang around lacking regular updates, the bigger the problem will become. If a company needs multiple browsers that all need supporting, and “thick” client application get thinner (as has ICAA), maybe the love affair with the browser will turn sour. The success of cloud will have a big part to play in that. but I doubt the current situation will remain the status quo. The only constant in IT is change.
Hi Paul,
Just seen your message… 2 months later 🙂 Thanks for your comment.
Yes, you are totally right, the only constant in IT is change!
Please, if you find some free time, try my online service PickaForm (http://cloud.pickaform.com) built with Domino & ExtJS.
The templates apps & forms are only in French at the moment, but as you are a champion, you could try to start an app from scratch 😉
It’s for very simple apps, though, but the simple approach (basically form+view) can still cover a lot of use cases.
Well, your feedback would be very appreciated.
Don’t hesitate to contact me.
Thanks and… HAPPY NEW YEAR!!!