Dear new developer,
Think about the edge cases.
This is one of the primary ways you can add value. Think about what happens when things go wrong. It’s usually relatively straightforward to consider the happy path. Let’s take the example of a relatively simple ordering application. People can login, see their orders, and can change certain aspects of their orders (their address, perhaps) before a product is shipped.
Begging the question of why aren’t you using an open source solution like Magento or a off the shelf saas solution like Shopify, there are other things to be aware of.
- What happens if the user wants to ship some orders to one address and some to another?
- What does the user see when they login but have no orders?
- What happens when they change their address?
- What kind of validation is needed?
- How do we know when a product is shipped? What do we do if a user wants to change their address but the product has shipped?
These are all edge cases around the happy path of login -> change address -> exit. But they are all going to affect the user experience, and so are worth thinking about.
I prefer to do it at the spec time, but any time to ask these questions is a good one. Otherwise, you’re either going to have:
- the edge cases pop up and be handled poorly,
- or developers making up the answers while coding
So, new developer, when you get a change to talk about a feature, think about the happy path, the expected path, to be sure. But also think about how things could go wrong.