As modern software development tools unshackle developers to let them realize any design they can dream up, we have a responsibility to more vigorously challenge our design proposals. When the options are limitless it can be difficult to decide on where to start. Introducing constraints can help alleviate this problem by narrowing the focus.