Your Development & Design Resource
Development: Getting started with a new technology or platform!
06/23/2010 01:15 PM by Chris Toohey
I recently asked of fellow IBM Lotus Notes Domino Application and other platform developers on Facebook and Twitter what helps them Get Started with a new (to them) technology or platform. The responses shouldn't surprise you:
Most said that they are eager to pick up a new technology or platform if
there is clear and clean documentation that walks them through the basics
without constantly leaning on the crutch of established knowledge of the
technology or platform. They shout "Hooray!" when their
World runs smoothly... but they need to have a step-by-step guide to get
them there or frustration, fear, uncertainty, and self-doubt will have them
quickly abandoning the effort.
XPages, SSJS, and even Java is relatively (if not completely) new technology for most IBM Lotus Notes Domino Application Developers. I think the approach we're taking to educating those developers on this new technology is a flawed one, however... and I thought I'd take a few minutes to share my thoughts on the topic.
Welcome back for the first time!
XPages, SSJS, and Java are new and can be somewhat scary. Yet all documentation wants you to think that you will be able to transition your considerable knowledge of the IBM Lotus Notes and Domino platform directly to these new technologies and languages...
While I agree that XPages, SSJS, and Java (in the context of Lotus products, if you will) are easily leveraged using the skillsets that made you a kick-ass Lotus Notes database developer... it's a totally different game today. Thus I think you should approach XPages, SSJS, and Java like it's a brand new technology and platform. Abandon what you know of limitations in the IBM Lotus Notes and Domino platforms, forget about 64k String Limits for UI Fields... because you're not making databases anymore, but rather applications.
The documentation and Getting Started guides really need to support this in order to 1) properly set your expectations that this is a new method of delivering better, faster, more scalable applications and 2) allow truly new-to-the-platform application developers to add IBM Lotus Notes Domino to their skillset.
Integration is key
I also think that we're going about this whole thing wrong. It might be best to think of XPages, SSJS, and Java as a technology that integrates with a NotesDatabase... at least until the reality wave from the paradigm shifts hits.
XPages can front-end existing NotesDatabses. They can replace every Design Element from functional to visual outside of Scheduled Agents. SSJS and Java can deliver previously-thought-impossible functionality which, when combined with the functional or visual XPage, translates to application features that help people get their jobs done.
As shown countless times, an XPages-reboot of an existing Lotus Notes database can be done with zero modifications to the target database. The XPages, SSJS, and Java can reside in an external NotesDatabase. It can integrate with existing technology investments (specifically your existing IBM Lotus Notes and Domino databases).
So why looks at these as simply new Design Elements, or an alternative to using the same old design technologies and techniques that -- let's be honest -- makes people ask about the availability of slicker, cooler, and more modern solutions?!
... but I digress.
Documentation and Getting Started guides are available... but I don't think to the level that we really need. I think we need to approach XPages, SSJS, and especially Java like they are a brand new technology. We need to work on Hello World examples that don't rely on design architectures of IBM Lotus Notes and Domino but enterprise-level application user experiences, architectures, and platform capabilities that just so happen to integrate (quite easily) with an application platform we all know.
Hell, there's nothing stopping you from taking an XPage application, writing a Java method to grab contents from a SQL server, and work that data stateless within a NotesDatabase application...
So why not abandon the conception that you're stuck with 1 XPage:1 Form or View? Why not create several Hello World jumpstarts that walk you -- the IBM Lotus Notes Domino Application Developer -- through creating simple applications that help you understand the true potential of this platform.
... and for those of you who say, "If I need to learn a new platform, I might as well go with X!". If you can find a platform that is so well supported, maintained, tested, and enterprise-ready, hell -- let me know!