Tuesday, July 18, 2006

My love/hate relationship with Domino

I have been very critical about Lotus Notes, Domino and IBM in general. Some people have taken that to mean I don't like any of the above. This posting is to set the record straight and demonstrate that is emphatically not the case.

My background is pretty broad, ranging from PBX administrator to DBA to developer. As a developer I have worked with mostly BASIC-like languages: MS Access VBA, Visual Basic, and LotusScript. I have always been intensely interested in data. How it gets collected, how to manipulate it, and how to turn it into useful information. This love affair was awakened in my first programming job, which was using MS Access 2.0.

When I tried to transition from MS Access to VB I quickly grew bored of writing data access classes. MS Access had all that built in and was easy to work with, but in VB I was rolling my own code every stinking time. (I refused to use data-bound controls in VB4/5/6.) So I ended up in a job generically titled "PC Specialist". I was "the IT guy" -- if it had a plug on it, I was responsible for it. This is where I was exposed to a vast array of technologies, responsibilities, and systems. Part of this included making the decision between Exchange and Domino in 1999.

Management wanted to use Domino because our primary supplier did. I didn't know much about Domino or Exchange, but a few things turned me off to Exchange from the start. First, I had serious concerns about my (in)ability to properly secure Windows servers and maintain a high level of security. Second, Exchange required a sprawl of servers and services to function properly and I was intimidated by the prospect of trying to keep all the balls in the air just to get e-mail to flow. Third, programming applications meant using VB and SQL Server and going back to the old hell of writing data access code. Notes development couldn't possibly suck more than that.

And it didn't suck, it was simply amazing. Notes had most of what I loved about MS Access, that being rapid application development tightly bound to the underlying datastore, while being server-based and including granular security. I spent several years gleefully plumbing the depths of what Notes could do, getting my R5 PCLP along the way.

As my applications became more complex I started hitting walls. Debugging Lotus Connectors was difficult and frustrating, and the documentation was atrocious. New features in Domino, such as policies and remote debugging, simply did not work. Clustering Domino servers across multiple platforms required lots of workarounds that you only found by trial and error. I grew to loathe Domino Designer and it's bizarre property window, code stuffed everywhere and the half-baked classes implementation.

So off I went to find the new new thing, something that offered everything Domino had without all the annoying bits. In my quest I tried out MS Access 2003, C#, VB.Net, J2EE, and Ruby on Rails. Broadening the scope I worked with LAMP, OpenACS, Zope/Plone, and Puakma. Most recently I tried out SharePoint Portal 2007 and Exchange 2007. I never found anything that could reach the bar set by Notes and Domino.

Nothing else offered the ease of rich client development, granular security, and an integrated single-server install. There are still annoying parts about working with Notes and Domino, but in the final analysis they are just annoying. The fact remains that you cannot replace Domino with anything else without a tremendous amount of effort. I've climbed that mountain and found there is no summit. The only viable integrated collaboration platform available is Domino.

For all it's knobby warts, I truly do love Notes and Domino. I see in Hannover an opportunity for IBM to finally get it right. The criticisms I voice stem from an intense desire to silence the naysayers.


  1. Great post. So many people talk about one product vs. another, without having actually tried them both. With the variety of products you list, to come to the conclusion "I never found anything that could reach the bar set by Notes and Domino." is an amazing endorsement for the product. Alan

  2. "The fact remains that you cannot replace Domino with anything else..."

    This is a common thought, but really why should there be the one platform that rules them all?

    In an ideal world we should be able to choose the best platform for a particular job and have all the platforms integrate nicely into one seamless system.

  3. Quite a coincidence of words. I wrote something with the same title some time ago and shared it with Ed. It was about lots and lots of good ideas that are not fully implemented in Notes up to a point where they are really useful.

    But i did not want to muse about that. I wanted to comment on brendons idea of "we should be able to choose the best platform ...".

    Well i was nether a fan of a lot of different platforms in one company and i heard some stories about that. One cmopany i know has rundabout 10 different systems in terms of Software Systems to manage their business. Each was chosen with a "best of breed" thought and the IT department had no influence in chosing. Well right now they have a problem. Data is created everywhere and they have 80% of their department working on why does the data not get from a to b through h, e and m?
    The IT department spends most of its time fixing things that would not have been a problem chosing another platform, that perhaps might not have been the best. That is leaving no time for the implementation of new systems that could perhaps drive their business.
    And this is a thing i have not senn only once but often.

  4. Thomas hits the nail on the head. We have a load of different systems at our place. And developers spend a ludicrous amount of time trying to wire them together, whether it's for sharing data, using data, sign sign-on between systems, etc. Horrible, horrible work.

    Great post BTW Charles!

  5. Charles, great post.

    Food for thought about your blog: I will not read a blog without an RSS more than once. If I can put it on my feed reader, I'm an addict. If I can't... well, this will be the last you'll hear from me. :-)

    I have no idea why Blogger makes having an RSS or Atom feed such a problem, but there it is.

    Again, enjoyed the read.

  6. Thanks for that, Nathan. I'll see what I can do about getting a RSS feed set up. I've never done it so I have no clue what's involved.

  7. I think I got the Atom/RSS thing working.

    @Brendon - I went down that path, too, using Sendmail, Zimbra, Apache, OpenLDAP, OpenSSL, OpenACS, and PostgreSQL. Integrating all those and keeping them in synch was a lot of work. When one part broke the entire thing stopped working. I find tremendous value in being able to install a single package that does it all for me. The one stop shop makes me more productive as both an admin and a developer.

    I would like it if I could remove parts of Domino and replace them with other products, but still manage them all from the same interface. For example, I'd like to be able to use Zimbra's web access for mail instead of DWA and Wildfire for integrated IM instead of Sametime. The key, at least for me, is to still make it easy to administer and support. Every app having a separate administration interface makes the distributed deployment a non-starter for me.