見出し画像

始めたて新規事業のシステム開発で大事だったこと|PROBASE アドベントカレンダー DAY2|金子翔伍

こんにちは あるいは こんばんは。(言ってみたかったんです。m(_ _)m)
どうも、はじめまして、ごえです。

PROBASEチームアドベントカレンダー企画、2日目を担当します!

投稿スケジュールはこちらです!

自己紹介

PROBASEチームでエンジニアをしています。
新卒で大学職員を経験し、未経験でシステムエンジニアに転職。その後フリーランスを経て、今年2月からサーキュレーションの社員として入社しました。
趣味はマンガ、アニメ、ゲーム、映画などなどで、絶賛フルリモート満喫中です!
(※仕事はちゃんとやってます。ここ重要。)

なんだか『がんばれゴエモン』に似てるよね → がんゴエ → ゴエというあだ名になりました。
(「頑張れ!!」って感じの“ゴエ”だ!!で覚えてください。)

普段はPROBASEの新しい機能を作ったり、仕様を考えたり、ミーティングに参加したり、PROBASEをより良いサービスにするために奮闘しています。

今回、最愛なるPROBASEチームでアドベントカレンダー企画を実行するということで、初めてnoteを書くのですっごい緊張しています。
テーマは自由ということなので、趣味に全振りしようかと思ったのですが、TPOを区別できるところをアピールするためにも、真面目に書こうと思います。(いっっっっつも真面目やけど。)

はじめに

開発に絶対的な正解はないと思っています。
その現場、そのサービス、その状況において、いろいろな選択肢があって、その時その時の良いものを作った結果が現状だと思っています。

例えば、技術的負債とされるスパゲッティコードについても、そういったソースを見つけた時はとりあえず一旦テンションは下がりますが、今までの最善の結果だとも思っているので、正直、滅すべきとまでは思っていません。(できるタイミングでリファクタはしたいけど)

僕はそこまで長くないエンジニア歴の中で、新規事業に携わる機会が多かったので、新規事業でのあれこれを踏まえて、今まで関わった「始めたて新規事業」のシステム開発で大事だったことをnoteに書き出します。
※以下の経験は全て、PROBASEに入る前に僕が学んできた実体験です。

このnoteを見て、「そんな考えもあるか〜」と感じてもらえれば幸いです。

また、PROBASEもまだまだ幼いサービスです。そんなPROBASEのチームで「こんな奴もおるのか〜」とPROBASEに興味を持っていただければ嬉しいです。(若干のこじつけ感)

(※このnoteの受け取り方には個人差があります。)

①完璧を求め過ぎない(その時のベストを。)

完璧を求めることは良いことです!これは断言できます。ただ、完璧でないことを悪だと思ってしまうのはダメです。これも断言します。(私見)

今までの経験上、新規事業は基本的に人材不足だと思っています。
僕の経験では、お客様からの電話応対、請求対応、入金対応、システム開発、外部人材との連絡・連携、面接対応、サーバ管理、提供サービスの規約等の見直しなどなど、1人で行っている時期もありました。(この経験は財産です)

そんな中、新しく業務管理ツールを作成するとなった時、初めはDB設計の正規化をしっかりしなければとこだわっていましたが、正直時間がないです。そんなものにこだわるのなら、ざっくり正規化して、DB作って、アプリ作って、実現したいことが動けばとりあえずOK!という感じです。
(業務管理ツール完成後は、「誰やこんな設計にした奴」と思う時もありましたが…)

過去の自分に対する言い訳のような感じにもなりましたが、その時の状況によってベストは変わるものだと思っています。
「完璧にするのが叶えたいことなのか?」を自問自答し、まずは、何を叶えたいのかを見失わないことを大事にしています。(※完璧を求めることは良いことです!大事なことは2回)

②開発フローを省き過ぎない

新規事業の開発フローはその時に作られていきます。(正しくは「作ります。」)
今このnoteを見ているエンジニアの方々も、おそらく所属している組織の中の開発フローに沿って、デプロイやテスト、リリースを行っていると思います。
始めたて新規事業には基本的にそれらはありません。開発環境、テスト環境、ステージング環境、本番環境などの環境も最初はないです。

以前、僕が1人で開発していたとあるサービスで感じたことですが、開発フローがないことのメリットもあります。開発フローがないと、リリースまでのスピードはめちゃめちゃ早いです。(マジで早い)

ただ、誰かに手伝ってもらおう!となった時に困ります。(当時の僕は「ソースをzipにして送ってもらって良いですか」とか言ってました。怖)

その困ったタイミングであったら良いなとなったのが「開発フロー」です。(当時「GitHub Flow」を採用)「開発フロー」なしにどうしてたん!?というツッコミも怖いですが…がむしゃらでした。

新規事業を進めていくと、いつかきっと何かしらのタイミングで人は増えます。(多分)
人が増えると、我流が伝わらなくなります。そこで品質の担保ができなければ、安定的にスピード感を持っての開発は難しいです。
完璧じゃなくても良いですが、開発フローは初めのうちに決めておくことをオススメします。

③余暇

3つ目に書きましたが、これ一番大事です。これ一番大事です。(大事なことは2回)
新規事業は人材不足と言いましたが、時間不足でもあります。(私見)
「やりたいことはあるのに時間が足りない」となり、気づけば時間がめちゃめちゃ経ってしまって、だんだん仕事以外の時間を忙殺しがちです。(僕は陥りました…)

システム開発に限った話ではないですが、「何のために働いているのか」を見失わないことが大事で、サービスを使っている人たちへ継続的に笑顔を届けるために、自分の笑顔も守ることは最重要事項だと認識しています。

最後に

書き終わってみたら「こんな内容で良いのだろうか。」と頭を悩ませる感じになりましたが、この記事を目にしているということは、きっとOKサインが出たんだと思います。

改めて新規事業を泥臭くもがいて作ってきたんだなと自らを振り返って、自分を褒めたいと思いました。

PROBASEチームではエンジニアが現在6名います。エンジニア以外も含めると11名!
それぞれの得意な分野、視点などを相互に発言しながら積極的にコミュニケーションが飛び交う頼もしいチームです。

始めたて新規事業ではないですが、まだまだPROBASEも成長段階のサービスです。
少しでも興味を持っていただけましたら、ぜひ一度お話できればと思います。

明日はカスタマーサクセスのかばちゃんです!!
次回もお楽しみに〜