事業の成長フェーズに合わせた開発スタイルの変更

初めてエンジニアブログに投稿することになりました仙石と申します。

今回は現在44歳の私がライブチャット事業が発展していく中で、エンジニアとして開発スタイルを変えていくこととなったお話をしたいと思います。

 

 

十数年携わってきた愛すべきライブチャットサイト


私はライブチャットサイトに十数年携わってきました。今ではライブチャットの老舗とされているエンジェルライブは今年で16周年を迎えるわけですが、4周年くらいからやっていたわけでありますので相当長い時間やってきたんだなと感じます。長年やっているだけに愛着は人一倍だと思っています。

とにかく日々成長させなければライブチャットという業界で生き残れないため、色々な施策を考え、1日でもスピーディーに実装までにこぎつけないといけませんでした。二、三名という少数のエンジニアがその流れをひたすら繰り返して前に進んでいきました。それが当たり前で疑うこともなくやっており、開発スタイルは無視でとにかく好き勝手(!)に手続き型でのソースコードを作っていました。それは他のエンニジアも同じだったように思います。

エンジェルライブ自体はおかげさまでどんどん成長していきました。またチャットピアライブでゴーゴーというサービスも弊社で運営し始め、更に成長を遂げてまだまだ成長する部分もたくさんありますが、今は成熟期に入っていっているように思います。


※業界で生き残るのに必死だった成長期を経て今は成熟期に入っていると感じてます。

 

 

今までの自分との葛藤と変化するきっかけ


ただふと気がついてみると好き勝手に作ってきたソースコードが大量となっていました。

  • 手続き型で作成しているため、仕様変更した際に別の部分で不具合が発生してしまうことが多くなり・・・
  • コードレビューとかの文化はもちろんないため、他のエンジニアのソースの内容を把握できず、改変も困難となり・・・
  • ファイルのバージョン管理等していないので複数で触ってしまう場合に先祖返りが起きてしまうこととなり・・・


このような状態が続いていくと、やがて肉体的・精神的な部分で負担に感じるようになっていくのは今思えば自然の流れだと思います。
変えなければならないなと頭では分かっていても、

 

  • 現状抱えている大量のソースコードの変更は面倒臭いんだよ
  • 現状のサービスの保守という仕事が自分にはあるんだよ
  • 現状のサービスがPHP5.1.6という古いバージョンでそれなりに動いて売り上げも立っているんだよ


というある意味言い訳じみた観点から変わることができませんでした。そうやって何も変わらぬまま時間だけが過ぎていきました。

そういう自分を変えざるを得ないと思うきっかけを与えてくれたのは、他のエンジニア達がやっていたプロジェクトでした。

先ほども書いたように、生き残らなければいけなかった成長期から成熟期に変わっていてサービスも大規模となってきたことから、会社としてもエンジニア開発体制をしっかりさせようという流れとなり、エンジニアの採用に力を入れ実際に知見のあるエンジニアが増えてきました。

弊社和田のエンジニアブログにも記載されておりますが、それらのエンジニアがチームとなって「モダン化プロジェクト」が進行していました。そのプロジェクト自体に参加したわけではありませんが、開発手法の一部を導入してみればとの変わるのではないかということで取り入れることになりました。まずは以下を取り入れることとしました。

 

  • 手続き型でなくフレームワークを用いたMVC型で作りましょう
  • ペアプログラミングで知見を共有することでより短時間で理解できるようにしましょう
  • コードレビューもしっかり行ないましょう

 

 

 

スタイル変更への抵抗はありつつも取り入れようと思った経緯


実際に「モダン化プロジェクト」に携わっているエンジニアにペアプログラミングやレビューしてもらいながら前へ進んでいきました。

ただ簡単に前に進めたかというと本当に困難を極めました。10数年開発したスタイルを変える事は相当の苦痛でした。手続き型で作ったら楽なのにと何回(何十回)思ったことでしょうか。

手続き型では2週間程度で作成したものを、工数としては1ヶ月半かかりました。業務の関係で1日の業務時間半分をそれに費やしていましたので実際は3ヶ月かかったことになりました。本当に長かったです。作成が終わった時も最初は嬉しいってよりもやっと終われるという・・・ホッとしたという気持ちが大きかったように思います。

ただ実装してみて明らかに処理速度・表示速度が速くなっており、ユーザー様にとって快適に利用できるようになっていました。

私は常にライブチャットサイトはユーザー様あってのものだと思っています。この結果はユーサー様にとって明らかにメリットになります。ユーザー様が第一と常々考えている自分にとってはこれはしんどくても取り入れないといけないなと感じました。

 

※ユーザー様により快適に楽しく利用していただくことを第一に日々開発しています。

 

 

 

 

今後進んでいくであろう道は?


今まで進んできた道が決して間違っていたとは思っていません。先ほども書いた通り、私が最初に携わっていた時にはまだ成長過程で少数の人数でサービスを急激に大きくしていかなければ生き残っていけなかったからです。ただ今はそうではない。サービスが大規模になってきたことによりエンジニアも増え、チームとしての開発スタイルという別に道が求められるようになりました。そういう中で自分だけ今まで歩んできた道を進むことはできないわけです。

まだまだ最初の一歩を進んだだけです。今後も葛藤しながら進んでいくこととなるでしょう。そんなに簡単には進めないでしょう。ただまず一歩進んでみたことが重要なのだと今回のことで思いました。

同じようにエンジニアの仕事はやりたいけどこういった悩みを持っていて一歩前に進めないという方もいらっしゃるかと思います。そういう方にぜひ来ていただいて、一緒に悩みながらも少しずつでも成長できれば嬉しく思います。


もし興味をお持ちでしたら、一度お話でも聞きにきてください。