One of the key principles of end-to-end software development is the concept of the user journey. A user journey is a description of how a specific type of user (known as a persona) interacts with a proposed software solution to perform a specific task. (If you’re more old school, you might refer to this approach as a “user story” or “use case.”)