The &quot;what&quot; is also about yourself. To be a complete programmer, as a creative artisan, you have to generate requirements and specifications, not only code. Ken Thompson didn&#x27;t wait for PRD from product management before starting Unix.<p>Being able to generate the &quot;what&quot; is necessary even if you&#x27;re working on other people&#x27;s requirements. This is because other people&#x27;s requirements are usually not so detailed that code will pop out. There are plenty of gaps where your creativity is required to go from the high level spec to the detailed spec. That&#x27;s the design aspect of development.<p>The requirements leave out the &quot;how&quot;: but hiding in every &quot;how&quot; is plenty of &quot;what&quot;! &quot;This requirement doesn&#x27;t say how such and such is to be achieved: <i>what</i> do we choose to satisfy that?&quot;<p>Someone who has no idea or interest in programming something if left without external requirements is probably not a great designer; he or she is lacking at least some aspect of the &quot;maker&quot; instinct. The maker is defined by making; you would have to wrestle the craft out of a true maker&#x27;s hands.<p>If you get a completely detailed spec handed to you, then you&#x27;re just a &quot;coding technician&quot;. Someone will make a programming language which directly executes such a spec, and you&#x27;re obsolete.