Start here. This is the direct spoken answer to practice first.
Why this question matters
Good engineers do not freeze when requirements are vague, and they do not silently invent a whole product. They narrow uncertainty and make assumptions visible.
I handled a vague requirement for a reporting feature where the initial ask was basically 'let admins export everything.' I started by asking who needed the export, what decisions it supported, how often it ran, and what size of data we expected. That changed the scope from a giant generic export to two specific report types with filters, permissions, and a clear retention window. I also wrote down the assumptions so product and engineering were agreeing to the same first version.