  | 
| ERP Implementations Series |  
  | 
    
  
 
  Nonfunctional Requirements
  In contrast to
  functional requirements
  (FRs), nonfunctional requirements (NFRs) have no direct impact on system’s
  behavior, affecting end-users’ experience with the system, resuming thus to
  topics like performance, usability, reliability, compatibility, security,
  monitoring, maintainability, testability, respectively other constraints and
  quality attributes. Even if these requirements are in general addressed by
  design, the changes made to the system have the potential of impacting users’
  experience negatively.  
  Moreover, the NFRs are usually difficult to quantify, and probably that’s why
  they are seldom made explicit in a formal document or are considered
  eventually only at high level. However, one can still find a basis for
  comparison against compliance requirements, general guidelines, standards,
  best practices or the legacy system(s) (e.g. the performance should not be
  worse than in the legacy system, the volume of effort for carrying the various
  activities should not increase). Even if they can’t be adequately described,
  it’s recommended to list the NFRs in general terms in a formal document (e.g.
  implementation contract). Failing to do so can open or widen the risk exposure
  one has, especially when the system lacks important support in the respective
  areas. In addition, these requirements need to be considered during testing
  and sign-off as well. 
  Minimum Viable Product (MVP)
  Besides gaps’ consideration in respect to FRs, it’s important to consider
  sometimes on whether the whole functionality is mandatory, especially when
  considering the various activities that need to be carried out
  (parametrization,
  Data Migration).
  For example, one can target to implement a minimum viable product (MVP) - a
  version of the product which has just enough features to cover the mandatory
  or the most important FRs. The MVP is based on the idea that implementing
  about 80% of the needed functionality has in theory the potential of providing
  earlier a usable product with a minimum of effort (quick wins), assure that
  project’s goals and objectives were met, respectively assure a basis for
  further development. In case of cost overruns, the MVP assures that the
  business has a workable product and has the opportunity of deciding whether
  it’s worth of investing more into the project now or later. 
  The MVP allows also to get early users’ feedback and integrate it into further
  enhancements and developments. Often the users understand the capabilities of
  a system, respectively implementation, only when they are able using the
  system. As this is a learning process, the learning period can take up to a
  few months until adequate feedback is available. Therefore, postponing
  implementation’s continuation with a few months can have in theory a positive
  impact, however it can come also with drawbacks (e.g. the resources are not
  available anymore). 
  A sketch of the MVP usually results from requirements’ prioritization, however
  then requirements need to be regarded holistically, as there can be different
  levels of dependencies existing between them. In addition, different costs can
  incur if the requirements will be handled later, and other constrains may
  apply as well. Considering an MVP approach can be a sword with two edges. In
  the worst-case scenario, the business will get only the MVP, with its good and
  bad characteristics. The business will be forced then to fill the gaps by
  working outside the system, which can lead to further effort and, in extremis,
  with poor acceptance of the system. In general, users expect having their
  processes fully implemented in the system, expectation which is not always
  economically grounded.
  After establishing an MVP one can consider the further requirements (including
  improvement suggestions) based on a cost-benefit basis and implement them
  accordingly as part of a continuous improvement initiative, even if more time
  will be maybe required for implementing the same.
  Previous Post
    <<||>>
    Next Post