山本さんが刺激的なエントリを書いていらした。
場当たり的な対応で工数が少なくてすみ、影響範囲も少ないが、コードは汚くなるという案と
影響範囲が広いし工数も掛かりそうだが、コードは綺麗になるという案があるとき、
僕は、よほどの差でない限り、コードが綺麗になるほうを選ぶ。
安全策が後手後手を生む - 山本大@クロノスの日記
- 場当たりなので手間はかからないけどコードが汚染される
- 挑戦的なので手間もお金もかかるけどコードが綺麗になる
それ自体は「よくある」葛藤だと思います。
山本さんはよほどの差で無い限り後者を選ぶとおっしゃられており、僕は極めて英断だと思っています。そのような「英断」を支持してもらうためにはどうすべきか、という視点で続きを書いていきます。
コードが汚染されてしまうと、システムが技術的負債を抱えることにつながります。とても可視化しにくいコストなのですが、「ちょっと何かを変更するだけでも非本質的な手間がかかる」ようなシステムは何かしらの技術的負債を抱えており、いわばリビングデッドのようになっています。あたかも癌細胞が表面化して硬直化してしまうかのように、自浄作用も外科手術も効かない状態になってします。本来、システムは環境の変化に伴い有機的に変化するのが望ましいはずですし、変化を許容できないことが、システムの価値そのものを減衰させてしまう。
コード汚染により負債を抱えてしまうことのどこが「安全」なのか。動いていれば「安定」なのか。
まず、この認識を改めないといけない。
もちろん安定稼動を否定しているわけではありません。無事是名馬也。システムも同様です。しかし、ハッキリと申し上げておきたいのは、コードが汚染されるということはシステムの未来を奪うことと同義である、ということです。僕はこれが最も大きな弊害であると思う。だから、コードは可能な限り綺麗にしておかなくてはいけない。
そういう認識を、システム屋はもちろんのこと、ユーザー部門の情報システム部が強く持たなければいけない。刹那的なビジネスを可能な限り減らすことは、双方にとってメリットがあるし、所謂「攻めの提案」も可能になってくる。僕は、システムに守りなんてものはないと思っている。セキュリティ等を考慮しないって意味じゃないですよ。システムに進化を求めない発想は無能無策に等しいのではないか、という危機意識があるだけです。
そんなことを書いていたら、良品計画の同社執行役員・情報システム担当部長の小森氏が、「強い」情報システム部として素晴らしい発言をされていた。
システム部門の人たちが保守的なのも問題だと感じました。弊社はSPAという製造小売業です。商品もシーズンで変わるので、四半期ごとが勝負です。他社の価格や、お客様の動向を見ながら、業務のプロセスを機敏に変えていかなければ生き残っていけない。何ヶ月単位というシステムの時間軸に合わせる余裕はない。
確かに、システムを変えるということは大変なことです。しかし、良品計画のシステムである限り、業務を進化させることが優先。進化をあきらめて、保守だ、安全性などという話は全くありえない。会社がつぶれればシステムもへったくれも無いわけです。だから、ある程度のエラーやリスクを受け入れるよう、考え方を改める必要がありました。
情シス、ベンダーがそれぞれの仕事を全うすることがベストな関係を生む~良品計画がシステムを内製する理由(1/5):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)
青字部分、滅茶苦茶しびれた。これぞ内製回帰スピリッツ。内製回帰厨の僕からしたら額縁に入れて飾りたくなるような一文。情シス★OFFにゲストで来て頂きたいなぁ。この記事は非常に示唆に富むので、是非あわせてご覧下さい。
プログラマの誇りを減衰しないためには、システムを常に進化させて圧倒的に現実を変えていくことが、僕は必要不可欠であると強く思っています。