You are on page 1of 8

Application Developer Program

Best Practices for Developing Documentum


Based Offerings

Version: 1.0
Date: June 26, 2006
Revision History

Date Version Author Description of Change


• Initial Version
June 26, 2006 1.0 Vinesh Goyal

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 Design best practices


o Development best practices
o Installation best practices
o Quality Assurance best practices
o 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