見出し画像

ソースは無秩序に向かう(6) 銀の弾丸

銀の弾丸はない

《銀の弾丸はない》
1986年にフレデリック・ブルックスが発表したソフトウェア開発の論文が出典の言葉。
西洋では狼男や悪魔などを銀の弾丸で倒すことができる。という言い伝えがあります。
スーパーナチュラルのウィンチェスター兄弟は「銀の弾丸」で狼男や悪魔をなぎ倒していましたが、現実世界ではそんな「銀の弾丸」はありません。
ソフトウェア開発においての「銀の弾丸はない」という意味は、特効薬のように生産性を爆発的に向上するような魔法なような技術はないという話です。

トラブルプロジェクトになると、評論家のような人たちが集まって「このプロジェクト課題はこれで、こうすればこのトラブルプロジェクトは解決するんだ!」といった戯言をまき散らして、余計で無駄な仕事を増やしていきますが、そんな甘っちょろい考えで解決できた試しはありません。

という訳で地道にやっていくしかない。

プロマネから聞いた話だと、このプロジェクトは国が巨額の予算を導入して進められているもので、ここ以外にも各拠点で複数のシステムがあるとのことだった。

そして各拠点のシステム同士で複雑なネットワークを構成しており、全体として1つの巨大なシステムを構成しているとのことだった。

各拠点のシステムはそれぞれで開発やリプレースを繰り返して、全体として細胞が新陳代謝を繰り返すように延々と成長を続けているとのことだった。

この現場を仕切るプロマネも、1つのシステムのプロマネでその巨大なプロジェクトの歯車の一部でしかなく、全体像を完璧に理解することは難しいと告げられた。

正直なところ、この巨大なプロジェクトの全体像がなんなのか気になるところだったが、プロマネに聞いても曖昧な答えしかかえってこないため、それは僕の仕事ではないと割り切るしかなかった。

そんな訳で僕が立ち向かうべき仕事は、C言語で書かれた旧システムのスパゲティのような複雑怪奇なプログラムを新システム用に新しくpythonで作り直すという仕事だった。
当然旧システムのドキュメントも残されていない。

《プログラムの設計ドキュメント》
めちゃくちゃ必要です。
が世の中にはあまり重要視していないエンジニアがいることも事実です。

C言語もpythonも大体は把握しているので、なんとかなるかな?とは思ったのだが、問題は旧システムのソースを眺めていたときに「.lisp」という拡張子で実装されたソースを見つけたことだった。

これLISP・・?

なんで業務システムにLISPが?

《LISP》
関数型プログラミング言語の1つ
1959年に作られたFortranの次に歴史のある言語
プログラムとデータをリストの構成要素として扱える(S式)という特徴をもったプログラミング言語
S式という表現が柔軟な表現力を持つことから、かつては自然言語処理などAI研究の分野で広く使われた言語
ただ現在はAIを扱う言語の主流はpythonにとって代わられた為、近年ではあまり見かけない言語となった。


この記事が気に入ったらサポートをしてみませんか?