Application Developer Program

Best Practices for Developing Documentum Based Offerings

Version: 1.0 Date: June 26, 2006

Revision History Date June 26, 2006 Version 1.0 Author Vinesh Goyal • Description of Change Initial Version

Best Practices for Developing Documentum Based Offerings

2 of 8

Table of Contents
INTRODUCTION.................................................................................................................................................................4 DESIGN BEST PRACTICES ..............................................................................................................................................5 DEVELOPMENT BEST PRACTICES ..............................................................................................................................5 INSTALLATION BEST PRACTICES...............................................................................................................................6 QUALITY ASSURANCE BEST PRACTICES..................................................................................................................7 DOCUMENTATION BEST PRACTICES.........................................................................................................................7

Best Practices for Developing Documentum Based Offerings

3 of 8

Introduction
Over the years, the Documentum Enterprise Content Management system has evolved into the EMC Information Lifecycle Management (ILM) platform. More customers are adopting the EMC Documentum platform for managing their enterprise content, content security, business processes, compliance, and for better productivity of their employees. At the same time more and more partners are developing industry focused products on this industry proven ILM platform. EMC Application Developer Program (ADP) is focused on this developer community of partners and customers who are developing offerings using the Documentum platform or are extending Documentum capabilities by adding customization to it for their organizations. We in the Application Developer Program team are often asked by the developer community (partners and customers) about best practices for designing and developing on our platform. Partners also want to know how they can package their offerings into more shrink wrap products that are easy to deploy at customers’ sites. To address this need, we have initiated this document about best practices while designing, developing, and packaging EMC Documentum based offerings. This will be a living document that will be enhanced and extended overtime to cover other areas of the EMC products suite. Though primary audiences for this document are the partners’ development teams, this document will equally benefit customers’ IT teams as well in designing and developing their customizations. This will also provide guidance to customers while selecting mature vendors products for their IT departments that are easy to deploy, have less total cost of ownership (TCO), superior architecture, and optimized for our platform. This document covers following topics with top ten best practices in each area. o o o o o Design best practices Development best practices Installation best practices Quality Assurance best practices Documentation best practices

We plan to extend it to cover all the major interfaces of EMC Documentum platform that are commonly used for integration and for customization by our developer community. You can email your feedback or interests for newer areas to us at developer_program@emc.com.

Best Practices for Developing Documentum Based Offerings

4 of 8

Design Best Practices
This section outlines some of the best practices while designing your application using the Documentum platform. These guidelines will help you in designing so that the end product is compatible with EMC Documentum products ecosystem, extensible to adopt newer EMC products/features, and incremental features adoption is proportional to incremental cost. 1. Access content through named user sessions wherever possible. 2. Establish ownership of content in the Repository whenever possible. 3. Apply appropriate meta-data for the content that describes the content. 4. Store content through out the lifecycle and not just the final content. 5. Support content versioning capabilities. 6. Adopt and follow a naming convention for all the object types that are created in the Documentum repository. 7. Development Partners should consider registering your naming convention with the Application Developer Program. 8. Apply appropriate ACLs to the content that are created in the Documentum repository. 9. Encrypt all the passwords in the system whether they are stored in the file system on in a database. 10. Validate that you are building your offering on a Documentum supported configuration. Check for supported OS, JDK, Application Server, etc.

Development Best Practices
This section defines development best practices that will help you avoid pitfalls during development and will minimize efforts while porting your application from existing EMC Documentum product version to newer version. 1. Centralize business logic at one place using Documentum Business Object Framework (BOF) to ensure its executed regardless of the client. 2. Do not access or create content in Documentum repository using common gateway or super user. 3. If developing using WDK framework, plan to create a separate application layer for your offering. 4. Use controlling application attribute (a_controlling_app ) to identify objects created through your offering.

Best Practices for Developing Documentum Based Offerings

5 of 8

