engineering-retrospective-2023
Engineering

engineering-retrospective-2023

Fri, Dec 29, 2023
Haruhiko Kobayashi
Haruhiko Kobayashi

こんにちは、Jicoo CTOの小林です。

今回の記事では、2023年のJicooのエンジニアリングの振り返りをしたいと思います。 2023年は、新機能や改善リリースを高速にデリバリーする事と並行してプロダクト品質を上げていく事にも注力していました。両者への取り組みについて振り返りたいと思います。

高速なデリバリーへの取り組み

施策は基本1人でFEもBEも開発する体制にした

Jicooのアプリケーションの現状はFEとBEがTypeScriptで作られたモノリシックなアプリケーションになっています。この強みを活かしてほとんどの施策は1人で開発するようにしています。今年リリースした新機能の開発体制を振り返ってみました。

84%の機能が1人で開発されていました。圧倒的に速く作り上げる事ができるのがメリットです。 テックリードの堀さんはバックグラウンドとしてはアプリ・FEエンジニアながら、バックエンド開発も積極的に担当してくれてこの体制がかなりワークしたというのが大きかったです。

1人開発でも最初に相見積もり

新機能の開発はほとんどの場合予測不可能な未知の開発となるので、見積もりの精度も悪くなります。相見積もりをしてなるべくタスクの見積もり精度を上がるように2人で相見積もりをします。(最初に見積もりはしますが、正式なスクラムはやっていないです) ツールとしてはGihub Projectを使っています。単純にタスクを洗い出して軽く見積もるだけですが、これが見積もり精度を向上させます。見積もりの技術についてはソフトウェア見積もりという書籍が参考になります。

なんとなくスクラムで見積もりをやっていると、見積もりは何のためにあるのか?がわからなくなる時があります。見積もりについてを復習できる良書なのでおすすめです。

プロトタイプ開発の導入

こちらの記事で詳細は書いていますが、Jicooでは外部APIを使った機能が多く、エンジニアが最初にプロトタイプを作って徐々に固めていというスタイルが多かったです。Notion連携、iCloud連携、GoogleSheet連携などはプロトタイプ開発で進めた事でリリースまでのリードタイムが短縮できたかなという印象でした。

品質への取り組み

2023年頭では不具合がサービス全体でどのくらい起きているのか?というのがわからない状態でした。そこでまずは不具合報告を計測し可視化する事にしました。 スクリーンショット 2023-12-28 20.49.55

結果としては徐々に不具合の数が減ってきて12月の不具合発生率は昨年12月の0.62%と比べて0.20%と下がりました。 不具合を減らすために行なったいくつかの取り組みを紹介します。

FEコンポーネントの自動テスト導入

今年の1月に入社してくれた堀さんが入社早々に導入してくれたFEの自動テストです。具体的にはStorybook上でテストを書けるようになりました。

これによりReactコンポーネントのPropsによる描画のテストが行えるようになりました。

const Template: Story<any> = (args: any) => <Component {...args} />;

const defaultProps = {
  label: 'Label',
  value: 'Value',
};

const errorProps = {
  errors: ['test'],
};

export const Default = Template.bind({});
Default.args = defaultProps;
Default.play = async ({ canvasElement }) => {
  const canvas = within(canvasElement);
  expect(canvas.getByText('Label')).toBeInTheDocument();
  expect(canvas.getByRole('textbox')).toHaveValue('Value');
};

Github ActionsでTypescriptのビルドを走らせこちらのテストに失敗した場合、ビルドエラーになるためgithub上で検知できるようになっています。

テストカバレッジの可視化

こちらも堀さんが対応してくれましたが、これまでAPIのユニットテストはあったのですが、どの程度カバーできているのかが計測できていませんでした。こちらをPRと連動して可視化されました。 スクリーンショット 2023-12-28 21.35.24

全体のテストカバレッジは年初と比較して3%近く上昇させる事ができました。

QA仕様書・レビューの改善

Jicooでは私が入社した2021年からQAメンバーによるQAが実施されていました。 当初は何となくQAメンバーが触ってテストを行い問題があればNotionにタスクを起票するという流れで行われていましたが、網羅性というところで限界を感じ2023年では最終的に以下の流れで実施するようにしました。

  1. 開発エンジニアがQA仕様書をGithub Issueに作成 この機能のQA観点をまとめます。

  2. 別のエンジニアがQA仕様書をレビュー こういうところが漏れているよという指摘を行い、よりQA仕様書の精度を上げます

  3. QAメンバーがQAを実施 QA仕様書にあるテストの実施に加えて、QAメンバーも独自の観点で探索テストを実施

QA仕様書を作成する事、そして他エンジニアがレビューする事で精度を上げ、QA漏れが起きづらいQA体制が構築できたと思います。

まとめ

2023年の開発と品質への取り組みを振り返りました。2024年はさらなる開発スピードと品質の向上が目指せるように、さらにAI機能への投資やQA特にE2Eテストを充実させたQA体制を構築していこうと思っています。 それでは今年もお世話になりました。よいお年をお過ごしください!

一緒に開発してくれるメンバーを募集

Jicooはエンジニアを積極採用中ですので、新しい技術を積極的に投資をしていく環境に興味がある方、サービスを企画からガシガシ作っていきたい方は是非ご応募をお願いします!

エンジニア職の話を聞いてみたいという方はこちらからご応募ください。

https://www.wantedly.com/projects/1502574

Share