The Ambiguous Zone
bennorthrop.com
bennorthrop.com
Folks say "give me a take-home assignment I can code on my own" rather than "stressfully whiteboard in a time-crunch in front of people" but I think they often don't understand that this scenario isn't meant to elicit your best code, but to evaluate how you perform in a scenario where everything isn't crisply handed over to you to digest on your own time. Dealing with ambiguity - and asking questions to quickly get to sufficient clarity - is a bit part of that (other elements include literally dealing with dynamic collaboration and a bit of pressure)
I have seen cases - watching one right now, in fact - where mgmt tries to push a no-problem project through, just "well get the data and make some screens and things and whatever" and the only possible outcome is failure.
Otherwise, if you are in that ambiguous zone regularly, either you are pioneering some super new innovative area, or your organization isn’t very good at software development as a whole.
One org I was at, the product managers constantly complained that developers couldn’t read their minds and automagically “know” all the non functional requirements, validations, etc. They were used to working with super senior devs who knew the space well, and could not adapt to devs who were more junior and also new to the industry vertical.
I am talking of course about scrum, story points, product managers, scrum masters, product owners, rituals, etc. All the crap and layers of indirection that sit between devs and the people who actually use the software.
Devs should be talking to and working with end users and building up an understanding of what users want and need from the software. I mean this literally. Actually sit with, work with, and talk to users, don't just communicate with them through an issue tracker.
You sometimes see this in early stage startups, but even startups often end up designing for VCs or designing to be acquired, rather than designing for users.
Yes users sometimes need training on how to communicate requirements, but it is up to devs to do this. Don't expect them to magically acquire this skill out of nowhere.