5. Do not access Documentum controlled database tables inappropriately. For example, use DQL or api calls instead of SQL queries to access or modify content repository object attributes. 6. Use Documentum data dictionary for applying business rules or provide value assistance for object metadata to the users. The data dictionary supports multiple locales, so you can localize much of the information for the ease of your users. 7. Do not register Documentum object model tables back as registered tables. 8. Do not use undocumented API. 9. Do not use deprecated API. 10. Do not decompile or re-compile core libraries.

Installation Best Practices
If you plan to package your offering such that it’s more of an off-the-shelf-product, you should consider following these guidelines to provide a nicer installation experience to the customers. Though most of the time, products are sold based on their features set but providing an easy installation creates high confidence in the IT organization and would result in happier customers. 1. Validate installation environment for supported configuration before proceeding. Check for OS, WDK, DFC, JDK or any other pre-requisite software during your installation. 2. Leverage the Documentum Application Builder (DAB) to package custom objects that need to be deployed in the Documentum repository. 3. Automate installation process as much as possible to avoid manual error. 4. Identify all files installed to meet requirements for regulated environment. 5. Identify, warn and log problems during installation. 6. Do not hard-code locations of installation files. 7. Do not replace any EMC Documentum product files or upgrade any newer version with older version during installation. 8. Do not break core EMC Documentum products when installation. 9. Provide an upgrade/migration path. 10. Provide an uninstaller that cleanly uninstalls the offering without breaking Documentum products or requiring re-installing of any of the Documentum or 3rd party products.

Best Practices for Developing Documentum Based Offerings

6 of 8

Quality Assurance Best Practices
This section outlines some of the best practice guidelines around quality assurance of the integration of your offering with the EMC Documentum platform. These quality assurance guidelines should be incorporated in your overall QA plan. Incorporating these QA guidelines in your test plan would help you avoid run-time issues. 1. Execute and document necessary performance and stress testing to record number of concurrent users in typical environment to ensure that it meets Documentum performance. 2. Check appropriate transaction handling, error handling, and exception handling at runtime to prevent the loss of data. Plan to use Documentum transaction handling for any Documentum object related operations in your application/integration. 3. Check error logs for complete messages that can be easily understood by the administrators 4. Test several users on the same computer to ensure that local resources are handled properly 5. The user log in is in the context of the current user, not of a previous user. When a user logs in, their user name is displayed as the default. It should not show a previous user as default. Upon logging in, the user might be positioned to their favorite cabinet or folder. When another logs in, their default user name, favorite cabinets and folders, and user preferences should be as they were when they logged off. 6. Temporary files should be kept separate between users. 7. One user's session should not affect another user's session, except for object locking and other such exceptions. 8. Ensure that users are allowed to version content without requiring creating new objects every time by deleting previous objects. 9. Ensure that users have option to browse/view previous versions of a document. 10. Ensure that offering uses its own configuration files for configuration and does not overwrite or append to Documentum configuration files.

Documentation Best Practices
For creating an off-the-shelf product, you would need to provide necessary documentations so that customers have high confidence in the product and reduces their total cost of ownership. Following are the key documentations that we have identified with our experience while working with customers and partners. Some of the guidelines around release notes, supported configuration, and product lifecycles will help you serve your customers better and reduce support calls. 1. Prepare an offering specification document. 2. Provide an Administration Guide.
Best Practices for Developing Documentum Based Offerings 7 of 8

3. Provide an Installation/Removal Guide. 4. Provide a User Guide. 5. Provide Release notes that covers supported configuration. 6. Provide a .Training manual 7. Document known exceptions and unsupported Documentum functionality. If applicable, be sure to document your offering’s support for Federated or Replicated Content Repositories. 8. Provide a compatibility list with the Documentum platform on supported hardware and supported version configurations 9. Provide an installation order list for offering components. 10. Provide an offering lifecycle document that outlines how long the specific product versions are supported ******

Best Practices for Developing Documentum Based Offerings

8 of 8