以下の記事を読みました。非常に勉強になりました。
(この記事のあと、TPI NEXTの要約記事もあります)
記事のテーマとなっているTPIやTMMiは、CMMiとも通じるものがあります。
これを読んで考えたことを書いていきます。
そもそもソフトウェアエンジニアリングを考えることとは、すなわちより良い仕事のしかたを考えることです。
しかし、これを考えていくには
自分がいま、どのレベルにいるか
次のレベルに行くために必要なことは何か
これらを把握しないといけません。
これは自分一人での作業であれ、組織全体の作業であれ変わらないことです。
ドラッカーのマネジメントでは「マネジメントの基本はセルフマネジメントである」といった内容が述べられていますが確かにその通りで、
チームのプロセスが安定していないのに、組織全体のプロセスを安定させようというのは土台無理な話です。
QAというのは、そもそもこういったプロセスの評価〜改善のコンサルを
自組織内で行えるようにと配置された組織なのではないかと思っています。
実際にそのためのしくみも各社であります。日立で言うと落穂拾いなどです。CMMiもそのひとつです。
しかし、これらのしくみを有効に活用してプロセス改善につなげるには、前述のPSPといったセルフマネジメントは当然のようにできていなければいけません。
では、どうやってセルフマネジメントを行えるようにしていくのでしょうか。
そのやり方は単純な話で、CMMiなどのやり方を自分ひとりの作業にあてはめればよいのです。
例えばTPIにおける考え方は前述のブログでも紹介されていますが、「成熟度レベル」は
「初期レベル:アドホックな活動」
「コントロールレベル:適切なものごとを行う」
「効率化レベル:ものごとを適切に行う」
「最適化レベル:刻々と変化する状況に絶えず順応する」
の4つに分けられています。(TPI NEXT ざっくり要約 ~その3 第2部「BDTPIモデル」 - Software Quality Topics.より引用)
これを個人の活動にあてはめると、
初期レベル:「上司や同僚の指示に対して、手当たり次第にとりかかる」
コントロールレベル:「上司や同僚の指示から、必要な作業が何か考え、抜けがないよう実施する」
効率化レベル:「上司や同僚の指示から、適切なプロセスを定義して作業する」
最適化レベル:「上司や同僚の指示から、状況に応じてプロセスを変更、追加しながら対応する」
のようになると思います。
こう考えると、個人の活動においては初期レベルから抜け出せていないこともあるのではないかと思います。
実際にやってみるとわかりますが、初期レベルで作業するのと、コントロールレベルや効率化レベルで作業をするのでは生産性や手戻りの数が大幅に違います。これは個人レベルでも十分に実感できます。
個人レベルでのプロセス改善が行われれば、チーム内にその知見をシェアするというのも比較的ハードルが低いです。これはまさにTPIなどのプロセス改善の着火剤となるといえます。
長くなりましたが、TPIやCMMiについて考えることは、自分が普段作業しているプロセスが妥当かどうか考えるための手がかりになります。
これらの単語を聞いたことのなかった方も、書籍を読んで自分の出来る範囲から実践してみてはいかがでしょうか。自分が学んだことで作業が早く終わったり、成果がでたりするのはとても楽しいことです。これこそ本来のエンジニアの働き方だと思います。
勉強会のご紹介
TPI NEXTの日本語版出版記念ということで勉強会が予定されています。
nagasaki-it-engineers.connpass.com
翻訳者である薮田和夫氏および湯本剛氏にもお越しいただける予定とのこと。
ぜひこの機会に参加してみてはいかがでしょうか。
(9/25 6:00現在で残り5席です!)