Flexibility Requirements

The Flexibility requirements define parts of the system that are the most likely to require ongoing changes or augmentation, and ways in which the system can best be amenable to these forthcoming changes.

Definitions

Active Setting
The settings system that presently lives in the repository under the lib/active_setting directory.
Payment Processor Integration
The module of the Mall on Rails system that integrates order and checkout with the processor of the payment. For the initial release, this is Stripe.

Goals

  1. To ensure that Mall on Rails is able to grow in the way the project champions desire without undue burden on the development team.
  2. To allow future expansion of Mall on Rails to new and emerging markets.

Exclusions

No explicit exclusions have been identified for this section.

Requirements

  1. An experienced developer with existing knowledge of the system shall be able to add a new payment processor integration with no more than two days of work effort.
    1. Documentation shall be written on how payment processor integration is implemented.
  2. The system shall be architected to allow an eventual expansion of the definition of 'item' to include item specific characteristics. For example, a bracelet may have sizing options, or a watch may have band choices.
  3. The system shall allow for the eventual split of Active Setting into its own Gem, including independent tests and releases.