Binary Diary

Take Agile で

この中で一番新しい(と思う)ファイルはどれ?

どうもこたにんです。

 

エンジニアとして仕事をしていく上で一度は眼を通したことがあるもの。

設計書

画面仕様やAPIパラメータ、DBのテーブル定義なんかもあるかもしれません。

そんな設計書。

さてみなさん、この中で一番新しい(と思う)ファイルはどれですか?

f:id:Kotanin0:20190220170726p:plain

んんんんんん???んんん!!??!?!
んーーーー😐😐😐😐😐???
何がどうなっているんだ!?

同じ設計書なのに、ファイル名違いがたくさん!
バラバラすぎて何が何だか!!

んんんんんーーーーー!?!?

ということでアンケート取ってみた

このカオティック設計書事案について、アンケートしてみました。

400名以上から回答いただけました!ありがとうございます! 
アンケート結果からわかることは、ひとつ。。。
 

ファイル名で最新かどうか判断できない!!

最新かどうかの判断が、完全に分かれましたね。

  • 何かの都合でファイルが編集できなくてコピーができたのかもしれない
  • すでに複数のファイルがあって分かりやすく示すために最新と書いたのかもしれない
  • 年月日を入れることで時間軸的に最新を表したのかもしれない
  • これらは全て一時的なバックアップでサフィックスのないものが最新かもしれない

みなさまおそらくこのような推測のもと、自身の判断で最新はこれだと断定したのかなと思います。
Twitterで反応していただいた方々もそのようなことを仰っておりました。

しかし判断はほぼ確実に、少なくとも50%以上、混沌を助長させることがわかりました。
これでは混沌が加速していく一方です。
 

そもそもなぜこのような状況が生まれてしまうのか

ここに課題がありそうです。
何かしらの契機で新たなファイルが「ポコッ」と生み出される、そこに課題が潜んでいます。
その「ポコッ」という動作は、何きっかけに行われるのでしょうか。

  • キーボードショートカットでいつのまにかコピーができてしまった
  • ファイルにロックがかかっていたけどどうしても編集したかった
  • 大幅な改定をしたためバックアップを取っておきたかった
  • 編集履歴をシートで管理しているがそのシートの更新が面倒だった

すべて憶測の域を超えませんが、だいたいこのような理由なのではないでしょうか。
いずれの理由にせよ「ポコッ」とするには十分すぎる動機です。

「ポコッ」とを解決するためにはどうしたらいい?

この現場に、カオスなファイル管理に、秩序をもたらしたいです。

「ポコッ」をなくしたいです。
しかし、ファイルたちを一元管理してくれるような都合の良い神様はいません。

今は2019年です、情報化社会です、解決のためのソリューションはいくらでもあります。
神様に頼ることなく解決できる課題のはずです。
ファイル管理であれば、シンプルに3つほど思いつきそうです。
 

クラウドに移行

一番わかりやすく全てを解決できるのはこれです。
GoogleでもMicrosoftでも、クラウドのドキュメント管理は今では普通に提供しているソリューションです。

  • 同時編集できない
  • 履歴を残すのが面倒
  • オンプレのディスク容量圧迫

クラウドに移行するだけでこれらの課題がスッキリ綺麗になくなりそうですね。
設計書増えすぎ問題にも柔軟にアプローチできそうです。
さらに言えば、Google App Scriptなどで自動化したりなんたり、ドキュメント自体の価値が上がりそうですね。
 

wikiに移行

これもひとつの手です。
ここで言うwikiといのは、Confluence, esa.io, Qiita:Team, DocBaseなどを指しています。
これも同様に、同時編集や履歴管理の悩みを解決できます。
さらに、各ツール独自の機能(他サービス連携、検索、タグ付け、ユーザ管理)なども活用できそうです。

バージョン管理

クラウド移行、ツールの導入などのハードルが高いのであれば、せめてバージョン管理くらいはしたいところ。
gitでもSVNでも、ファイルベースでバージョン管理するだけで変わってくる気がします。
今更ここで改めてgitやSVNの導入方法は記載しませんが、良さは伝わるかと。
gitを選択すると、同時編集の点で課題は残りそうですが、フローさえあれば基本的に課題は解消されそうです。

 

ビバ秩序! 

これで混沌から解放されました!おめでとうございます🎉

ただ事情により上記を選定・導入できない!というケースも稀によくあると思います。
そんなときは、その職場環境を疑いましょう。

ということです。

様々な事情で現場環境を改善できないことはあるかと思います。
その改善アクションへのコストと、レガシーなファイル管理で発生する場当たりコスト。
それらはどちらの方が結果的に作業効率が向上して幸福度が増すでしょうか。

改善することが目に見えているのであれば、やらない理由はないですよね。
それでもやらないというのは、やりたくないという意思が心のどこかにあるのでしょう。

今回は、レガシーなファイル管理をエンジニアリングしなさい、という着地点でした。
プログラミングだけがエンジニアリングではないのです。
日々業務を行う中で見え隠れする課題、それをどういう手法でいかに解決するか。
エンジニアリングの本領が発揮されるところですね。
 
ということで今回のアンケートに関する帰結とさせていただきます。