This is a post I wrote while I was working at Drivy, as we were tweaking the models state machines. You can find it here : https://drivy.engineering/designing-state-machines/.
As a TLDR; this post suggests :
- Keep it as simple as possible
- Talk with all your team-mates to understand the vocabulary
- Do not over-anticipate your future needs
- Store all relevant infos including the transitions from state to state
I initially presented these tips as a lightning talk for the ParisRb meetup on 05/07/2016. You can find my slides here : https://adipasquale.github.io/state-machines-lightning-talk