This article is great but missing the best solution to requirements capture: being a user. When you are a user of your own product it sidesteps miscommunication, misunderstanding and the 1000 little decisions you make every day while you code mostly end up going in the right direction.
Every time I work on something I try to learn to think like the user, at least a bit. I even had to learn the basics of coal mining once. You could say it was a waste of time for a programmer to learn coal mining. But, it Saved countless hours of misunderstanding and wasted time.
Second best option is when your product owner is a user.
Then all the other approaches are even last place. Imperfect solutions to a problem id rather not have.
Every time I work on something I try to learn to think like the user, at least a bit. I even had to learn the basics of coal mining once. You could say it was a waste of time for a programmer to learn coal mining. But, it Saved countless hours of misunderstanding and wasted time.
Second best option is when your product owner is a user.
Then all the other approaches are even last place. Imperfect solutions to a problem id rather not have.