 |
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