会社創業時期に開発に関わったエンジニアは、その会社では英雄としてもてはやされますが、そのシステムがクソであった場合にその会社がどのような問題を抱えることになるかを書き綴ります。
創業時に、開発に十分なコストが使えず、安価な単価でエンジニアに作業してもらうことは多いと思いますが、エンジニアモチベーションは、金額程度のレベルを納めて、動けばいいというレベルで納めてしまうことはよくあります。
その際に、その後のシステムメンテナンスなど考えていない場合は、そのシステムは、ほかの優秀なエンジニアが手出しできないほど、学習コストが高い代物になり、後に高額な開発コストをかけて作り直す羽目になります。
とある会社の話
僕の知人の会社は、インスタグラムのインフルエンサーなどを使って、海外に商品を輸出する商売を行っているのですが、そのシステムを改修したいという相談を受けたところから話しは始まります。
創業当初に関わった開発員がエンジニア勉強も兼ねて、実験的な構造にしてしまい非常に複雑なシステムを構築してしまい、その後それを作ったプログラマーが本業が忙しくなり、色々な更新要望作業が行えなくなったとのことで、システム運営する会社の社長が困っていました。
何人もの別のプログラマーを採用して、そのシステムを更新してもらおうと作業をしてもらいましたが、誰も開発環境の構築すらできない状態であるという風に話を聞きました。
実際に本番のWEBページをみてみたところ、さほど特殊な事を行っている風もないWordpress風のシステムだったので、カスタマイズして構築したものだと思っていたんですが、実際にソースコードを見せてもらい、開発環境のインストール手順を書いてもらったところ、想像を絶する複雑な構成にしていて、そうしたプログラマーのスキルアップの為に、色々なライブラリやらフレームワークをつなぎ合わせて作られているシステムになっていました。
初期開発自体も、副業ということもあり、半年以上かかるという、お寒い開発で、話を聞いた時に掛かった工数なども算出できない有様です。
おまけに、これらのシステムには、詳細がサーバーコンフィグなどの詳細が書かれていないモジュールインストールだけの手順書と、Githubにソースコードがあるだけで、ドキュメントなどは一切ない状態で、初期開発したエンジニアしか手が出せない状態になっているようです。
もちろん、初期開発した本人は、逃げるつもりは毛頭無いのだそうだが、もはや、その後メンテナンスコストの高い開発に自分が入るつもりもなく、システム運用会社が泣き寝入りするしかない状態です。
こうしたシステムは、プログラムを追っていく事で解析する事はできるし、それを引き継いで運用する事も可能なのですが、その後のメンテナンス作業をコスト化すると、このタイミングでサクッと標準的なシステムに作り直した方がよほどその後のコストは跳ね上がらないと思い、社長にはその提案をしておきました。
このエンジニアの勘違い所
このエンジニアと話をしたところ、つい最近東証マザーズに上場した会社の開発部門の部長職をしているレベルの人で、年齢は30代半ばぐらいの感じなので、脂がのっている時期であるため、自分がやったことに対しての罪悪感が無いようでした。
残念なポイントは、この会社に対して今後どのように対応してあげるのかと聞いてみたところ、「自分はこれいじょう利益のない仕事をやる気がない」という風に言い放っていました。
これはいけませんね。
作り逃げと言われても反論できないでしょう。
実際に会社で開発業務を行っている人であれば、ドキュメント構築ができていないという会社は、ゴマンとあります。
ていうか、ドキュメントと申し分ない状態に作って運用できているスタートアップ会社があるという話しは聞いたことがないのが現状です。
ただし、ここで問題とされているドキュメントレベルは、システムの引き継ぎ資料レベルなのですが、それすら作る事も、口頭で説明できないというレベルでの、部長職エンジニアだったのです。
痛いですねえ・・・
新たに機能追加をしたいと社長が聞いてみたところ、「難しい」という返答のみで、どおういうスキルの人間が対応すればいいのかすら、会話に出て来ない状態で、いわゆる行った返事ができないコミュロス系で、自信を持ってしまったエンジニアだったんですね。
こうした人をみると改めて、エンジニアのコミュニケーションスキルは必須であると考えてしまいます。
ざっくりこんなエンジニアには要注意というポイントをまとめてみました。
・自分の行ってきた開発の後始末ができない。
・去る時に、引き継ぎができない。(説明ができない)
・現行システムをクソと認めない。
・自分しか対応できない事に優越感を持っている。
・仕様をドキュメントが書けない。
会社の失敗ポイント
そして、この会社のようにならないための教訓は以下の通りでしょう。
・エンジニアのその後の保守を全く考慮できていなかったこと。
・経営も含めた担保の出来ない人間に根幹システムを委ねてしまったこと。
・成功報酬やレベニューシェアなどプログラマーと無謀な契約を結んでしまったこと。
この会社には、非常に申し訳ないですが、こうしたシステムは、近づかない事が一番なので、僕の会社でこのシステムを請け負う事はしないとは思います。
6ヶ月かかって作ったらしいシステムですが、1ヶ月もあれば作れてしまうシステムなんですけどね・・・
この社長さん個人的には非常に好きなので、助けてあげたいのはヤマヤマなんですが、久しぶりに見たクソシステムをどうしてもブログで書いておきたくて記事にしてしまいました。
0 件のコメント:
コメントを投稿