勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

紙駆動開発とのつきあい方

開発者向けのPodcastの「しがないラジオ」を聞いていたら、SIer受託開発で「紙駆動開発(Paper Driven Development)」がキツかった的な話が面白かったので、いろいろ思うところを書いてみる。

n1339epinal

紙駆動開発とは

明確な定義は見当たらなかったのだけど、多分こんな感じ。

  • ウォーターフォール開発プロセスの一形態
  • 強いフェーズゲートが設定されており、各工程の成果物のレビューや検証証跡を提出することで次の工程に進む
  • 紙資料が証跡の正本であり、紙資料に対してレビュー実施のサイン、マーカーによる着色、押印がされて成果物として完成する
    • 紙資料を正とするため、資料の再利用性に目が向きにくい(いわんや、自動化おや)
    • Excel方眼紙、神Excel
    • 手書き重視
  • コードやテスト結果についても人間のレビューや検証を重要視
    • ツールでテストをしようとしても、「ツールにバグが無いことが証明できないからダメ」と言われたり
  • コードの目検を重視するので、古いコードはコメントアウトして全部残したり、修正行全部にコメントしたり
    • モダンな構成管理と親和性が無い
    • 伝説の日付フォルダ管理

ネガティブな事ばかり書き連ねてしまったが、高い品質が求められるシステムであればコード1行あたりに多大なコストを投入しているという意味で、必ずしも紙駆動=悪というわけではないだろう。例えば有人宇宙機、航空機、原子力発電所など(あくまでイメージです)の開発プロセスがライトだったら、嫌じゃない?

どうしてこうなった

特殊な高品質システム開発以外のいわゆる通常システム開発が現在も「紙駆動」だった場合、経緯は以下の2つが思い当たる。

パターン1(昔は良かった)

  • 大規模な初期開発が非常に大昔で、構成管理や自動化などのプラクティスがそもそも初期に存在しなかった。
  • 保守フェーズ以降は小規模体制となり、開発プロセスの改善投資する余力なく長期間最初のやり方を継続した。
  • 保守フェーズが長期化する中で開発能力が低下(推進力の高いリーダーやベテランの離脱、世代交代、コスト削減などにより)、改善する能力がさらに低下して現状維持で精一杯になる。

要は「昔からこうやっているし、問題はない」という話。
でも実際には構成メンバーは高齢化していくし、体制補充で新規要員を追加しても新参者が定着しないなどの課題はあるだろう。

パターン2(間違ったベストプラクティスの導入)

  • 太古の大規模な基幹システム開発が一度大失敗、経営からの指示で過度な標準化や重厚な開発プロセスが敷設される。
  • その後、第1世代は実際には標準化や開発プロセスというより、知恵と工夫でいくつかのプロジェクトを成功させる。
  • しかし開発体制が世代交代する中で組織の官僚化が進み、いつしかプロジェクトの成功よりも標準化の遵守を重視する文化の固定化。
  • 形骸化したルールだけが残る一方で、ルールを変更するのは大変すぎるので、ほぼ全員が下を向いて従っている。

「これがうちのルールです。従わないベンダーはお断り」という話である。
発注者側が強い限り継続することはできそうだけれども、既存のベンダーがやる気を失った瞬間爆発しそうな気がする。

紙駆動開発とのつきあい方

じゃあ、目の前に紙駆動開発プロジェクトがあらわれたとしたらどうすればいいだろう。逃げる以外の選択肢を考えてみる。

  • 開発継続性という観点で長期的なロードマップを描いてみる
    • 上記でも触れたけれども、5年や10年といったタイムスパンで線を引いてみるといろいろなリスクが見えてくるような気がする
    • リスクを洗い出した上で「ずっとこのまま継続できるのか」「放置しておくとどうなるのか」まで見据えた上で、近代化(モダナイゼーション)の提案を考えてみるのが良いのではないだろうか
  • そういえば経済産業省でこんなレポートが出ているのも参考になりそう

多くの経営者が、将来の成長、競争力強化のために、新たなデジタル技術を活用して新たなビジネス・モデルを創出・柔軟に改変するデジタル・トランスフォーメーション (=DX)の必要性について理解しているが・・・ ・ 既存システムが、事業部門ごとに構築されて、全社横断的なデータ活用ができなかったり、過剰なカスタマイズがなされているなどにより、複雑化・ブラックボックス化 ・ 経営者がDXを望んでも、データ活用のために上記のような既存システムの問題を解決し、そのためには業務自体の見直しも求められる中(=経営改革そのもの)、 現場サイドの抵抗も大きく、いかにこれを実行するかが課題となっている → この課題を克服できない場合、DXが実現できないのみでなく、2025年以降、最大12兆円/年(現在の約3倍)の経済損失が生じる可能性(2025年の崖)。
DXレポート〜ITシステム「2025年の崖」の克服とDXの本格的な展開〜

まぁこの整理はどうなのよ、というツッコミもあるのだけれども・・・
しかし、真正面に対応するのは大変そうだ。では緩和策はあるのだろうか?

  • 少しずつ「紙」の資料を無毒化、解毒していく
    • あくまで紙資料はインデックスであるという整理で、提出物として印刷や押印するけれど、中身は「電子ファイル参照」という形に移行していく
    • 電子ファイルも一足飛びにMarkdownなどにチェンジするのではなく、まずは紙資料をスキャンしたPDFファイルあたりでソフトランディング
    • 縦型モニタを導入して「紙じゃないと見れない」派を懐柔
    • イマドキPDFファイルも電子押印や書き込みができるので、書き込みや押印類も少しずつ電子化

うーん、時間はかかりそうだけど、こちらのほうが抵抗は少ないかもしれない。

どうですかね。
ちなみにシステム開発の近代化(モダナイゼーション)についてはこの本がオススメ。