アジャイルと 5S

アジャイルにはトヨタ生産方式をソフトウェア開発に取り入れたものがたくさんあることに気付く。『カンバン』は「タスクボード」や「チケット駆動」だし『Just In Time』は「YAGNI」だし。『カイゼン』こそアジャイルの本質だよね。アジャイルとはトヨタ生産方式をソフトウェア開発に取り入れたものだと言ってしまっていいんじゃないかと思ってしまう。そんなことを言うと「わかってねーな」とか言われるんだろうけど。

で、目立った改善のないリファクタリングの必要性を上層部(営業畑)にどうやって説得しようかと考えていたときに、リファクタリングはトヨタ生産方式でいうところの『5S』だなと気付いた。

【一般的な 5S】wikipedia より

整理:いらないものを捨てる
整頓:決められた物を決められた場所に置き、いつでも取り出せる状態にしておく
清掃:常に掃除をして、職場を清潔に保つ
清潔:3S(上の整理・整頓・清掃)を維持する
躾け:決められたルール・手順を正しく守る習慣をつける

これらをソフトウェア開発に適応したらどうなるかな?と僕なりにいろ
いろ考えた結果がこれ。

【ソフトウェア開発での 5S】

整理:必要かどうか区別したのち不要なメソッドやクラスを除去する
整頓:必要なメソッドやクラスを再利用しやすくリファクタリングしておく
清掃:ゴミすなわち警告系エラーや不要なコメントアウトを除去する
清潔:整理/整頓/清掃を維持するための規約を作成し実践する
躾け:ソースレビューにより規約が守られているか確認し習慣づけを行う

こうしてみるとコーディング規約やソースレビューの重要性も見えてくる。たまたま同じタイミングでソースレビューも積極的にやらないとなと思っていたのでまさにこれだなと。これをまとめてみたらものすごく腑に落ちた感あった。十分に 5S はアジャイルの要素となりえる。

「トヨタ生産方式の 5S を開発に取り入れたい」と言ったらぜひやってくれということに。以前に「リファクタリングする期間を設けたい」と言ったら「そんなの意味がない。新規開発優先で。」と言われたんだけどw

アジャイルで 5S というのはまったくメジャーでなくて、僕自身が考え出したことなんだけど同じようなことを考えてるひとはいて、ジム・コプリエン氏、平鍋健児氏がアジャイルと 5S を結びつけた発言をしていらっしゃいます。解釈が若干異なるのでそちらもぜひ参考にしてみてください。

『いらないものを処分することが整理であり、欲しいものがいつでも取り出せることを整頓という』by トヨタ自動車工業 元副社長 大野耐一

かわのくんとは

Web系IT企業でプログラミングやマネジメントをしています。趣味で音楽を少々。

Youtubeでライブ動画配信中

Ustreamでライブ動画配信中

スマートフォン向けにPCサイトを自動変換(コンバート)する『CONV2SP』 CSS作成支援ツール『CSSツクール』