何をすべきでないか
制約の効能
プログラミングにおいては何らかの制約を持たせるようなプラクティスがよくある。構造化プログラミングも、オブジェクト指向プログラミングも、関数型プログラミングも、「何をすべきか」でなく、「何をすべきでないか」を伝えている。これによって考えなければいけないことを減らして生産性をあげている。 焦点を合わせるということは、その対象に対してイエスと言う意味だと人々は考える。だが、それだけではない。そこにあるほかの 100 のよいアイデアにノーと言うことも意味するのだ。選ぶのは慎重にしなければならない。私は自分がしてきたことと同じくらい、してこなかったことに誇りを持っている。イノベーションは 1000 もの物事にノーと言うことなのだ。 プロダクトマネジメントにおいても、色々なアイデアがある中でなぜそれをやるべきなのかを明らかにできていないと、本当の意味でよいプロダクトは作ることができない。
組織運営においては OKR というものがある。これも色々とやらなければいけないことがある中で、何を実現するのかという制約を定義することで、重要でないことに時間を奪われて、やるべきことが達成できなくなることを防いでいる。 制約で気をつけたいこと
制約の中には悪い制約もある。こうした制約は組織や人々の可能性を狭めてしまう。例えばクラウドを利用してアプリケーション開発者が自身が取り組むべき問題に対してベストな解決策を自分で構築していくのが可能にもかかわらず、インフラ部門の許可がないとできませんみたいになっているのは残念。