The Use Case, or what the solution was built to do. It is something that software and solution architects do. They, the solution architect, create a variety of use cases. A use case normally has an action, result and is documented as part of the overall presented solution. I think in the past 30 years I have written more than a 1000 use cases. Many of the use cases I’ve written were focused on building collaboration systems for my customers. The reality of the use case is you cannot predict the behavior of the system when there is variables outside of the norm, For example, if you have ten browser tabs open on your browser and you get unexpected results, open that browser with only one tab and see if the problem goes away.
For example, I once worked with a customer in designing a system around compliance. We met a few times, and then the customer lead and I sat down to build the use cases. We were very careful to take our use cases to as many users and stakeholders as we could. That said there were use cases and scenarios we could not prepare for. One of them was a user connecting from a remote location. This user needed to be able to access the system for reporting in the country they were from. We did not think about the reality of the remote network. We had prepared the system for that user and several like them to be able to connect, search and retrieve the information hey needed. We had not, however, prepared for the reality of the new network. The slowness frustrated users.
No system is perfect. We fixed it by caching the service in EMEA. That was the only way we could get around the performance hit of networks. All of this to remind us, when something doesn’t work right, think about how we are using it. If we are using a web application, how is our setup different than other people’s and in considering that, do we need to make changes on our side? I find that if I consider the how of design, I can normally get around most errors and the way I do that is I try to get my system as close to vanilla as possible. I have a VM on my computer with a completely generic build of Windows 10, and no other things installed. That way I know where the issue is. If that VM cannot connect then the issue isn’t on my side. If that VM can connect but my regular computer can’t I need to figure out what I changed on my regular computer. Sometimes it is as simple as removing variables. Sometimes it is something recently installed. Sometimes, it is really hard to figure out!