Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

エンジニアのレゴブロックとドイッチュ限界のはざま

日本国内では情シの地位が低くてシステムをベンダに背負わせている企業が多いと聞く。そんな中でGoogle WorkspaceとMicrosoft Power Appsがスプレッドシートを取り込んだ。これまでマネージドサービスは「エンジニアのレゴブロック」*1だったが、これでブルックスの言うエンドユーザコンピューティング*2がマネージドサービス上で実現されることになったとすると……エンドユーザコンピューティングがローコード・ノーコードの文脈を伴うなら、どこかでドイッチュ限界にぶつかる。すると残るビジネスロジックは何か? 現状、FaaSは大規模なロジックの塊をデプロイすることを指向していないから、税の金額計算みたいな複雑なロジックを凝集したライブラリが、それをAPIとして提供するサーバのうえで残るか?

あるいは、大規模なシステムをエンドユーザコンピューティングで刷新しようとして、一部の機能をくくりだして実装するが、セカンドシステム症候群を回避できず、一部の機能だけでも刷新にたいへんな時間がかかり、くくりだされなかった部分が延々と生き延びる……というのがもう一つのシナリオか。

そういえば、エンドユーザコンピューティングにおけるセカンドシステム症候群……という話はあまり聞いたことがないな。自らのスキルや労力を自覚している状態では、機能を作ろうと思ったらそれだけ自分が大変だから、そもそもセカンドシステム症候群にかかりにくいとか、あるいはそもそも刷新がされなかったりするんだろうか?

エンドユーザコンピューティングによって作られたドキュメントのないアプリケーションは、その知識が個人に紐付くから、保守の引き継ぎが難しくなるはず(これは現状でも「秘伝のExcelシート」みたいな形で実在しているはず)。ロジックを書くのが特殊技能な間はここをリスクとしてとらえることができる。一方で、ロジックを書くのが特殊技能でなくなったら、システムの刷新は人の移動に伴って消滅するとともに、同様に発生もするはず(また必然的に犠牲的アーキテクチャの様相を取る)。アプリケーションが勝手に生えるなら経営者がそこを心配することもなくなるわけで、すると「保守」という概念が薄れていく?

*1:初出は次?: John Markoff, "Software Out There", The New York Times, https://www.nytimes.com/2006/04/05/technology/techspecial4/software-out-there.html, 2006/04/05.

*2:ブルックス「人月の神話 新装版」(ピアソン・エデュケーション,2002,p.185.