Ever since the birth of Lotus Notes, IT experts have attempted to define the boundary between appropriate and overly ambitious uses of the product. In Notes’ early days, conventional wisdom held that the product was wonderful for discussion, workflow, and repositories. However, because of the nature of its data structure and related performance issues, Notes was thought to be ineffective for transaction-based applications.
This reasoning seems simplistic today, given Notes’ evolution. As a result, we’re going to revisit the issue of the appropriate use of Notes, but from a different perspective, posing the question, “Is Notes/Domino the right tool for building critical applications?” With the increasing use of Domino for browser-based self-service applications, in which users directly initiate transactions, this question is an important one.
The Role of Middleware
The first step is to define what we mean by critical. To us, this means applications that automate, rather than simply extend or support, core business processes. If the application fails, business is interrupted—completely.
In our consulting work, we’ve teamed up with several smaller (less than $100 million) firms that have chosen Notes/Domino for their critical sales and order processing business processes, including ties to back-end enterprise resource planning (ERP) systems. While these applications don’t necessarily violate the maxim that “Thou shall not use Notes for high-transaction applications,” they do push up against it. In most cases, these applications use an extended transaction model that employs a middleware solution—such as Lotus’s NotesPump, Casahl’s ReplicAction, or Percussion’s Notrix—between Notes and a relational database. Notes/Domino is used to initiate transactions that are then passed on to a relational database for processing.
So, given that a properly designed critical application doesn’t depend solely on Notes/Domino but assigns the heavy lifting to middleware, let’s return to our original question, “Is Notes/Domino the right tool for building critical applications?”
Recognize the Limits
Our answer is a qualified yes: the use of Notes/Domino in building these systems can lead to successful results, but success isn’t automatic.We’ve seen more of these projects fail than succeed, usually because of cost overruns, delays, and project abandonment. When we examine the causes of these problems, they seem to be related to the extent to which business processes are translated into Notes structures and code. Most of us think of Notes as a great “80 percent” development platform: you can quickly and cheaply pump out applications that do most of what you want. This may be acceptable for noncritical applications, but it isn’t for critical ones. When the new, expensive Notes-based system is rolled out, no operations manager wants to feel out of step with the times. So the temptation to automate 100 percent of business processes is extremely strong. Our advice? Resist the temptation at all costs.
Instead of using Notes as you would a database to encode a vast number of rules for data manipulation, translation, and processing, you should redesign processes to take advantage of Note’s information-rich environment. Use Notes/Domino to increase the knowledge component of the application and resist the tendency to encode every business rule as an agent. Programming the last few bits of functionality to automate an existing process may kill the project with complexity, resulting in excessive costs and delays, convoluted coding, and poor performance. Don’t try to make Notes do what it can’t do well.
The list of what Notes isn’t good at doesn’t end with its sometimes maddening, at times nonexistent, user interface controls. It’s important to recognize at the outset that Notes isn’t a transaction-processing platform or a relational database. Remember, you’ve chosen Notes for its flexibility, and the cost of that flexibility is that transactions will be somewhat slower and will require a middleware-based architecture connecting to a back-end data management environment.
Other Tips for Success
If you understand Notes for what it is at the start of the project and keep the Notes components of your application within bounds, you’ll save yourself much aggravation later. Your development experience will also be more satisfying if you follow these additional tips:
· Make sure that the project includes staff who are highly experienced with Notes/Domino, since only with several years of experience do its nuances become apparent.
· From the very beginning, have several strategies in mind for addressing performance issues. Possible approaches for improving response time range from increasing bandwidth to incorporating local servers and browser-based access.
· Plan on a middleware solution that allows the application’s heavy lifting to be executed in a transaction environment. For example, design the application around an SQL and database architecture that will support data processing and reporting requirements; keep the Notes data structure as similar as possible to the database schema to facilitate design changes as the project progresses.
· Keep number-crunching to a minimum. Try not to design forms that have extensive tables of spreadsheet-style calculations, especially if these involve a lot of “hide-when” formulas, which take too long to display and are often complicated to design and maintain.
Enjoy the Rewards
If you follow these guidelines, you can succeed at using Notes for critical applications—and you can reap the other rewards that Notes/Domino has to offer. You’ll find that being forced to live without certain functionality is offset by your ability to store rich, semistructured content, both within Notes documents and as attachments to them. And while Notes may not be the robust transaction environment you want, you’ll appreciate the easy workflow support and roles-based security.
When the time comes, you’ll also appreciate the ease with which you can turn your internal application into an e-business extranet application for your suppliers and customers. Extending a well-constructed and stable Notes/Domino application to your customers across the Internet is relatively easy and, if designed properly, secure. Getting your suppliers and customers directly involved in your business process can be a big advantage, making them feel much more like full partners in the process.
In short, don’t be afraid to use Notes for critical applications. If you design to take advantage of what Notes does best while relying on traditional transaction-oriented tools to manage transactions, your efforts are bound to succeed.