ソースコードに手をつける前に、仕組み作りから!
回線事業者などで豊富な実績を誇るDHCPサーバ製品「ProDHCP」ですが、実はこれまではほぼ私1人で担当していました。2005年くらいから続けていますので、10年以上ほぼ1人でやってきたのです。DHCPの案件はそれほど数が多いわけでもなく、開発も規模が大きいというよりは処理性能などをどう解決するかなど、閃きさえあれば何とかなることもあり、1人でもなんとかなってきました。
しかし、このところ社内の主力製品が軌道に乗ってきたこともあり、メンバー達から「実は回線事業者向けの製品も本腰を入れて取り組むべきでは?」という意見が多くなってきました。回線事業者向けのシステムは参入障壁が高く、せっかく10年以上も取り組んできてノウハウもたまってきているのにもったいない、という感じです。
ちょうど私自身、社長としての仕事も10年近くになり、そろそろ本格的に手をつけなければならない課題も増えてきましたので、良い機会だと考え、ProDHCPもメンバー達に任せていく方向にし、私自身は基本的にはプログラミングなどには手を出さずにアドバイザー的な役割になり、その代わり、社長としての仕事や、回線事業者関連を中心に情報収集やコミュニケーションをきちんと進めることにしました。
さて、ProDHCPは10年以上も1人で改良を加えてきたシステムですので、本人でも難解なソースコードも多く、しかも、実績のある製品ですので、リリースをしくじることは命取りです。はたしてメンバー達で改良作業などがうまく行くのか?と心配していたのですが・・・私のいらぬ心配でした!
彼らはソースコードに手を入れる前に、先にソース管理・リリース管理・レビューなどのシステム化を徹底的に行いました。さらに、テストの自動化も行いました。最新のソースコードは毎晩自動で全項目のテストが自動で実施され、全項目クリアーしないとリリースはしないという運用です。テストには機能テストはもちろん、性能試験も含まれます。これにより、ソースコードに手を加えても、デグレードを仕組みから防げると共に、複数メンバーでのレビューやブランチ管理なども間違いなく進められる状態にしたのです。
このような進め方をすると聞いたときには「DHCPは機能要件が複雑で多岐にわたるから、そう簡単にはできないと思うな・・・」と見ていたのですが、メンバー達の熱意は私の想像よりはるかに高いものでしたし、年老いた私の頭では想像もできないくらい、柔軟に私がやってきたことを吸収し、システム化してしまったのです。
昨日、ProDHCPの最新リリースバージョンが仕上がりました。大幅な性能向上を行ったバージョンです。ProDHCPは私自身が大規模案件に対応する度に高速化してきましたが、いくつか妥協していた部分が残っていました。それをメンバー達は見事に短期間でやり遂げてしまった感じです。
さらに、この先に向けての課題もリスト管理され、私が1人では対応しきれないと先送りしていた課題もこれからどんどん解決していく勢いです。
まあ、私のところのメンバーは1人1人がそれぞれの得意分野でこだわりを持つメンバー達で、実際に技術的な会話では私など全くついていくこともできないレベルなので、やればできるだろうとは思っていましたが、ここまでシステム的に進められるというのは、側で見ていて感動的なくらいでした。さらにメンバー達の素晴らしいところは、ちゃんと私にも敬意を払ってくれることで、客観的に現状を批評するというよりは、10年間現場で揉まれながら育ってきた事実を受け入れ、その上でどうするのがベストかをしっかり考えてくれるのです。
ということで、私がプログラマー社長としてプログラミングもチマチマやっているより、私は現場の様子やお客さん・パートナーさんとの関係作りをしながら、優秀なメンバー達にどんどん任せていく方がはるかにうまく進むことが実感できている今日この頃なのでした。
私が実務をメンバー達に任せられつつあるおかげで、長いこと先送りしていた「まじめな求人活動」にも着手できました。もちろん、メンバー達自身も新たな仲間を必要としており、自らも様々な協力をしてくれています。いくつかの手段を検討し進めていますが、とりあえず、Wantedlyも使い始めてみました。彼らのような優秀で前向きなメンバーを求めて情報発信もしっかりしていかなければと、これまで忙しすぎて諦めていたこともあらためてやっていかねばと気合いが入っているところです。