今携わらせて頂いている案件で”責務が明確化されていないよな”な一連があったので考えを吐き出しておきたい
(プログラミングがどうのみたいな話が出てくるけど例なのでプログラミングの話ではないです)
プログラミングの世界でここ10年(もっと?)ぐらいですごく言われるようになったのが責務の明確化
React筆頭にフロントエンドにコンポーネント化(部品分け)の概念が当たり前に浸透して、「きみの仕事はこれ!」がより意識されるようになった
例えばFormというコンポーネントは文字を入力・編集できるという責務を持っている
逆に言えばFormに入力された値が想定されているものか、例えば電話番号を入力するフォームなら通常数字とハイフン以外が入ってるのはおかしいので文字やハイフン以外の記号が入ってるかバリデーション(チェック)する、これは責務の範囲外だよねって考え方(もちろんコンポーネントの要件による)
バリデーションはバリデーションを行う関数なりなんなりに任せるべきで、Formというコンポーネント内でバリデーションをハードコートで実装してしまうのは責務を超えてしまっている
これって日常のビジネスシーンでも全く同じことが言えて、誰にどんな責務があるのかを明確化しておかないといざって時にすごく困るんですよね
事象1についてはAさんに聞けば良い、事象2についてはBさんに聞けば良い
こういう適切な権限設定というか責務の所在をしっかりしておけば、少なくとも誰もわからないみたいな状態にはならないわけです
属人化
ここで問題になるのが責務を明確にすることでその判断が属人化してしまって小回りが効かなくなってしまうこと
割と指揮命令系統が機能していない規模が大きい企業に見られがちかも知れません
属人化してしまうのがある意味仕方ない分野もあります、例えば法務とか高いスキルが求められる部分とか
多くの場合これらは税理士だの弁護士だの社労士だのと外注化して対応してるのかな
で、そうじゃない場合は結局のところマニュアル化ができていなかったり統括する人間が適切にキャッチアップができていないことがほとんどなんですよね
会社員なら人事異動、入社や退職で権限を設定しなおさなければならない場面が頻繁に訪れます
そういった時に、個人のスキルセットに頼ってお気持ちで権限を割り振ると長いチーム運営で責務が属人化してしまって次に訪れる権限設定しなおしの場面で苦しむことになる
だからある意味機械的に権限を割り振る、例えば人員入れ替えならそのまま権限の引き継ぎをするとかお気持ちが入らないように責務を明確化するべきだよなと
その責務を明確化するためにもやはりマニュアル化してヒューマンエラーを無くす、責務が明確化されていない箇所が合った場合はアラートが出せるようにする
もっともっとそういう部分に着目するべきだし、システム化できるものは片っ端からしてしまった方が良いなあと感じています
もちろん突出した能力を持つ人がアサインされたらそれに合わせて権限昇格とか権限の一部譲渡っていう細かい編成し直しは必要だけど、マニュアル化さえされていればどの権限をどのように、がわかりやすいじゃないですか
どんなすごい人間でもヒューマンエラーは必ずある、その前提に立って適切に責務を設定することは業務を安定化する上でとても重要な要素であるというのを最近強く思っています
属人化と責務の明確化、一見相反する考え方だけどここら辺は上手く融合させて行くべき
少なくともお気持ちが入り込んで破綻してしまう、というバッドエンディングの最たるものは回避できるんじゃないですかね