Search

Mobile tag

About Me

I am the "IBM Collaboration & Productivity Advisor" for IBM Asia Pacific. I'm based in Singapore.
Reach out to me via:
Follow notessensei on Twitter
(posts)
Skype
Sametime
IBM
Facebook
LinkedIn
XING
Amazon Store
Amazon Kindle

Twitter

Domino Upgrade

VersionSupport end
5.0
6.0
6.5
7.0
Upgrade to 8.5x now!
(see the full Lotus lifcyle) To make your upgrade a success use the Upgrade Cheat Sheet.
Contemplating to replace Notes? You have to read this! (also available on Slideshare)

Languages

Other languages on request.

Visitors

Useful Tools

Get Firefox
Use OpenDNS
The support for Windows XP is coming to an end and has . Time to consider an alternative to move on. sounds like a lot of time, but, like an object in a mirror, it is closer than you think.

« XPages Workshop Impressions from Bangkok | Main| DXLMagic - using the DesignExtractor »

Enemy of the state IT system #1 : complexity

QuickImage As the saying goes the complexity of any system grows at the square of the components involved. We do live in a complex world, so you can shrug, surrender to the unavoidable and move on. Or you can take a closer look and discover differences in complexity. There is the complexity from the nature of the task at hand and there is the complexity we add in the way we approach the completion of the task. Order a meal in a restaurant can be straight forward or incredibly complex. You can call that "Essential Complexity" and "Accidental Complexity", terms coined by Fred Brooks over 20 years ago. His book The Mythical Man-Month is a must read for any software engineer or normal mortal human dealing with software engineers. Brooks states that software isn't werewolfs, so there is no silver bullet. While I fully agree with his insights, I more and more doubt, that the second complexity is really "accidental". It is man made and IMHO quite deliberate. Of course we never need to assume malice where incompetence is sufficient to explain*. Let us look at the setup of your average web application (and I skipped the provisioning and monitoring pieces, as well as the diverse interfaces to administrate all this):
Too many moving parts
After careful counting that would make 6 servers or a complexity of 36. The setup is typical for Microsoft setups (Exchange, ActiveDir, Sharepoint, IIS, DotNet, SQL Server) as well as for Java setups (Apache HTTP, Tomcat/WAS, Samba, LDAP, DB2/MySQL, POP/IMAP) or your favourite scripting environment (just swap out Tomcat/WAS for the script of your choice). Not all of these servers need to be physical boxes or virtual images. They can be tasks running on one hardware. Make that high available (12 boxes) and you have a complexity of 144. Of course you could use Domino for your applications. The setup will look like this:
DominoSimplicity.png
Of course to get there you have to challenge your believes:
  • Complexity is good
  • Web systems need to be 3 tier
  • A directory must be dedicated LDAP (Domino does LDAP, as does AD)
  • Databases must be relational
  • Only complex setups scale
  • Only with [insert-your-favourite-language-here] web applications can be developed properly
  • And then the Lotus Domino specific ones:
    • Domino is legacy
    • Domino doesn't scale
    • NSF is not reliable
    • Web development with Domino is complicated
* On the other hand: Any sufficiently advanced incompetence is indistinguishable from malice.

Comments

Gravatar Image1 - @Carl - I have ST, Quickr and Domino all running together on one box (my demo Thinkpad). All works fine (though not officially supported)

Gravatar Image2 - @Jonathan, nice try:
3 flaws in your argument:
- Sticking to "what is there" would make use write software in Cobol, Fortran and Assembler till today. There was a time where PHP, Ruby, C# were all new.
- Quantity of developers isn't Quality.
- XPages applications are written in Javascript (not LotusScript), the most pervasive language of all. It draws execution power from a solid JSF foundation without exposing the complexity. Using XPages you have a single language, JavaScript, while in ASP, JSP, PHP, Ruby, CGI etc. you have different languages for front-end and back-end. And we all know know much more difficult language soup is to maintain.
Emoticon stw

Gravatar Image3 - I think that people have an unbelievable level of arrogance when it comes to dealing with complexity. I suspect that our brains tend to simplify the reality of the situation as a coping mechanism. The consequences are that overly complex solutions tend to be put in place which then need management + maintenance. Nice post.

Gravatar Image4 - "Only with [insert-your-favourite-language-here] web applications can be developed properly"

Actually, with the right resource with the proper skills, any language can be used to develop web applications properly.

So the key point here is "skills".

If you are developing a web app and you have considerations such as future maintainability and availability of skilled resources - would you rather do it in a language like ASP.NET, Java, or PHP, with gazillions of developers and books and other resources, or do it in XPages/LotusScript with only maybe 30 skilled people in a country (from attending a workshop)? Emoticon

Gravatar Image5 - you know at first I was surprised (and quite amused:) to see this tutorial in pictures. it reminded me some manuals kids always get while trying to cope with a toy or lego. but then I realized that actually it's the same: we just use toys for adults. thank you for sharing this! everything is simple.

Gravatar Image6 - Ah the good old days. Sadly if you start adding Sametime, Sametime gateway, Sametime Advanced, Quickr, Connections etc. your Domino picture looks a lot like the first one.

Domino is the perfect server for SMB, IBM may be starting to realise that with Foundations. I hope work gets done again to allow Sametime, Domino and Quickr to run on the same box (without having to use VMware)

Gravatar Image7 - "Any sufficiently advanced incompetence is indistinguishable from malice."

A priceless adaptation of a marvelous quote. Emoticon

Gravatar Image8 - you are developing a web app and you have considerations such as future maintainability and availability of skilled resources - would you rather do it in a language like ASP.NET, Java, or PHP, with gazillions of developers and books and other resources, or do it in XPages

Post A Comment

Please note: Comments without a valid and working eMail address will be removed. This is my site, so I decide what stays here and what goes.

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::rolleyes:;-)

Disclaimer

This site is in no way affiliated, endorsed, sanctioned, supported, nor enlightened by Lotus Software nor IBM Corporation. I may be an employee, but the opinions, theories, facts, etc. presented here are my own and are in now way given in any official capacity. In short, these are my words and this is my site, not IBM's - and don't even begin to think otherwise. (Disclaimer shamelessly plugged from Rocky Oliver)
© 2003 - 2013 Stephan H. Wissel - some rights reserved as listed here: Creative Commons License
Unless otherwise labeled by its originating author, the content found on this site is made available under the terms of an Attribution/NonCommercial/ShareAlike Creative Commons License, with the exception that no rights are granted -- since they are not mine to grant -- in any logo, graphic design, trademarks or trade names of any type. Code samples and code downloads on this site are, unless otherwise labeled, made available under an Apache 2.0 license. Other license models are available on written request and written confirmation.