読者です 読者をやめる 読者になる 読者になる

四十三庵

蔀の雑記帳

ソースコードは書いた瞬間にブラックボックス化していく

最近仕事でブラックボックスになったシステムをどうにかするみたいな流れになっている。
そんな流れで、システムのブラックボックス化について考えたことのメモ書き。

  • ソースコードは書いた瞬間にブラックボックス化していく

新規システムは、開発というフェーズが必要となる。
誰かがプログラミングして、ゴリゴリ開発することになるんだけども、
その瞬間に既にブラックボックス化が進行していく。
今日書いたコードは明日には忘れていくし、一年後には他人が書いたようにすら見える。
開発者の中で忘れていくプロセスがまず存在する。

次に、システム会社の中で、人の流れがある。
仮にソースの中身をよく知っている人間がいても、転職やら異動やら定年退職やらで、いなくなってしまう。
その人が後輩にきちんと引き継いでいるのであればいいけども、
たいていの企業で開発や運用について成果をあげれば評価されるが、
引き継ぎは評価対象になっていないので、おざなりになってしまう。
blog.stm43.com
そのあたりの問題についてはこの記事を参照。

  • コードを書くべきではない

インターネットでこういうことを言うと怒られるんだろうけども、
長年使うシステムであれば、なるべきコードを新規に書くべきではない。
(もちろん書くことと書けることは別だが)
既存のモジュールを使うとか、DRY原則を守るとか、オープンソースを活用するとか。
ただ新しく書かかないで、既存のコードをコピペし続ける文化が定着すると、
新人が全然技術力つかなくなるので、そこは気をつけた方がいい気がする。

  • ドキュメントは銀の弾丸ではない

ブラックボックス化したシステムでよく使われる解決策として、ドキュメントを整備するというのがある。
もちろん最低限の設計書・手順書がなく、属人化した運用がなされているのは論外だけども、
だからといってドキュメントをガワだけ整備することにあんま意味は無い。
IBMとかOracleとかMicrosoftとか一応ドキュメント用意してくれてるけど、
そのドキュメントを見たら余裕でシステム開発できるかと言えばそんなこともない。
だいたい教科書があれば知識の継承が100%完了するのではあれば、学校教育は要らないだろう。

知識の継承において、ドキュメントが整備されていることは一つの条件でしかない。
実際はわかっている人が、わかってない人に教えることが必要だったりする。

以上、最近思うことをとりあえず文章にしました。
(了)