Upgrade to Pro — share decks privately, control downloads, hide ads and more …

弊社の開発体験の良いところは?メンバーに訊いてみた!

meijin
November 14, 2023

 弊社の開発体験の良いところは?メンバーに訊いてみた!

meijin

November 14, 2023
Tweet

More Decks by meijin

Other Decks in Programming

Transcript

  1. 自己紹介 名人 Twitter(X): 名人|マナリンクCTO Zenn: https://zenn.dev/meijin 株式会社NoSchool CTO オンライン家庭教師マナリンク(https://manalink.jp/) 個人開発

    テストメーカー(https://test-maker.app/) 好きな言語はTypeScript 、好きなLighthouse のメトリクスはCLS 趣味 将棋☗、カメラ📸、ラム酒🥃、個人開発💻、筋トレ💪、高校野球観戦⚾
  2. 弊社の概要 株式会社NoSchool オンライン家庭教師サービス「マナリン ク」を開発・運営 2020 年サービス提供開始のスタートアップ 現在全社員10 名超、エンジニアは4 名 現状のメンバーは特定技術領域に特化しつ

    つフルスタックに開発もできるT 字型なスキ ルセット 重要なIssue :「少人数でサービスのすべて を支えつつ事業を成長させるにあたって、 どういった制度や文化をもって開発体験を 高めていくか」
  3. 仕組化タスク 株式会社NoSchool の行動指針として「仕組み化/ 自動化を推し進める」がある 月あたり3 営業日を使って、仕組み化/ 自動化案を社員自ら発案して実践する「仕組化タスク」制度がある ※ エンジニア以外のメンバーもZapier やSlack

    ワークフローなどを使った自動化に取り組んでいます 例 PHPStan を導入しLevel1 から6 まで徐々に上げることで、コードの最低品質を揃える仕組み ローカル環境で全テストを並列化しつつ高速に実行するmake test コマンドの作成 Scaffdog を使った定型コンポーネントの自動生成 Sentry for Laravel の導入 今後こんなことやりたい ベーシックなインフラ構成のCDK 化 テストカバレッジのCI での監視
  4. 工数的に許容できる範囲で品質維持 マナリンクでの開発フローにおける品質維持のための最低限のルール ソースレビューだけでなく開発中の各段階で相談できる枠組み(相談という行為に名前をつけて人に 頼みやすくしている) 調査報告 API 設計レビュー 細分化レビュー 設計レビュー デイリースクラム※

    後述 ソースレビュー ※ 全部必須ではなく、開発者の判断または施策開始時に必要なレビューを擦り合わせ テスティング 自動テスト:API 単位テストを必須、それ以下の粒度は任意 手動テスト:第3 者による探索的テストと、企画者によるユーザー体験チェックを実施
  5. 週に1 回仕様定例を実施 週に1 回固定で、開発チームとCEO で定例MTG を実施しています 内容は着手中の開発施策の仕様に対して、疑問や改善点の提案です 原則、最初に決めた仕様を何があっても変えませんといったことはなく、開発を進めていく途中である 程度柔軟に変えていくこともあります 納期がN

    月N 日と固定で決まっていることも多くないので、大抵の施策は要件の調整とリリース日の調 整も同時にやります 開発に着手してから見えてくるものも多いですが、いちいちMTG のセットをしているとキリがないしま あ良いや、となりがち 固定で週1 入れることで、日程調整が面倒といった不満を減らします(もちろん急ぎの相談などは社内で 捕まえて相談することもあります)
  6. フロントエンドのコンポーネント設計が固まってい ないので我流になりがち やっていること Global State を使わず、Context で乗り切れるところは乗り切る 無駄なuseState やuseEffect 警察

    feature ベースのディレクトリ構成 課題 フロントエンドがバックエンドほど綺麗にレイヤー分けできていない 結局Form コンポーネントはでかい 1 ファイルだけではないがとはいえ数ファイルでしか使われない共通モジュールの置き場所難しい問題 どの粒度を1feature とみなすか(DDD でいう境界づけられたコンテキスト)の策定基準が曖昧 一緒に取り組んでいただける方、大募集です!
  7. Nuxt が移行しきれずに残っている画面の開発が大変 創業期はNuxt で開発していたが、あとからReact Native アプリをリリースした関係で、Web フロントを Vue で書くのが辛くなった 2023

    年11 月現在 Next 製ページ:60 ページ Nuxt 製ページ:110 ページ 高頻度でメンテナンスするページはだいたい施策の実装のついでに移行しているが、逆に言えば低頻度で メンテするページはNuxt のままであることが多い また、パッと思い浮かぶ範囲で数画面ほど、ラスボスみたいな画面があってなかなか移行できていない チャット機能がある、WYSIWYG エディタがある、UI の種類が妙に多いフォームがある、外部サービ スのスクリプトを埋めている、など 高速で移行を進めるための基底コンポーネントの整備や、ラスボス画面の移行に挑みたい方、大募集です!