I had a look at the linked spread sheet¹ containing all the framework questions.
It's actually great advice for solving any programming problem — not only in case of a whiteboard interview.
Not that you need to write down everything explicitly for any problem. But you should in any case think through all of the mentioned things at least.
The other thing I've noticed is that a strong type-system will from the get go force you to describe exactly—down to the details—at least 80% of that stuff. Refinement types for example let you constrain further types with a lot of inhabitants. But even the usual things like optional or, for the contrast, non-empty types can help greatly. With some formal verification capabilities on top you could likely even codify more than 90% of the things mentioned in that spread sheet. Add some meaningfull comments with the reminder of the answers and you'll get almost perfect code in my opinion.
I would bet bug count in software overall would go down by more than 90% — if only all code would look like that in reality…
It's actually great advice for solving any programming problem — not only in case of a whiteboard interview.
Not that you need to write down everything explicitly for any problem. But you should in any case think through all of the mentioned things at least.
The other thing I've noticed is that a strong type-system will from the get go force you to describe exactly—down to the details—at least 80% of that stuff. Refinement types for example let you constrain further types with a lot of inhabitants. But even the usual things like optional or, for the contrast, non-empty types can help greatly. With some formal verification capabilities on top you could likely even codify more than 90% of the things mentioned in that spread sheet. Add some meaningfull comments with the reminder of the answers and you'll get almost perfect code in my opinion.
I would bet bug count in software overall would go down by more than 90% — if only all code would look like that in reality…
¹ https://docs.google.com/spreadsheets/d/1gy9cmPwNhZvola7kqnfY...