
先日とある会社の経営データの蓄積されたデータを使って、比較的大きな売上管理システムを構築させてもらいました。
10年以上の年月を費やして、システムも世の中の状況に合わせて改善されてきていたデータベースだったのですが、どう考えても設計ミスをしている箇所なども数多くあり、そうしたデータを使う不安はありましたが、現状それを使う以外に方法が無く、不安システムの上に乗っかるようなシステムになってしまいました。
そして、システムをその会社さんに受け渡す時に、「設計思考やシステム概念、機能追加する時のマニュアルや、プログラム構造のドキュメント各種が無いと、理解できません。」と、その会社の社内エンジニアの人たちが言っているのを聞いて、「このシステムは恐らく自分が触らなくなったらゴミと化すだろうな・・・」と心の中で思ってしまいました。
そんな経験を元に、システムがゴミ化してしまう話と、どうすればゴミ化しなくなるかという両軸で考えをまとめてみました。
開発したシステムがゴミ化する流れ
個人的な思考ですが、自分が開発したシステムは、何度も作り直して徐々に安定したシステムになっていきます。
でも、他人に開発してもらうシステムというのは、何度も作り直してもらうわけにはいきません。
だって仕事であれば、お金が膨大に掛かるし、そうじゃなくても作り直しって嫌がるエンジニアが多いじゃないですか。
そうした一発しかチャンスがないシステム開発って、どうしてもとても完璧といえるシステムになるはずもないんですよね。
ちゃんと設計から開発ルール(コーティングルールや運用ルール)などを考慮して慎重に作っていけば、完璧なシステムになるのかというと、ハッキリ言って絶対にそんな完璧なシステムって無理なんですよね。
でも、合格点を取れるレベルのシステム設計は、熟練エンジニアが、何度も作ったことのあるシステムなどであれば、不可能ではありません。
そして、システムがゴミ化してしまうというのは、そのシステム開発に携わったエンジニアがいなくなってしまった状態のシステムがそうなってしまいガチです。
これは、飛んでいる飛行機から操縦しているパイロットが一人もいなくなってしまう状態と似ているかもしれません。
もはや墜落する事は必須ですよね。
でも、乗客の中にパイロット経験がある人がいたら、もしかしたら、墜落は回避できるかもしれませんが、システムも似たような感じです。
誰もが知るフレームワークを使ってシステム基盤はエンジニアであれば誰でも理解できる仕組みにしたとしても、その中の独自ロジックに関しては、よほどしっかりとした仕組みにしていなければ無理ゲーになります。
これが、システムがゴミ化してしまう流れなんですね。
もちろん、ゴミ化してもそれを使い続けるユーザーがいる限り、そのゴミをメンテナンスし続けていくという忍耐と苦労の作業だけが残ってしまいます。
開発したシステムをゴミ化させないためにどうするか?
システムのゴミ化を防ぐためには、マニュアルや仕様書などが重要と思いがちですが、重要なのは開発思考の継承です。
もちろん、ドキュメントも重要で、これらは一気に作ろうとすると、開発した日数と比例した工数が掛かってしまうという(もしかしたらそれ以上)のも、エンジニアであれば、誰もが理解しています。
ここで改めて、コーディングルールと、わかりやすいプログラミングが求められるんですよね。
無駄なコメントではなく、プログラムを追いやすいコメントがしっかりと書かれていれば、他のプログラマーが初見で理解できて、変更などが柔軟に行えるというプログラミング構造は、コーディングルールがしっかりしていないとなかなか実現できません。
もちろん、プログラミングスキルレベルも同一レベルである必要もあるのですが、効率的なプログラムよりも、非効率でも読みやすいプログラムの方がゴミ化しにくいポイントなのかもしれませんね。
あと重容なのは、
開発熱量です。
これは、開発する側が持っていないといけない重要なマインドなんですよね。
これがないシステムは、ゴミ化がより早く訪れてしまいます。
あとがき
今回作らせていただいたシステムは、かなり頻度高く打ち合わせも行わせていただいたのですが、そうした会議で一番熱量が高かったのは、自分だったと自負しています。
この熱量が冷めないうちは、システムは失敗しないと個人的には考えているのですが、いろいろな開発現場を経験してきた自分としては、いつも自分だけ熱量が高くなっている孤独感を感じることもシバシバあります。
そして、同じぐらいの熱量を持っている開発チームで仕事をすると、それは遊んでいるのと同じぐらい楽しい感覚が得られるというのも、仕事を通じて理解しています。
恐らく、熱量が低い人ってどんな仕事をしても楽しくないんじゃないでしょうか?
もしかすると、システムをゴミ化させないのって、そうした人の熱量にも依存しているのかもしれない・・・とこのブログを書いていて思ってしまいました。
システムのゴミ化って言葉は荒いですが、ゴミにならないように熱量を持ってちゃんとメンテナンスをしてあげましょうね。
0 件のコメント:
コメントを投稿