Off-the-Shelf or Custom Development:
How Frameworks Can Save the Day
Build vs. buy and why Integra for Notes is the best of both worlds.
By John David Head - Frameworks Manager,
"A complex system that works is invariably found to have evolved from a simple system that worked." - John GallEvery person that is involved with an Information Technology (IT) project faces this issue -- should we build this from scratch or purchase a product and customize it? This important decision becomes a key point in any project. Can we get what we want at the right price or do we have to take the more expensive route and “grow” our own? Because it creates tension between business users and developers, many project failures have been blamed on the build vs. buy decision. The “middle ground,” is to find a solution that enables customization without creating limits on the developers, yet provides an economical choice that won’t “break the bank.” This is why utilizing frameworks can be the best of both worlds.
What are frameworks? Frameworks are collections of reusable objects, processes, scripts, and routines. They are developed using rules-based procedures and functionality that ‘sit’ on top of more widely used, code-based foundations. Freed from the constraints of code, they are inherently more flexible and can be used and re-used just about anywhere. They also leverage the built-in security, scalability, reliability, and availability that are inherent with broad-based foundations. They are adaptable.
Frameworks bring several advantages to any project. They deliver savings in time and cost, increase in quality, innovation, and provide a more flexible architecture.
Time. Frameworks fit well within the confines of the ‘80-20’ rule. Eighty percent of the work in most business projects of a given type is common to all projects of the same type. Using frameworks for the eighty percent can reduce project design time by nearly the same amount. This leaves only the remaining twenty percent for the heavy lifting needed to meet the unique requirements of a particular business.
Cost. Less time equates to less cost. This means that frameworks can reduce costs three ways. Because they are reusable, their development costs are spread over multiple projects. They can also be applied one at a time to solve specific problems – no more, no less – thus keeping development and maintenance costs to a minimum. And most importantly, because they are “on the shelf and ready to go”, they can reduce total project cost by more than one half.
Quality. The re-usable aspect of frameworks means that most of the work is also ‘pre-tested.’ This feature translates into less time testing and correcting, which further drives down time and cost.
Innovation and Flexible Architecture. To keep ahead of the competition, to avoid becoming a commodity, or to keep from outsourced off shore, requires innovation and a flexible architecture to support it. You don’t want new ideas to be constrained or ignored outright because your systems can’t be adapted in a reasonable timeframe.
As a consultant and developer in the world of Lotus Notes & Domino for more than 16 years, I have used many products to help me improve my productivity. Since working with Frameworks at PSC, I have been involved with the most successful and cost-saving projects in my career. PSC’s suite of enTouch Frameworks, including enTouch.crm and enTouch.workflow, has enabled me to deliver immediate business solutions that customers can tailor to their specific needs. Frameworks make life much easier, which is why Integra for Notes and Integra Quick Reports us them to facilitate and integrate Lotus Notes with Microsoft Office and Lotus Symphony. Let me tell you how and why.
Integration Issues that Plague the Developer and User
Since the release of Ami Pro 3.0 and the early version of Lotus Notes, I have focused my skills on the world of integration. In the 16 years since, I have integrated Lotus Notes client applications and Lotus Domino web applications with Lotus SmartSuite, Microsoft Office, OpenOffice.org, and Lotus Symphony. These applications provide functionality such as mail merge, reporting, charting, and slide show generation. However, with the inclusion of multiple applications, there is also more opportunity for more problems. Not only does the developer have to worry about getting the required functionality working, but he or she has to deal with the multiple moving pieces that were not made to work together. These applications provide critical business features for users and must work the same way, every time.
Applications that require functionality that integrates Lotus Notes & Domino with other applications such as Microsoft Office and Lotus Symphony traditionally have the following issues -- software upgrades break the application, the Integration is difficult to customize and maintain, end user functionality is poor, and Web functionality is difficult to achieve.
Software upgrades break the application. A developer can spend a significant amount of time developing and testing his work with the target applications. Everything can work and the project can be released to the users. Nevertheless, as soon as a new version of Microsoft Office or OpenOffice.org is released, the application breaks. The developer has to discover the problem and maintain multiple paths to support the current and previous versions. In some cases, I have worked with custom applications that had code paths for 5 versions of Microsoft Office: Office 97, Office 2000, Office XP, Office 2003, and 2007 Office System.
Difficult to customize and maintain. Any application with lots of moving pieces cost time and money to maintain. When the customer wants to extend and modify the application, the result is more time and cost. This is even truer in an application that integrates multiple applications. Code is located in multiple places and sometimes in more than one application, such as when the developer is writing code in both Lotus Notes and Microsoft Office. Many applications that I provide consulting on were left alone for many years for just this reason. As a consequence, I have spent more time in the past 5 years retrofitting existing applications than building new ones.
End user functionality is hard to use. Every developer strives to make their application usable by their targeted audience. We use design methodologies and user testing to ensure that the application works. The issue we face is that while we can make an application work as we want based on a design, the application can fail when users step outside the specific path. They want to modify a report or select a different label type. Or, they need to send letters to their clients in another country where the mail merge was designed for their home country only. And so forth.
Web functionality is difficult to achieve. When a developer is integrating Lotus Notes and Microsoft Office, they work with technologies like COM and OLE. As soon as the application client changes from Rich Client to Web Browser, the degree of difficulty skyrockets. Not only do they have to deal with browser and languages differences, but they are in many situations involving new methodologies. Thanks to Web 2.0, modern web applications have brought the use sophisticated user interfaces, but the minute you want to export the page to a Microsoft Excel pivot table or OpenOffice.org Writer mail merge, all bets are off.
These and other issues have been the downfall of numerous projects. More importantly, they turn off end users and cause pain in the corner office. As they are evaluated, what becomes apparent is that in application development creates or amplifies all of these issues.
In Application Development vs. a Framework
In Application Development is where all of the integration development is done within the application itself. All of the code and other items used in the integration of Lotus Notes with Office are inside the specific application. If a company has four applications that require mail merge, there are typically four versions of the code. This intensifies the difficult to customize and maintain integration issue. It makes upgrading to a new version of Microsoft Office even more difficult, requiring a developer to make changes in multiple places, which can cause end user and web functionality enhancements to not filter out to every instance of the integration.
In the early days of the integration of Lotus Notes & Domino with Microsoft Office, Lotus SmartSuite, OpenOffice.org, and Lotus Symphony, I was one of the biggest proponents of in application development. The experience of working with integration in the real world with end users has shown me that using Frameworks is a better way.
The Integra for Notes and Integra Quick Reports product came to my attention in 2005. As I have worked with the product, I see how it acts like a Framework. Today, I recommend that integration between Notes & Domino and Office and Lotus Symphony be done via Integra for Notes.
Integra for Notes provides the best Integration Framework
Integra for Notes and Integra Quick Reports combine the best of end user functionality with an industry best framework for integration. All of the issues that plague the developer and user are solved while, at the same time, providing new functionality.
Single location. Integra provides a single location for all integration. Report Profiles are stored in a single database, with full support for the Notes security model. All report information, such as the profile, custom code, and template file are kept together.
The end user can access the report from within the application directly or via the Integra Toolbar icon. Every change, both cosmetic and functionality, happens in this database, making maintenance and future development simple. Pushing these changes to the user is made easy.
Unequalled ad-hoc functionality. Integra for Notes brings true ad-hoc reporting to the end user. A simple four step wizard walks the user thru generating a Microsoft Excel report, with pivot tables and charts or a Microsoft Word mail merge or label printout. The developer does not have to make any changes to their application to enable Integra Quick Reports.
Write once, run client. With Integra for Notes, a developer can create a single report profile that runs in the Notes client, from a web browser, as well as scheduled on a server. These reports can be opened for the user, mailed, or saved to a Notes database.
Removes the burden of Office upgrades and multiple version support. Integra for Notes supports Microsoft Office 2000 thru 2007 Microsoft Office System. The reports in Integra can run on any version of Office. Integra does all of the version branching automatically. In most cases, when you upgrade to a new version of Office, you will not have to make any changes to your reports. Just upgrade to the latest version of Integra and the upgrade burden is handled for you. This also applies to browser support, both for Microsoft Internet Explorer and Mozilla.org Firefox, which allows the developer to stop focusing on report maintenance and spend their time on functionality.
Provides the most advanced functionality. Integra for Notes provides the best functionality for integration of any product I have ever used. Not only does it support all of the functionality found in typical in application development models, but it adds the ability to report across multiple views in a Notes database or multiple Notes databases. It does this thru a Wizard that allows Integra Quick Report users to do the joins. No coding required. Integra also provides the developer with an event model, much like the events found in a Notes form or view. Full support of custom LotusScript and formula allows for a level of customization not found elsewhere.
Your Integration Framework should be Integra for Notes
Any developer or company that has application with integration between Lotus Notes & Domino and Microsoft Office or Lotus Symphony should look into Integra for Notes and Integra Quick Reports. The advantages will allow you to focus on the problem to be solved, the business functionality of the application, instead of the typical problems found in these custom applications. Integra will provide you more functionality that you can build on your own and remove the maintenance burden that typically comes with an integration solution. After 16 years of integration development and speaking at Lotusphere and other conferences on the topic for the past 10 years, Integra for Notes gets my stamp of approval. Try it for yourself and I believe you will come to the same conclusion as I have: Integra for Notes and Integra Quick Reports is the premier integration framework for Lotus Notes & Domino.
John David Head is a Chicago-based consultant and developer. He currently works full-time with PSC Group LLC, where he has served in positions of increasing authority, and currently as Framework Manager, since 2000. Throughout his career he has focused on the development and implementation of enterprise collaboration solutions. At PSC he served as the architect and team leader for many of the enTouch Frameworks which are PSC-proprietary, ready-to-use business templates. For this, and other work he has been recognized with IBM Lotus and IBM Beacon awards and is a regularly-featured speaker at Lotusphere and other IBM and Microsoft technology conferences and user groups.