見出し画像

品質は"算数"で説明できる。品質は"速さ"によって解決できる。

というのが、私の持論です。

みなさんは「旅人算」をご存知でしょうか。

画像1

算数において、速さを題材とする文章題の類型のひとつで、まだ方程式を学べない小学生高学年の時期に学ぶ計算方法です。この旅人算のベースには『速さの公式』が必要とされます。

「人やもの」が「地点A」から「地点Bまで」移動したとき、「道のり(距離)」や「速さ」が必要になってきます。上記のようなケースの場合、子供は1分間あたりに何km進んだことになるか?と言うと、そう

 0.2km

です。

画像2

これらを踏まえた上で『速さの公式』を説明すると、

ということになります。

さて、本題にはいりますが、IT業界…ひいてはソフトウェア開発における品質は、設計→製造→試験…と、普通の開発を普通にこなしているだけでは一定以上向上しません。

大抵の場合、品質を確保する"ために"、品質を維持する"ために"、何か普通以上のことが求められます。

たとえば、ソフトウェア品質にはISO規格(ISO/IEC 25010)やJIS規格(JIS X 25010)にて、8つの品質特性に分類したうえで、検討し、設計、製造、試験を行うよう求めていますが、それらを意識してすべてを考慮にいれた開発をしたことがあるでしょうか。

画像3

おそらく、答えはNoです。

私が以前所属していた大手SIerでも、あるいは別の大手SIerのヘルプをした時でも、そこまでしっかり検討しているエンジニアリングチームはありませんでした。QAからも、そんな話を聞いたことはありません(それでも、属人的とはいえ、非常に厳しく検討しているところは若干ありましたが)。

品質とは、さきほどの『速さの公式』でいうところの、"道のり"に相当します。これだけの品質、(必要十分な種類と量を)すべて網羅しようと思ったら、相当な"道のり"が必要になってきます。

開発に必要な作業量が仕事の距離(=道のり)だとすると、その作業量を追加しなければならない品質活動も、"道のり"と言うことになります。品質を向上するためには、そのための作業量を増やさなければならない、となってしまうというわけです。

ゆえに、昔から「品質とコスト(時間)はトレードオフ」と言われてきました
(トレードオフ…一方を追求すれば他方を犠牲にせざるを得ない関係)。その十分な品質を確保するためには、どうしても相応のコスト(時間)が必要だという現場は数知れません。

けれども、"時間"でトレードオフしようとしても、それは絵に描いた餅です。ここをみんな履き違えてしまっているのです。

"時間"は当然、期限までの猶予です。これは事業、あるいは契約の都合上、そうやすやすと自由に動かすことができない定数です。「〇月末に納品」と決まった注文(受注)であれば、それを遵守しなければ契約遵守違反になります。

ここで察しのいい方は、この品質上の課題を解決するためには、どうするべきかがわかる人も出てきたかもしれません。

つまり、開発活動を"道のり"とした場合、決められた"時間"を守り、かつ求められた品質を達成するためにさらに"道のり"を追加しなければならないとしたら、

 それらの要件を満たすために私たちが真っ先にすべきは何か?

と言うと、「"速さ"を向上する」ことしかないのです。この中には「効率的な方法を模索する」ことも含まれます。

具体的には

 ・1人ひとりが効率化を図り、生産性を向上する
 ・機械的作業は自動化ツールを導入する
 ・知識や技術を高めて、調査/質問/悩む等の非生産活動を低減する

などと言ったことを率先して取り入れることが重要です。仕事の速さは、すなわち品質向上に直結するのです。なぜなら、速さが向上すると時間的余裕が生まれ、その時間を品質向上のための時間に充てることができるからです。

もちろん、

 品質を向上するための知識や技術自体がなければ、
 この計算式も成立しません。

今どこにいて、どこに向かいたいのか、どうやって向かうつもりなのか、何も知らない状態では、子供でも目的地に辿り着くことができないのは自明の理です。

しかし、それらの知識や技量があったとしても、この小学生の基本的な算数レベルがわかっていないと、時間の捻出ができず、結局穴だらけの開発活動に終始し、後々問題を起こすことになります。

だから、品質管理や品質保証について、ただの机上の方法論だけを唱えても全く意味がありません。それをするために必要な時間の捻出を疎かにすると、結局実施できないためです。

"速さ"を向上する責任は、当然1人ひとりの開発者にあります。

担当1人ひとりがこの速さの向上を図らなければ、いかにすぐれたマネージャーやリーダーがいてもタイムマネジメントが苦しいでしょう。タイムマネジメントが破綻すれば、即影響を受けるのは必ず品質マネジメントです。

個々人でできる対策には多種多様なものがありますが、

 ・MS Officeのショートカットや機能を使いこなす
 ・IDE(統合開発環境)の便利機能を使いこなす
 ・頻繁に使う単語はIME辞書登録を利用して、
  1文字打てば変換できるようにしておく
 ・ブラインドタッチを修得する

と言った「あれ、新人でもできんじゃん!?」みたいなことだけでも、実際に卓越してしまえば、単純作業が5~10倍加速することも珍しくありません。
 
また、向上させるための総括的な責任はリーダーやマネージャー、あるいは管理職にあります。リーダーやマネージャーは、より効率的な開発方法論、実践論の適用を模索しなければなりません。

たとえば、

 ・設計書に冗長的な(無駄な)記載はさせない
 ・不要な成果物や作業を徹底的に排除する
 ・非生産的な活動(会議体)等は費用対効果を意識する
 ・フレームワークや標準化の導入およびその教育や支援体制を整える

と言ったことは個々の担当者で勝手に判断することができないからです。管理職についても、日頃の部下の仕事を指摘、指導する際に、その成果物の品質だけでなく、仕事の仕方や効率化についても逐一触れ、意識させる啓蒙活動が重要になります。

お客さまから「品質が悪い」と言われなくするためには、意外なところから解決していくとよいのです。

 急がば回れ

と言いますが、いざとなってから急いだところで、常日頃早く、あるいは速く行動する訓練をしなかったものは、所詮鈍足のままです。日頃、100mを50秒でしか走れない人は、急いだところでその速さが限界なのです。本当に急ぎたいのであれば、急ぐことのできる訓練が必要なのです。

いただいたサポートは、全額本noteへの執筆…記載活動、およびそのための情報収集活動に使わせていただきます。