Tell me about yourself. Write a blog post. Draw a picture. Name 10 things that are green.
These are hard things to do: they are too generic. Provide constraints and the tasks become easier: tell me what you did at your last job; write a blog post about profiling SQL Server; draw a self portrait; name 10 green things that you might find in your fridge.
Blank sheets of paper are scary: we work better when we’re given limitations. Not only do constraints make tasks easier, but they make them easier to do well. Rather than ramble, we focus and provide better, more structured, answers.
The same is true for software. Software is best when it’s specific, not generic. If you frame the problem tightly (write software to compare and synchronize Microsoft SQL Server databases) then it’s easier to solve, and solve well, than when framed loosely (write a database tool).
The same is also true for people. Although, apparently, we work better and are happier when we define our own goals, that blank sheet of paper can be paralysing. Total freedom is counter-productive: to be happy and effective, we need constraints. The constraints are almost arbitrary: it does not matter what the constraints are, just that there are constraints.
So, next time you or your team is flailing, try imposing constraints until the problem you are working on becomes solvable. If you cannot come up with reasoned constraints then try arbitrary ones.