標準化は教育手段ではない
こんにちは。てぃろです。
会社でプロジェクトを進めていると必ずと言っていいほど標準化という言葉を耳にする。
実は、今のプロジェクトではその標準化を進めている一人だったりもする。
改めて、標準化という言葉の意味を調べるとコトバンクにはこう書いてあった。
材料・設備・製品などの仕様、作業方法、業務手続などの標準(いわゆる、規格や測定基準)を合理的に設定し、活用するための組織的な行為をいう。標準化を実施することによって、計画や統制業務が容易になり、作業の熟練が迅速になり、部品の互換性が増して在庫が減少し、量産が可能となり、さらに原価低減・品質向上が期待できる。
非常に簡単に言い換えると、個人の経験に頼らずに、誰でもミスなく作業が完遂できるようにしましょう、ということだと思う。
ソフトウェアエンジニアリングにおいても、バグなく品質よくソフトウェアを作り上げるために標準化をするのが通例になっているところがある。
実際に標準化を組織の中で進めてみると、標準化に求められる内容に教育的要素が含まれていることに気づく。
上記の引用文からだと作業の熟練が迅速になりという部分が該当しているように見える。
しかし、ここで勘違いしてはいけないと思うのだが、標準化はあくまで作業能力の向上をサポートするものであって、能力向上そのものに責任を負うものではない。
おそらく上記の定義は本来はこのような意味だと私は解釈している。
これは昔の工場のライン工であれば能力向上そのものについても成立する部分があったかもしれないが、現代のソフトウェアエンジニアリングには全く通用しないことだと思う。
昨今のソフトウェアエンジニアリング業界の目まぐるしい技術の発展と変遷が背景にあって、作業を標準化した瞬間から、その標準化内容は陳腐化し始める。
それでも標準化できない部分がないわけではない。
それが品質担保のための考え方だ。
単体テストはなぜやるのか?linterをかける意義は?UIテストで担保する品質とは何か?
工程定義ともいえると思うがこのような品質の維持向上を目的とした考え方を決めていくことがソフトウェアエンジニアリングにおける標準化といえるのではないだろうか。
だとすると、やはり標準化には教育的要素を含むことができない。
では、この考え方を実践するために何が必要なのかを考えると、この考え方を理解することができる技術水準を開発メンバー一人一人が持つことだと思う。
標準化された内容の意義や意味を理解しないまま、ただの方法論だけ実行されるとちょっとした例外が発生した時に途端にその標準化は機能しなくなり、指揮をとる人間の負担が激増する。特に精神的負担が大きい。
「そんなことも言わないとわからないのかよ…」
ということが非常に多い。これがかなりきつい。開発メンバーの理解が進まないと毎回このやり取りが発生するのでタスクも終わらない。レビューのチェックが増えるばかりで、生産性は一向に向上しない。
ならば、標準化に教育的要素を含めるか?と考えたくなるが、教育的要素を入れられない理由は先述した通りである。
つまり、この課題に対する打開策は、開発メンバー一人一人のレベルを向上するほかないのだ。
専門家の顔をした非専門家がメンバーに入るのは害でしかない。それならばはっきりと教育されるべき非専門家です。と言ってくれたほうがまだマシだ。
そういう方には、標準化された内容においつくようにしっかりと勉強していただきたい。
この話の続きがあります。コチラもどうぞ。
技術ブログもやってます。開発のノウハウはこちら。
いつも記事を読んでいただいてありがとうございます。少しでもあなたの人生にプラスになる話ができているとうれしいです。