TumblrPocket微妙に反響があったので続編ができました。今回は、「わかるけどどう手を付けたらいいの?」という辺りを書いてみたいと思います。現状、ある事務所内で次のような作業があるとします。(BさんがAさんに作業指示)→(Aさんが作業aを実施)→(CさんがaをチェックしAさんに返す)→(Aさんが作業bを実施)...→(Yさんが作業xをチェックしAさんに返す)→(Aさんが作業yを実施)→(Zさんが最終チェックを実施)→完了このような作業工程のままでシステム化するとなると、システム化のメリットは少なくなる場合が多いかと思います。システム化できる箇所が小さくばらけているということは、システムによる時間短縮できる箇所が少ないことを意味するからです。B〜Zさんのチェックというのは必要であるからやっているわけです。「チェックを外すなんて無理」というのが当たり前の感覚であると思います。当然ながら、「チェックを外すこと」=「ノーチェックで出荷」ではありません。なると「じゃあ最後にまとめてチェックするってこと?大変すぎて無理!」「最終チェックでNGだったら最初からやり直し?それはありえない!」という声が出ます。ところがここがまさに肝で、表題の「大変だからシステム化したい」に合致する可能性が高くなっているわけです。大事なことは、「もし」作業を全部まとめられて、「もし」チェックが1回でできるとしたら、と仮定する勇気です。真面目であればあるほど、その仕事ができればできるほど、不安定な仮定を置くことを無意識に拒絶してしまう(「気持ち悪い」と感じる)のが人間というものです。システムの知識が無かったとしても、「もし」の仮定を前提にして「できるとしたらどういう方法か?」をいくつか考え書いてみることはできます。実際にその工程を扱っている人こそ、その答えに近いところにいるわけです。考えてみた結果、「やっぱできない」という結論になるのであれば、それはそれで一周回った価値があります。「ではどうバラして組み立てればできるのか」という課題につながるからです。ここまで来て「う〜ん。なんとなくわかったようなわからないような...」という反応もあります。納得するか否かを横に置いて、「もし」この方法が有効だとしたら、と仮定すればいいだけなのですよね。方法は一つではありませんので、「いやそんな方法じゃなくこっちの方がより良い!」という方法があればそれを実行するのでも全然OKというわけです。技術担当取締役を中心に技術者が書いております。プログラミング・サーバー/クラウド技術などについての小ネタから、システム化にまつわるあれこれや、プログラマー教育、そこから発生する様々な考え方などまでご紹介。