The maze book for programmers!

Algorithms, circle mazes, hex grids, masking, weaving, braiding, 3D and 4D grids, spheres, and more!

DRM-Free Ebook

The Buckblog

assorted ramblings by Jamis Buck

The Poverty of Constraints

19 March 2016 — Two Korean proverbs are presented to support the argument that constraints—a poverty of resources—can enrich your software — 1-minute read

Let’s reinterpret some Korean proverbs as software advice. (Two previous posts in this vein are “Software Proverbs” and “The Weakly-Flowing Stream”.) The two I’ve selected today share a theme, that of “poverty”, which can be viewed in terms of constraints.

First: “가난한 집에서 효자 난다.” A dutiful son comes from a poor home. Or, in software terms, the best software comes from a constrained shop. 37signals’ “Getting Real” includes an essay that preaches this eloquently: Embrace Constraints. Is it possible for a company that is flush with time and resources to produce good software? Of course it is. But I’d argue that even in those cases, the best software is made by imposing constraints–deadlines, budgets, and two-pizza teams. When the entire world is your oyster, the pearl becomes vanishingly small. Make your world smaller!

Second: “가난한 집에 자식 많다.” A poor house has many children. Just as better software comes from a constrained situation, so, too, can ideas. If you’re sitting on a pile of resources, the possibilities are too many. It’s a classic case of choice overload. By constraining what you can reasonably tackle, the pool of possibilities drains, making it easier to reason about and differentiate between your options.

Win-win. Tighten the belt, have more ideas, and produce better software.