It's officially YELLOW DAY today and that means that it's time to talk about IBM/Lotus Domino. I suppose I really should give some tips but offhand I can't think of anything that I'm sure most people don't already know. Instead, I'm going to talk about how I'm using Lotus Notes/Domino and why I believe that it's still relevant today... and into the future.
First of all, I'll state my bias. It's worth a history lesson. I first got involved with Lotus Notes with version 3 on Windows 3.0 (on Novell). I didn't like the product much then but my boss had seen some demonstrations and decided that it was the future. It wasn't long before I stumbled upon the biggest bugbear of Lotus Notes - and a problem which still dogs it today...
What the %#@* is it ?
Today, I still don't rightly know.
There are a million answers to this question which depend widely upon your usage but to me, it's always going to be the "swiss army knife" of application development.
My bias is that I've been with the product for about 18 years but I've never worked for Lotus or IBM or for any computing firm which provides Lotus Notes/Domino products and services. All of my experience is as an "end user" with specific non-computing end products in mind.
Why is Lotus Notes/Domino great?
Notes was there at the start of Windows, before any of the competitors of today. More importantly though, it's still there for the future - IBM have some very impressive roadmaps and it's obvious that it will be around in years to come. More importantly though, the longevity has been stable and our code is secure. By this, I mean that applications written for version 3 of Notes, still work perfectly 18 years later on Notes 8 - and without any modifications being neccessary. None of the competitors can do that. In fact, most of the competitors don't seem to be able to manage even a year or two of compatibility. Of course, the future isn't just about compatibility but it's the right place to start. Just looking at the changes wrought in Notes 8.5 should be enough to confirm that IBM has a brilliant future planned - I'm not going to go into it in more detail because I'm sure IBM will put out their own publicity later on today.
Not only is there a great deal of choice surrounding the version of Notes/Domino - yes, there are people out there who are still running versions 5 through to 7 (when they should be upgrading to 8) but there is also a choice of platforms. I can't say that I've tried them all but I've run Domino on several windows platforms and AIX. I've also run the Notes 8.5 client on Windows, Mac and several variants of Linux - and I've been very impressed with the results.
Whenever I hear people complaining about Notes, I find that they're complaining about Email and they're usually using a very old version of the product. I'd love to shout out to the world that "it's not an email platform". Seriously... If email and calendaring is all that you want - go to Gmail. Why would you drive around the city in a 4wd when you could just as easily drive a mini. I consider it a major-league sin to own a 4wd and not use it's capabilities - and the same goes for Notes/Domino. No; I don't mean that you have to go driving on rough terrain, just use the extra features. In Notes terms, this means that you don't have to build a giant extranet but if you have the product then at least use the document libraries. Not using this brilliant functionality is a waste. I could go on and talk about the various development languages but I don't think that it's necessary.
One thing that really blows my mind about Notes/Domino is just how scalable it is. Replication wasn't some facility that was added in later... this system was designed to replicate. About ten years ago, I had the pleasure of working in a place with 48 Domino servers scattered globally and all replicating happily. It was not a scenario I could have imagined with any other technology but it worked amazingly smoothly and efficiently. Replication isn't just a server-to-server thing though. It amazes me how easily I can backup data to my own computer and how quickly I can make copies of large databases. When I want to work remotely over a slow link, I make local replicas of my databases and go offline. The flexibility of this approach is mind boggling. Then, there's clustering... "replication on steroids" and proof that IBM doesn't stand still on its achievements but is constantly moving the product into new and exciting territories.
I remember a discussion years ago on the things that made Notes/Domino great. We were all citing languages and the other kinds of things I've already talked about here. We thought we had it all covered until someone started talking about how maintainable the code structures were and I realised what an important point it was. It's possible to write applications in various langages to do the various things that Notes/Domino can do. You can write your own travel booking system with workflow using whatever tools you want but in the end, someone else will have to maintain it. With Domino, you can build thousands of different applications but all of them will have the same basic building blocks. They will all have forms, views, agents, framesets, outlines etc.. In each of these components, the same methods will always be available. Agents will always have an "initialize" section, Forms will always contain a webquerysave function. Sure, you won't necessarily use those methods but they are always available. The structure imposed on your code makes it infinitly more maintainable and readable than code written from scratch. Even better, the methods available often allow you to "cheat". You don't have to write window handling or view sorting code because Notes already contains it by default.
What do I use Notes/Domino for?
Duh... no I don't think this is the best part of the system but it works and there is nothing quite like having the ability to Forward pages from your other databases, write deployment scripts/buttons into your mail messages or send view, database, document and web links as part of your message. Similarly, it's nice to know that I can replicate my mail anywhere and that I can easily read it via webmail without a notes client and on the Blackberry. Of course, mail doesn't stop there for us, because in 2005 we purchased some great domino extensions which allows us to journal, categorise and archive our mail with the result being total legal compliance.
- Document Databases
For the last fifteen years, every bit of IT documentation I've ever written has gone directly into a Lotus Notes Database. It's secure, it's clustered, I've got local replicas and I can forward pages of instructions, code and examples to people whenever I choose. The one database contains my company's hardware and software inventory, the product keys for our software, contact details for our vendors, code examples and libraries, computer policies and our core disaster recovery plan. Even better, since the database itself can be so easily replicated, our disaster recovery plan can be stored together with the latest sets of installation instructions and troubleshooting guides. It can be sorted in various ways and even better, it's full text indexed.
- Web Sites
At my office we have four separate web sites being powered off a single Domino server. Some of these web sites are hosted inside domino databases with workflow and change management while others are simply hosted html. It's amazing to have the flexibility to choose our format.
- ExtraNet Systems
We use Domino to power an extranet consisting of about 200 databases, with 3800 external users. The databases perform a whole heap of different functions including document storage, navigation, blogging, wikis, form filling, statistics collection/generation, surveying and utility tasks. Whenever we're asked to provide a new facility, our first thought is, "will this work in Domino?". Invariably, the answer is yes, and this allows us to leverage off our existing secure, clustered and tested solutions.
- Specialist Systems
Our specialist systems are designed to perform specific and complex tasks. To describe them here would take more space that I could possibly afford. Over the years, I've implemented a number of these ground-up systems, including ones to collate decision papers from meetings, product testing systems, foundry materials inventory management systems, banking systems and relationship management systems. The capacity for expansion in domino is simply amazing.
- My Own Projects
I've always been a big fan of movies and have one of the largest DVD collections of any of my friends. I've often been told jokingly that I "support" the movie industry with my purchases. Such a large collection needs categorisation and Notes is the perfect tool for the job. I initially started building my DVD database as an experiment to teach myself domino development because believe it or not, I've never yet attended a domino development workshop. I've just picked it up as I went along and asked the right questions on the right forums. Today, my movies database contains views by title, actor, writer, director, year, duration, genre and even special features. It's replicated at home and on my PC at work and I can access it on the web and via my blackberry. If I'm in a store and I want to know if I already have a film, I can look it up on the blackberry in seconds. All the movies in my database have quotes, ratings, blooper lists and cover scans. What's more, because there's no development committee to bow to (it's my database after all), I can implement whatever experimental code I want (after backing it up first). Quite often, the code I implement and test there ends up in our corporate databases.
So... happy Yellow Day Domino.....
I really can't imagine an IT landscape without you.