Projects/Industry Templates/Specifications

From InfiniteERP Wiki
Jump to: navigation, search

Industry Templates - Functional Specifications

Overview

An Industry Template is an artifact that contains:

  • One or more plug-ins that provide industry specific functionality
  • A set of configuration options that - when loaded - automatically configure Openbravo ERP to support best practices for a particular industry.

Purpose

The purpose of Industry Templates is to dramatically reduce the implementation costs and time by providing a one-button delivery of everything that is needed to operate Openbravo ERP in a given industry.

A secondary goal is to enable partners with industry specific expertise to package their expertise in the form of a template and to distribute it to the whole Openbravo user community.

References

None.

Design Considerations

This project is about reducing the implementation time and cost and lowering the barriers of adoption of Openbravo. Because of that, the user experience if of paramount importance. It must very easy for a user not having technical or system implementation skills and having very little knowledge of Openbravo to select and deploy an industry template.

Assumptions

  1. It should be possible to operate this functionality in a pure multi-tenant implementation. In particular, this means that it should be possible for a user to initiate the creation of a new client applying an industry template in a self-service manner without having any prior access to the system and without being a system administrator.

Dependencies

None.

Constraints

  1. An industry template can only be applied at time of initial client setup.

Glossary

Configuration
A set of reference data that, when applied to an Openbravo instance, supports a specific set of business processes.
Industry Template
the combination of reference data and plug-ins that support best practices for a particular industry.
Master data
Data that describes referred by transactions that tend not to change on a very frequent basis. Examples: business partners, products, price lists, etc.
Plug-in
A module that, when applied to Openbravo, provides additional functionality.
Reference data
The combination of setup and master data.
Setup data
Data that dictate the behavior of the system and that typically does not need to be modified unless there is a change in business processes. Example: the chart of accounts.

Functional Requirements

An Example

The Scenario

To better illustrate the need for Industry Templates, let's consider the example of a small US-based non-profit organization that coordinates the work of a group of volunteers that provides services to inner-city youths.

The primary source of financing comes from voluntary donations of members that pay an annual membership fee. There are three levels of individual membership (standard: $25 - silver: $50 - gold $100) and one level of business membership ($75), but the organization accepts donations of any monetary amount. Members are recruited through membership campaigns and registered in a database; on an annual basis, the organization mail reminders to all the current and past members to solicit a renewal of their donation. Membership fees can be paid either by cash, check or by credit card using a payment service. Given the voluntary nature of the memberships, they are not invoiced but a receipt is issued when the payment is received.

The organization also publishes a newsletter which contains advertisements which are sold at a price that depends on their size. Business members have a discounted price on ads. Advertisement is sold using a standard sales cycle: advertisers place an order, they are invoiced, they send a payment and they receive a receipt.

Occasionally, the organization receives donations from other non-profit organizations and makes donations to other, smaller organizations.

The organization has a single bank account where it deposits all the donations and from which it issues all the payments by check.

The accounting for all transactions is done on a cash basis.

Openbravo Implementation

In order to implement Openbravo for this organization, the following configuration is needed:

Setup Data

  • A client that represents the organization itself.
  • Modify the User role for the new client to only allow access to the following functionality:
    • Master Data Management
      • Business Partner
      • Product
      • Price List
      • Import Business Partners
    • Procurement
      • Purchase Invoice
      • Purchase Invoice Dimensional Report
    • Sales Management
      • Sales Order
      • Create Invoices from Orders
      • Generate Invoices
      • Print Invoices
      • Sales Dimensional Report
      • Sales Order Report
      • Invoiced Sales Order Report
      • Orders Awaiting Invoice Report
      • Invoice Detail
      • Invoice Customer Report
      • Sales Invoice Dimensional Report
    • Financial Management
      • ...
  • Define the business partner categories:
    • Members
    • Business members
    • Board members
    • Advertisers
    • Suppliers
    • Volunteers
    • Non-profits
  • Define the following titles
    • Mr.
    • Mrs.
    • Miss
  • Define the product categories
    • Ads
    • Services
    • Other
  • A price list adjustment to represent the discount on advertisements for business members (*)
  • Define a GL calendar with quarterly periods
  • Define a bank account (*)
  • Define a cashbook for petty cash transactions
  • Define two remittance types
    • Mail deposit
    • Branch deposit

All the above data, with the exception of the entries marked with (*) is generic and reusable with minimal modifications by other organizations in the same industry.

Reference data

  • Business partners for:
    • Board of directors
    • Members
    • Business Members
    • Volunteers
    • Advertisers
    • Clients
  • Products
    • Advertisements sold
    • Services provided
  • Price list

The reference data is generally organization-specific and not reusable.

Plug-ins

The following two plug-ins, if available, would be very useful for this sample organization:

  • Financial Institution Connector that downloads bank statements in OFX format
  • Paypal Connector that downloads information on donations received through Paypal
