Why is all of this important, you may ask? The answer is
quite simple.
Advantages
·
They prevent early design and focus on conditions.
·
They provide tractability.
·
They allow estimating and scheduling work.
·
They are easy to understand by the client, and provide a simple
means of communication between the client and the developers.
Disadvantages
·
They do not easily capture non-functional requirements.
·
There may be a learning curve for the developer and/or the client.
In summary, a well-prepared use case is worth its weight in
gold. Once the client has agreed with the use case, project managers can plan
the schedule, and developers then have a clear insight into what they must
develop. From personal experience, while a use case is most beneficial, they
are rarely perfect, but they almost always serve a purpose.