委託して造っている業務のソフトがあり、発注者側が中身をまともに理解していない、という話を聞いた。それはまずいでしょ。契約上問題がないので、とりあえずソースを読んだ。

ちょうどお客様先で通常ではあり得ないようなエラーが出ていたので、併せて気になるところをざっと見た。

大きな問題が2点。
・データベースの更新時に、整合性を取る必要があるテーブルであってもトランザクションでの更新をしておらず、その都度接続をして更新している。
・スレッドを使ったプログラムをしていることは動きから推測できたが、スレッドを使う上での注意点を無視しているようである。

恐ろしい。こんなの、よく客に売ってるな。

また、処理の共通化もされておらず、冗長なコードが多かった。


ソフトウェア製品は表面上動いていれば分かりにくいが、冗長なコードはそれだけバグを孕む可能性が高くなるということだ。変更にも弱くなる。
また、トランザクション処理なんて、RDBを使うなら基本である。それも、トランザクション処理を組み込みにくい構造で、組み込むなら大規模な改修が必要である。
スレッドは、良く理解していない人が使うと怖い。その良く理解していない人がやっているのはどうなのか。


いろいろと進化が激しいが、プロとして基本ができていない連中に製造させる、というところがとても恐ろしい。
ソフト業界は、大型汎用機時代より確実に製品も人材も、品質が落ちているように感じる。