Advocating the building of use cases
into systems design for an organization that prefers not to use them may be an
uphill battle, but being able to provide qualitative reasoning to champion this
best practice may provide the needed remedy to the organization’s inertia. The following points help drive home this
best practice approach:
1.
Use cases help developers comprehend both the business of the
user and the functional expectations of the systems.
2. Utilizing use
cases help developers and testers create test cases for comprehensive
application testing by utilizing end user feedback.
3. Use cases help
developers keep the project requirements within scope by neither
oversimplifying (leaving out functions required for actual usages), nor over-specifying
the actual requirements (including functions that the users do not need or will
not use).
4. Use cases created
early on in a project can be used to verify that requirements have not changed
by verifying that they are still applicable for the system.
Involving end-business users to develop use cases is ideal
since they are ones in the trenches and best understand their own
requirements…much more so than their own management. You may find that end-business users will
gladly accept the responsibility of providing input via an interview format into
the development of applications that they will ultimately utilize. The application developers will need to learn
to ask the right questions to receive pertinent information for the use case
construction. Developing use cases take
time and dedicated effort to ensure all possible scenarios are considered along
with scenarios that can demonstrate alternative ways to accomplish the same
objective.
The Agile development methodology
supports the utilization of use cases because Agile techniques require close
collaboration with the end users, but does not go into too much depth
when creating the use case. Agile use
case development basically consists of developing a quick synopsis of the
requirements and then immediately proceeding to code. The overall objective of
application development is to perform as quickly as possible by verifying the
actual user requirements early and minimizing project scope creep.
Organizations, whether or not they use Agile development techniques,
would benefit greatly by using case construction so as to properly develop user
requirements and expectations without overcomplicating or oversimplifying the
coding process. |