超大手IT企業で働き、さまざまな業界のお客様相手にシステム開発を行っているが、その全てでゴミを作って売っている
ここでのゴミとは、システム本体のことではない。システム本体もゴミだが、そのゴミは下請け会社が作るので、関係はない
思えばいろんなゴミを作ってきた
決して読まれない説明書、抜け漏れだらけの管理書なんてものはもう何十回も作った
作った記憶すらない資料がプロジェクト最終盤で全てを破壊し尽くす特大のゴミとなって舞い戻ってくるなんてこともあった
そもそもシステムの設定は大体の場合jsonやらyamlやらの「設定ファイル」の形で存在することが多い。
本来は設定ファイルを、その設定項目と値に関する参考資料を読みながらエディタで編集すれば終わる話だが、これではいけない
とりあえずGUIにしよう
お客様や運用担当者が触る可能性のある場合、これは当たり前のことである
お客様は適当なエディタをインストールすることは規則上できないだろう
また、docx,xlsx,pdf以外の拡張子は「怖い」と感じるように訓練を受けている
問題は、主に触れるのが開発者である場合だが、このパターンでも対処は別に難しくない
ほとんど全てのお客様は不確定事象に対する特殊な訓練を受けているため、「開発者以外が触る可能性がある」と言えば、それで通してくれる
GUIにするという方向で話が進んだら、一件落着、見積書に大量の工数とバッファを積んで、あとは適当に開発者に任せよう
普通の神経をしている開発者であれば、宣言的に設定できるように作るはずだが、この業界の平均的な技術水準を考えると、ひょっとしたら手続き的に設定するようなものを作ってくれるかもしれない
まあどちらでも問題はない
それがこのゴミの非常に素晴らしい点である、どっちでもいいのだ
一般にn個のbooleanな設定項目があり、それらがお互いに相互に依存しながら存在しているとき、最高(最低の意味)の場合、n!通りの設定方法が存在する
設定項目全てが2値ってことはないだろうから、ちょっと多くなったり、一部のグループ項目はそれらだけで独立してたりで少なくなったりはするだろう
ゴミを作るツールはエクセル、ワード、パワポから選択しよう、印刷まで考えると、それが最も困難であるエクセルがベストだ
ツールに大量のスクショを貼っていこう(赤枠を使って適宜強調するのを忘れずに)
そのまま説明をセルに直接書いてはいけない、ふきだしを使ってその中に説明を入れよう
罫線をいい感じに入れよう
目指すのは、ありえる設定と1:1になるような資料だ。普通は網羅できないから、適宜省略して作れるところまで作ろう
このゴミの素晴らしいところは組合せ爆発を利用して、ほぼ無限の工数を消費できる点にある
後々に、1つ設定項目を増やすことになったとき、この資料のメンテナンスがどれほど工数を消費するかは、状態の数から明らかである
宣言的に設定画面が作られている場合は、ちょっとした工夫が必要である
そのまま、それぞれの設定項目と値の意味を書いてはいけない、組合せ爆発が起きないからだ
私の好きなやり方はユースケースに分解することだ
関数もどきを資料内に独自に実装してはいけない、全部コピペで行うのがベストだ
そもそも手順が記載された資料というのはお客様の脳みそというインタープリタに解釈されるプログラムであるが、それが解釈できる構文は非常に限られており、actionの実行と、ifとgotoくらいであるから、関数なんて理解できない
もし、GUI作成の許可が降りずファイルで行う場合でも、このゴミは同様に作れる
設定ファイルをスクショし、赤枠をつけて、ふきだしでコメントを入れるのだ