こんにちは。ホワイトプラスに今年の9月に入社したエンジニアの古賀です。
今回は入社したての目線で、ホワイトプラスに入社して開発プロジェクトに参画したら、どんな事をやるのかや開発の雰囲気を紹介します。(私の自己紹介はこちら)
担当プロジェクト
ホワイトプラス の主⼒事業である「リネット」は、⾃宅にいたままクリーニングが出せる、ネット宅配型のクリーニングサービスです。これまで提携工場を増やすことでクリーニング(生産)の受注可能量を拡大してきました。今後は生産拡大のスピードを上げるため、新しい生産モデルとなるクリーニング工場のシステム開発を行うプロジェクトに参画しています。
業務内容
おおまかに分けると以下の業務を行っており、それぞれどんな感じかを紹介します。
・要件定義・詳細設計
・実装(バックエンドのペアプロ)
要件定義
私が参画した段階では主要機能がまとまっており、これからモックを作って画面を見ながら要件の詳細を検討していくというところから入っていきました。
当然、業務が分からないと要件定義はできないので、まずは「リネット」事業の業務をレクチャーいただき、機能概要をまとめた要件定義書やモデリング図などのドキュメントを読んだり、ソースコードを見たりしていきました。モデリング図はRDRAという要件分析手法を用いたもので、登場人物の役割や処理フローが非常に理解しやすいものになっています。(RDRAについてはこちらで紹介されています)
ただ、それだけでは既存の業務仕様をまだまだ把握しきれないので、要件定義書の各機能について、聞いたり調べたりして少しずつ知識を増やしていきながら、モックに反映して要件をすり合わせていきました。
特に私が面白いと感じたのは、事業側のメンバーと業務についてとことん議論ができるところです。前職の受託開発では、クライアントとの打ち合わせの時間が限られており、業務についてじっくり話を聞いたり、ふと気になったレベルのものをすぐに確認したりということがしづらく、モヤモヤしていました。
事業側のメンバーと定期打ち合わせ(1,2回/週)を行い、要件を詰めていく中で、気になったことや理解できていない部分については、個別に教えてもらったり別途打ち合わせをしたりと、けっこう時間を割いていただきました。
おかげでクリーニング工場のオペレーションを少しずつイメージできるようになり、必要な機能やオペレーションなどをスピーディーにキャッチアップしていくことができています。
実装(バックエンドのペアプロ)
上述の要件定義と並行して、主要機能の実装を行っています。といっても、まだ画面やDBなどの詳細は作り込まずロジック部分を実装している段階です。言語はPHP(Laravel)、設計はドメイン駆動設計(DDD)で行っています。
実装にあたっては、入社間もないエンジニアの立ち上げ支援ということで、業務・開発知識のナレッジトランスファーを目的に、ベテランエンジニアとのペアプロを採用いただきました。実装前に、開発やレビューの方針は共有いただいてましたが、もっと細かいレベルでホワイトプラス流の開発はどういうものか結構気になっていたので、ありがたかったです。
(ナレッジトランスファーの取り組みについてはこちら)
ペアプロの雰囲気
ペアプロは以下の1〜4の流れで行っています。
1. 実装すべき処理を洗い出す
GithubのIssue単位で実装すべき処理を考えます。お互いがイメージしている処理を具体的に挙げていく中で認識を合わせたり、現時点では実装しないことを決めたりします。
2. 小目標を立ててドライバー役とナビゲーター役を決める
基本的にドライバーは目の前のコードに集中し、ナビゲーターが全体感を見たりドキュメントなどの調査を行います。検討事項が出てきたときには、ホワイトボードで情報を整理したりしています。
3. 目標達成したら次の小目標を立てて役割を交代
ナビゲータが長く続くと退屈しがちになるので、30分から1時間以内で目標を達成し、交代するようにしています。ペアプロ中は時間があっという間に感じるのでタイムキーピングも大事です。
4. 1で決めた内容を完了したら次のIssueに移って再び1から実施
ペアプロ中はさくさく手を動かして作るときもあれば、考えている間があったり、リファクタリングできないか悩んでいたりといろんな場面があり、互いにそのとき考えていることを伝え合っています。頭の中にあるコードや考えを相手に伝えたり理解してもらうことは結構難しくて、「自分で書いた方がここは速いな」というときもあります。
一方で、他のメンバーがコーディングしている時にどんなことを考えたり悩んだりしているのかをリアルタイムで感じられるので、自分も注意するように意識できる良さもあります。私はそれがすごく面白いなと思っていて、けっこうはまっています。
また、単純に一緒に作り上げていくという過程が楽しいです。私が作ったところに対して「バグ見つけた、やったー」と言われて、大人げないなぁ(笑)と思いながらも、次はこっちが見つけてやろうというように、コミュニケーションをとりながら作っていく楽しさを実感しています。
今回は、ホワイトプラスに入社して開発プロジェクトに参画したら、どんな事をやるのかや開発の雰囲気を紹介しました。もっと踏み込んで話を聞いてみたい等あれば、ぜひお気軽に面談にお越しください。
古賀 敦士(こが あつし)
神戸大学大学院農学研究科修了。受託システム開発の会社においてエンジニアとして従事。事業部と一緒になって考えられる環境で働きたいと思い、2019年9月ホワイトプラス入社。現在は、生産開発のエンジニアとして活躍中。趣味は登山。好きな食べ物はパン(惣菜系からハード系まで)。