Directed Development - Documentation topics on: customization,development,plugins,.

Directed Development

Modern corporate IT strategies recognize long-term benefits of improving core software products rather than choosing to maintain one-off customizations with short lifecycles.
dotCMS offers a special level of development support for Enterprise customers through a Directed Development program, that gives customers the unique opportunity to create new or improved features that meet specific customer requirements and advance customer success for the long term. Such “Directed Development” enables you to leverage both the strengths of the dotCMS platform and the extensive expertise of the dotCMS team to create dotCMS features and functions that meet your core needs.

Directed Development provides many benefits including:

  • The ability to influence (or even directly specify) how a particular feature or function should work.
  • The new feature or function becomes built-in to the dotCMS core software product and is maintained through future product upgrades.
    • After the initial integration, the new feature becomes part of the core dotCMS software product, and is supported by dotCMS at no additional expense over the customer's lifecycle.
  • dotCMS invests and commits our own resources in the development, including product expertise, dotCMS engineering and management resources, and integration with the future product roadmap and direction.
  • dotCMS pay provide additional capabilities and/or discounted development rates during the project.

Criteria for Directed Development

dotCMS Professional Services and many dotCMS partners are always available to assist in development of any implementations, requirements, or features for your dotCMS projects and sites.

However not all projects are appropriate candidates for the close level of cooperation and integration offered by the Directed Development program. For dotCMS to consider a feature as a candidate for Directed Development, it must, at a minimum, meet the following established requirements and criteria.

Directed Development features and/or improvements must:

  • Expand the dotCMS core capabilities or functionalities.
  • Be of general interest to a majority of dotCMS customers and the general marketplace.
    • In particular, projects and features that are part of the Directed Development program must be agreed to be built in such a way that it can be used by other customers and not just by a specific customer or implementation.
  • Do not require dotCMS to use proprietary or closed source software within the core code base (unless otherwise agreed to beforehand, or unless there is a free or open source alternative that can be demonstrated to be usable as an alternative with relatively little effort).
  • Be built to be part of dotCMS or work in conjunction with the dotCMS platform via dotCMS APIs (including dynamic plugins).

Note that, depending on the nature of the project or functionality, additional requirements may be necessary to ensure Directed Development is both appropriate and beneficial for both the customer and the dotCMS product line.

Caveats

All projects and features worked on through the Directed Development program must:

Directed Development Process

dotCMS develops software in an iterative, agile process, and the Directed Development program is no different. The following general process will be followed for all Directed Development.

1. Statement of Work (SOW)

For each directed development feature, a Statement of Work (SOW) that broadly outlines the requirements of the development will be generated. dotCMS will work with the customer to attempt to capture both the specific technical requirements and the business needs driving the request.

2. Estimate of Resources and Time

dotCMS will provide the customer a “Best Efforts” estimate of size of the agile team to be assigned to the work and an estimate of the number of development iterations (each 3 weeks long) the agile team will spend in order to meet the requirements outlined in the SOW. This will provide the customer an estimate of the cost of the Directed Development.

3. Written Agreement

The Statement of Work and Estimate must be agreed on in writing by both dotCMS and the customer before the commencement of any “Directed Development” efforts.

4. Iterative Development

New requirements will emerge as work progresses. This means that as the agile team and Customer progress in the directed development, new requirements are expected to emerge and be captured as part of the agile process. If these requirements change the estimate of the work effort, dotCMS will notify the customer. The customer can agree to execute on those new requirements or to prioritize existing requirements at their discretion.

5. Billing and Costs

All directed development work is billed hourly on a time and materials basis. If the work effort needed to complete the directed development exceeds the original Work Estimate, dotCMS will notify the customer and provide a new “Best Efforts” estimate of the remaining iterations required to complete the development. If significant changes to the Statement of Work or Estimate are expected, changes (and new signatures) for the Written Agreement may be required before progress can continue.

6. Right to Cancellation

The Customer retains the right to cancel any Directed Development effort at the end of any iteration. In doing so, the Customer agrees to pay dotCMS for all time up to point of cancellation. In turn, dotCMS will deliver all work product developed up to point of cancellation.

If you are interested in learning more about directed development, please reach out to info@dotcms.com for more information.