The Industry Template

In this example, the industry template would be made of the following elements:

  • The reusable setup data
  • The plug-ins

Users should be able to download the template and load it to their installation of Openbravo. Before the loading process, users should only be prompted with the data modifications that need to be applied to the reference data. For example, they should be prompted with the organization name, the address, the bank name and account number, while the rest should be completely automated.

User roles & profiles

The user roles affected by this functionality are:

Non-professional Functional Administrator
Typically a small business owner or trusted employee at a small business that is tasked with configuring the system to meet the requirements of the business. These users are typically computer-literate and very familiar with desktop applications and consumer web sites but does not have a formal education in computer science; they are therefore expecting a user experience comparable to the one of a consumer-grade application. They are very knowledgeable about the way their business work but are not familiar with ERPs and have never participated in a complex IT or formal business process re-engineering project.

Business process definition

  1. Users connect to an Openbravo instance with a guest user which has access to a role that only allows to initiate an initial client setup with industry template action.
  2. Users can choose to either browse a catalog of industry templates or to instantiate a client from a template they previously downloaded
  3. Users can initiate the client creation process using the selected industry template and specifying the organization specific data
  4. Optionally, an instance administrator approves the client creation (this task might include payment verification)
  5. The system instantiates the client, applies the template
  6. Users receive a notification with the login instructions

User stories

José is the a board member for a non profit organization that has been managing its operations using a combination of spreadsheets (to track newsletter ads), ad hoc databases (to track donors) and commercial off the shelf consumer grade accounting software (to manage accounting). This data fragmentation leads to a lot of complexity in the communication within the organization, loss of revenue, and members.

To address these issues, José decides to consolidate the IT infrastructure on a hosted system that can provide all the required services. After doing some research he finds that Openbravo offers a hosted solution that is tailored for non-profits.

He begins the solution evaluation by downloading the community virtual appliance and the non-profit industry template. Working on his laptop, he instantiates the virtual appliance and connects to the system. Following the instructions:

  1. He chooses the System Administrator role and navigates to the Initial Client Setup with Industry Template window
  2. He specify his email address and the local location of the industry template file. He then presses Submit.
  3. A new screen prompts him with the organization specific information that he needs to enter:
    • Organization name and address
    • Bank name and account number
    • Paypal details (the organization does not use Paypal, so José does not enter these details)
    • The location of a spreadsheet that contains existing business partners
  1. José presses Creates and the system displays a message stating that the request is being processed.
  2. A few minutes later José receives an email confirming the completion of the process and containing the user name and password for an admin user of the newly created client.
  3. José logs in again with the new user and starts transacting.
  4. A few days later, after having confirmed that the system meets the needs of his organization, José repeats the process on the Openbravo hosted server
  5. This time, after having submitted the request, he receives an email that prompts him to login to the Openbravo on line store and purchase a subscription.
  6. Once the payment is complete, he receives login credentials to a hosted client that has been configured with his preferred industry template.

Functional requirements based on business processes

Num Requirement Importance
1 Ability to load a client definition from a file Must have
2 Ability to alter some aspects of the newly created client based on parameters Must have
3 Ability to install additional functional plug ins for the new client without affecting any other existing client Must have
4 New screen to initiate the client creation using a template Should have
5 New role that enables initiating the client creation using a template for a guest user Nice to have
6 Ability to load an industry template from the local file system Must have
7 Ability to download an industry template from a remote server Nice to have
8 Ability to initiate the browse of available industry templates Nice to have
9 Ability to notify users via email of the successful instantiation of the industry template Must have
10 Ability to trigger a work flow when a new client is requested Nice to have


User Interface Mockups

TBD

Non-Functional Requirements

Performance
The initial client setup with the application of an industry template should complete within 30 minutes.

Open Discussion Items

Self-service model
In a pure self-service model - required for a full support of a pure multi-tenant system - the user should be able to initiate the creation of a new client using a template without having any previous access to the system. This action would then be considered as a request and it would need to go through a workflow which includes various steps (example: payment collection, approval, provisioning, etc.). This presupposes the existence of a workflow engine, which is not available in Openbravo.
Instead, we assume that the user can connect with a guest user and initiate the action.
Is this acceptable?
Industry templates by organization
Larger enterprises can have multiple organizations each implementing different lines of businesses or operations in different countries. It is therefore conceivable that a larger organization might want to implement different industry templates within a single client.
The current proposal is to have a template per client. Is that acceptable?
This feature targets smaller enterprises that typically have only one organization; is that areasonable simplification assumption?

Closed Discussion Items

Window configuration
Should an industry template include window configurations as well (field names, layouts, etc.)? Ideally yes but window configurations are common for all clients in the instance.

Yes. Without window configurations, industry templates would not be valuable enough. The implication of this decision is that - with the current version of Openbravo - all the clients in a hosted system must have the same template.