Clarity, Junior Engineers, Requirements, and Frustration
There's an amazing essay at The Spurious Pundit on "Picture Hanging." It's an allegory that explores how simple requirements in software aren't that obvious to folks who may not have context. The writing is wonderful, do check it out, it's worth your time. Subscribed.
You tell him to hang the photo of your pet dog, and he comes back a week later, asking if you could "just double-check" his design for a drywall saw.
"Why are you designing a drywall saw?"
"Well, the wood saw in the office toolbox isn't good for cutting drywall."
"What, you think you're the first person on earth to try and cut drywall? You can buy a saw for that at Home Depot."
"Okay, cool, I'll go get one."
"Wait, why are you cutting drywall in the first place?"
"Well, I wasn't sure what the best practices for hanging pictures were, so I went online and found a newsgroup for gallery designers. And they said that the right way to do it was to cut through the wall, and build the frame into it. That way, you put the picture in from the back, and you can make the glass much more secure since you don't have to move it. It's a much more elegant solution than that whole nail thing."
This metaphor may be starting to sound particularly fuzzy, but trust me - there are very real parallels to draw here. If you haven't seen them yet in your professional life, you will. [Spurious Pundit]