Inaugural Rant


This is a long time in coming. I've been talking about posting for close to a year now. Since the year is almost up, I figure best to get in at least one. As you can probably guess I procrastinate more than I should. Not only have I been meaning to post, but this particular post has been written since November. I just never quite got around to posting it. I blame Jesse, mostly because he does some really cool stuff on the site and I still haven't read the book he recommended that would have kept me from beating this post into existence. XPages are cool, but apparently they hate me. This being my first post, be gentle.

So why now? Well, I've had enough of everyone enjoying Jesse and his prolific explication of cool development stuffs and things. It is time for a bit of crappy grammar, old Notes developer complaining, and general curmudgeonry. Not that it matters, given he posts something like four times a day and it takes me months to even post what has already been written, I think you all can rest easy.

Defending Domino


All too often I find myself dreading the following question “So what do you use for the back end SQL or Oracle?”. Not because we are incapable of using those, but because we choose not to. If I don’t get that question I may get “Are you using Apache or IIS?”. This again comes down to very much the same issue, we choose Domino ( not that those have to be mutually exclusive ). Every now and then we get the very generic “What do you use for your back end?”. This is often the toughest as it normally comes from those folks with little technical expertise but have gone through enough meetings to know they are supposed to ask. I often have to take a breath size up the person across the table and prepare myself for the inner struggle to come. “We use Lotus Notes and Domino to…” before I can even get the rest out I’m cut off every time “I didn’t think anybody used that anymore, it’s awful, we use Outlook. Why would you ever use that?” though Outlook may be substituted with Exchange for the highfalutin almost tech-guy. So let me get this straight, we’re sitting here talking about putting together an end to end process for gathering, handling, distributing, tracking, and securing a very complex set of your data and you think we’re using something you could do better with Outlook? The urge to dive across a table and just shake some sense into someone is a tough one to resist… but I’ll never make that mistake again. You all should know that should you be across the table form me, it takes 3 charges from a standard stun gun to convince me that what you meant to say was “Notes? I love that stuff”!

I’ve been doing this long enough that I also remember the times when people would hear Lotus Notes and immediately think 1-2-3 and ask if they could still get their data in Excel files. I’ve even been requested by management to stop using the word Lotus or even IBM. Lucky for them I learned my lesson about the shaking thing prior to that request. I'm saddened a bit that from the time I wrote this until it's posting that we've all learned that IBM is removing Lotus from the naming scheme. Sure, they don't mind having seven word titles for products but the word Lotus has to go. Sigh.

Each of the aforementioned competitors certainly have their place and reason for being. While I’m quite the Notes evangelist I realize it isn’t great at everything. For most of what I do though, it is by far the best choice even with some of the drawbacks that go with it. This is not a case of “When you have a hammer every thing looks like a nail”. Here are a few of the things that I find I tout most often for reasons we choose Domino. The 1-2-3 if you will.

Flexibility:


From development choices to data there are few things out there that can do what domino does and certainly not the big contenders. What we do is often document driven and the potential for clients to want to change things ( including data types ) is frankly expected. The ability to keep the old data while changing things up for new data is a huge plus. Try swapping a data type elsewhere without worry of data loss or hours and hours of checking and double checking the schema. The options we have for code from the often speedy formula language to the more sophisticated LotusScript provides a wonderful breadth of possibilities. Why stop there though? Java and JavaScript, of course HTML and CSS, XML, the list goes on but lets not forget the newest hot shot XPages. XPages allow for things we old timers only dreamed of. Pulling data from multiple sources correlating them and displaying them quickly and securely... Just awesome. If you haven't been paying much attention to them you should be. Check out the work and musings of Jesse Gallagher here at the IKnowSomeGuys.com site and be sure to follow him on twitter @gidgerby. The kid is a genius, but don't tell him I said that. He can get uppity, particularly when he doesn't get his nap.

It is also worth mentioning that in cases where the data is very structured or the amount of data combined with a need for speed would clearly put something like a SQL data source as the lead option that domino can be used to serve that up as well as provide surrounding business logic.

Distribution / Redundancy:


This is a biggie. "Sync is hard" can be attributed to every developer not using Domino. I find myself yelling in my car every time I hear that in some podcast about why things have problems syncing. It is particularly annoying when it is a single company controlling the process from start to finish. Notes has been doing this through replication for many years. It is time tested and rather robust at this point. It is fast and reliable. It can be used strictly for redundancy or for distributing design or data to various locales. Someone in the UK can use a replica in the same geographic area while someone in the US is using one closer to them. The beauty is that these sources can be exactly the same or not depending on the need. Sure there are issues, nothing is perfect but over the years the Notes folks have come up with the best solution. If implemented correctly the biggest issue is usually user training. Someone working on a local replica making changes and forgetting, doing the changes on a server and then replicating...yep the good ol' replication or save conflict. Even here though the problem is easily identified and visible. The fix of making one the "winner" has also been implemented nicely.

If you are finding that you are running into many replication issues that aren't fixed with some user training then you need to check your process flow. The system itself is solid.

Security:


When all else fails this can often be the thing that sways the argument. Very few people will argue for less security. Those people are usually sales or managers that don't want to tell people no to poor security choices. Of course we have user name and password access via the Name and Address book, fine the Domino directory. You can also use other directories. Tied to active directory? No problem. Notes clients seem to be on the way out, which is a shame in my opinion, but the physical user id file is still around to be used. Because of it's low profile it isn't often the target of attacks, I don't like the low profile aspect but in this case it certainly counts as a plus.

My favorite though are reader and author fields. These two little beauties alone can make the case for Domino in many a situation. The ability to have the document determine who ( or what ) can modify or even see the data is amazing. No not that you can put permissions in place, that isn't a big deal but the fact that those can change based on the individual data in an individual document takes granularity in security right to the metal. Assignments to these fields can be by users name, group or role to which people ( or servers ) are assigned. It isn't a huge stretch to have some data on internal servers that can never be accidentally seen by external folks because the servers providing outside access have no rights to the data meaning it simply doesn't exist there to be exposed. Did I mention that those can and often are calculated? Just because you can see a document today doesn't mean you'll still have access tomorrow. If values in the document change, for example something gets flagged as an adverse event, the document can be locked down so only a few have access.

I realize that this is very broad a brush and that the bulk of these have been around for years and years. As far as I'm concerned that just makes them all the more valuable. It is easy for we of the Dominio collective to take these great things for granted, but for those outside our Lotusphere ( yes I may be a bit bitter... IBM connections indeed ) they simply don't know. It is up to we remaining keepers of knowledge to educate them. It isn't rare to run across someone working on some fantastic things with the new fangled doo-dads and language choices now available, but find they don't understand this wonderful bounty that the platform has to offer. IBM doesn't seem to be pushing the basics either. Why is this? I blame what I consider to be a number of poor choices in naming, marketing, and attempts to push side effects of what Domino is capable of as "the product" and not the platform itself. Notes 9 Social Edition? Notes has been social since discussions came about. Bah! But that is for another rant on another day.