Back in the 1960s, IBM observed that a lot of business time was spent retyping documents. A lot of business documents needed fairly frequent changes. While handwriting could be used for minor annotations, eventually the changes would need to be made in the typed version. This would require that a secretary re-type at least an entire page of the document. Hence, the development of what came to be called the word processor. Suddenly, a single piece of software could be used to speed up multiple business processes, from contract negotiation to the issuing of invoices. Over time, word processors became customizable. You could set up templates and build macros to tailor them to your particular business and the specific problems you faced.
In the 1970s, Dan Bricklin and Bob Frankston noticed that there were a lot of business problems whose solution involved assembling data into tables, and performing simple arithmetic on the collected information. They developed what came to be known as the spreadsheet, a general purpose software tool which, like the word processor, could be customized via templates and macros to solve a wide class of business problems.
In the 1980s, someone noticed that a lot of business time was spent standing in front of a bunch of people, showing them charts and diagrams (often via an overhead projector), and talking to them. They created a program called Harvard Graphics, the first example of what came to be known as presentation software. Sales presentations, internal pitch meetings, company-wide briefings — again, a wide range of business problems could be addressed by using templates and macros to customize things.
Also in the 1980s, Ray Ozzie realized that a lot of business problems involved filling out a form, signing it, and passing it around. He built a general purpose piece of office software that would automate those kinds of tasks, just as spreadsheets would automate calculations on tables of numbers. As with other kinds of office software, this new product would use templates and macros to allow simple customization. He called it Lotus Notes.
All of these business software products have something else in common: they get no respect.
If you tell people you do your accounting in Excel, you will be mocked. If you build an invoice generation system using Word macros, don’t expect programmers to admire you.
Partly this is because none of these business software applications provides a solution that’s as good as something tailor made to the specific task. Your Excel chart of accounts is not going to be as good as a proper accounting package. Your Word-based invoice system won’t be as good as a real billing suite. Your Notes-based trouble ticket system won’t be as good for software developers as a project tracker that offers source code control system integration.
Those of us who solve business problems for a living understand this. We are fully aware that often, Notes provides a pretty ugly and primitive solution to a problem. But we understand some other things too. Such as the fact that time is money — and in particular, implementation time is money.
Consider a typical forms-related problem that crops up all the time in most medium to large companies: surveys. Imagine you want to send out a survey to your employees. Here are some requirements:
- The survey must be displayed graphically, and may need to include diagrams.
- Users must be able to fill it out using the usual desktop GUI conventions — drop-downs, radio buttons, checkboxes, and text entry areas.
- The identity of the users and their eligibility must be strongly verified — we can’t just throw up a web page and let people register.
- Users must be able to partially complete the survey, save it, and come back to finish it later. After all, our employees are busy people.
- Our sales people are often out of the office, so they must be able to fill out the survey while they’re on the plane with no network connection.
- The survey results must be secure from tampering. We can’t have survey input changed to make Department X look good, even if Department X is the one that runs the survey database.
- We’ll probably need to do another survey in a few months, so the questions should be editable without needing to know a programming language.
- We’ve got offices in South America with slow network connections. We’d like to have a local server down there they can use, which automatically syncs up with the master server in the US.
- We’ll want the usual spreadsheet-like views which total and average the responses.
- We’d also like to be able to export to a spreadsheet file to make graphs.
Granted, this isn’t the simplest possible set of requirements for a survey, but the above are all fairly standard requirements you encounter when building business solutions.
Now, here’s why people use Lotus Notes: If you have Notes deployed in your organization and you know how to use it, you can solve the problem described above, meeting all the requirements, in an hour or two.
I don’t know of any other piece of software which approaches that level of productivity for this class of problem. The closest I’ve encountered is Ruby on Rails, and it’s still a long way off.
Maintenance is similarly accelerated. If you make a change to something you’ve built, there’s no tedious process of packaging, uploading, getting all the users to upgrade, and so on. Instead, your changes trickle out across the network automatically. (Yes, this means testing is a good idea.) All this without a central server, so there’s no single point of failure.
This, in turn, means that Notes is an excellent tool for agile development of business solutions. You can put together a first iteration in days, and get it out there for users to look at. You can make changes in minutes. I’ve literally fixed bugs and implemented features while on the phone with someone, and had them try out the changes on a test server in real time.
I haven’t cherry-picked the problem either. Need a system for collecting the data for your quarterly reports? A place people can enter help desk tickets, and you can track who’s working on them? A discussion forum with threading? A document repository with full text search? An encrypted notebook? A tool for building e-mail newsletters? They’re all relatively quick and easy to develop using Notes. You can web-enable them too, with not much extra effort.
Oh, and yeah, I guess Notes can work like an e-mail program too. It’s not bad at that, though it wouldn’t be my first choice.
I am, fundamentally, a solver of business problems. A lot of the time, I solve them using Notes, precisely because it’s the fastest way to get a solution that does the job. Yes, it’s often a clunky sub-optimal solution, but a sub-optimal solution this week is much better than an optimal solution in a year from now, especially when you can build on it in agile fashion and learn more about the problem.
Of course, there are some problems Notes is simply not suitable for. Like Excel and Word, there’s a tendency for Notes to become a golden hammer. How often have you seen someone use an Excel file attachment as a way to send you a table, because they didn’t know how to put a table in an e-mail or on a web page? Or use Excel as a database? It’s the same with Notes — you have to be careful to stop and think whether it’s really the best tool for the job.
Another similarity with spreadsheets is that it’s easy to develop applications in Notes that are unmaintainable. You can do that with any programming language too, but the low barrier to entry, and temptation to throw something together quickly because you can, means that it’s a particular danger with Notes.
But when it comes right down to it, Notes is a good way to automate a large number of processes that medium and large businesses find themselves having to carry out. When something better comes along, I’ll certainly look at it — but until then, someone needs a way to collect requests to reserve video conferencing hardware, and link the requests to a library of demos and presentations, and a database of sales opportunities… And they need it this week.