A Quick Break from Revision: Why Requirements Modelling is Important
Looking at this blog title you might think I’m joking ‘How is discussing requirements modelling a break from revision?’. Allow me to explain.
I took a break from revision to write an additional data select field (children’s parents’ email addresses) in Rock, what I thought was a quick and easy job. In truth, it kind of was. I’d already produced a data select like that before and I had a quick and dirty version working in under 15 minutes. Awesome!
I quickly realised though I had to offer a UI to let people select people with certain preferences. This is where things got a little trickier, I encountered this error a few times in various forms without knowing what I was dealing with, but after a lot of tracking that down I had what I thought was a working implementation.
Except it seemed to have one bug, for selections in my test case of one column, where no parent had a matching email address it returned an empty row. I spent a long time debugging this, hours, and whatever I did I couldn’t seem to get a working solution. This morning I tried again for a while and I didn’t seem to be able to make any progress. Then I attempted to try a similar existing data select (Spouse names) and I discovered it had the same bug. Puzzled, I wrote a bug report and whilst writing out the expected behaviour I realised that actually this data would be reported in context, with the child’s name or original spouse’s name next to it. In that context a blank data cell is information.
I could’ve saved myself hours if I’d spent a little while thinking about the behaviour I was expecting this new functionality to have.