プロダクト開発について
技術で文化を変える
GitHubでソースコードを共有したり、Figmaでブラウザ上でデザイン設計を行ったりと、オンラインでのコラボレーションが当たり前になったのは、ここ10数年ほどのことです。それ以前は、コードのパッチをメールやIRCで送信し、確認を求めたり、デザインファイルをバージョン管理するのが一般的でした。当時はそれが「当たり前」の開発環境だったのです。
しかし、技術の進化とともに革新的なサービスが次々と登場し、開発環境やフローの常識は大きく変わりました。そして、その変化は今も続いています。
私たちは、昨日までの「当たり前」を新しい「常識」に変える変化を生み出し、それをアップデートし続けることに挑戦しています。
技術の力で開発文化そのものを進化させる。
それが、私たちプロダクト開発チームの掲げるミッションです。
取締役 Chief Product Officer
多田 雅斗
Culture 開発カルチャー
動くものを先に作る
フロー効率を重視し、プロダクトの仮説検証サイクルを高速で回すため、バックログ管理を徹底しています。社内でのデモ会やお客様からのフィードバックを開発プロセスに組み込み、常に「価値提供」を軸にプロダクト開発を進めています。
開発力の係数を高める
目先のタスクに追われると、中長期的な仕組みづくりやリファクタリングが後回しになりがちです。私たちは、CI/CDの整備を積極的に進めるとともに、機能レベルでのDesign Docを活用した開発を意識し、チーム全体のパフォーマンスを最大化する仕組みづくりに取り組んでいます。
コミュケーションを武器にする
GitHubのコメントやSlackのメッセージなど、フルリモート開発では多くのやり取りがテキスト情報として記録されます。また、オンラインでの「通りがかり」のような気軽なコミュニケーションを可能にするハドル機能など、便利なツールも整備されています。このような環境の中で、同期的なやり取りと非同期的なやり取りを意識し、効率よく使い分けることが「正確かつ高速な開発」を実現する鍵となります。
Development Environment 開発環境
フルリモートワーク
当社のプロダクト開発部では、オフィスに出社する必要のないフルリモートワークを採用しています。これに加え、Google MeetやSlackのハドル機能などを活用し、コミュニケーションの同期・非同期をスムーズに保つ仕組みを推進しています。
また、開発者が快適かつ効率的に作業できるよう、外付けモニターやワイヤレスヘッドフォンなどの設備を支援し、ご自宅での開発環境を整えるサポートも行っています。これにより、柔軟で生産性の高い働き方を実現しています。
DFTの推進
「ピープルウェア」で提唱されている開発者の集中時間を確保する考え方を取り入れ、DFT(Development Focus Time)を導入しています。定例ミーティングは午前中に集約し、午後は効率的で高品質なコード開発や、クリエイティブな制作に集中できるまとまった時間を設けています。
また、オンラインでの雑談が自然に生まれる仕組みも設計し、気軽なコミュニケーションが取れる環境を整備しています。これにより、集中とリラックスのバランスを保ちながら、チーム全体の生産性を高めています。
GitHub Copilot 全員配布
GitHub社が提供する「GitHub Copilot for Business」を全ての開発者に導入し、プルリクエストの作成や既存コードの解析・改善提案など、幅広い業務に活用しています。AIが開発プロセスをサポートすることで、生産性を向上させると同時に、メンタルストレスの軽減やパフォーマンスの最大化にも貢献しています。
私たちは、AIテクノロジーを開発する企業として、まず自分たちがそのメリットを実感することが重要だと考えています。今後も、開発者がより良い成果を生み出せるよう、さまざまなAIツールを積極的に採用していきます。
CI/CDファースト
属人性や手間のかかる作業(トイル)を減らすため、開発フローの自動化に積極的に取り組んでいます。新たに開発ガイドラインを策定する際には、まず「このルールはCIでチェック可能か?」を最初に考え、その実現に必要な実装コストや将来的なメンテナンス性を考慮しながら整備を進めています。
こうした取り組みを通じて、効率的で持続可能な開発環境の構築を目指しています。
現場主導のツール採用主義
トップダウンではなく、開発メンバーからの提案を積極的に取り入れる形で、Chromatic、Vercel、Cloudflare、Astroなどのサービスや開発ツールを導入しています。これにより、現場のニーズに即したツール選定が可能となり、スピーディに検証・展開・導入評価を行っています。
これらの取り組みは、開発業務の生産性や効率を向上させ、プロダクト開発の根幹である「価値創造」により多くの時間を割ける環境を整えることを目的としています。このようにして、事業への貢献を高める開発体制を築いています。
認知負荷の削減
読みやすく理解しやすい技術文書を残すことを重視し、短期的な意思決定と長期的な振り返りを継続的に行っています。また、日々のコードレビューでは、技術的な指摘だけでなく、「他の開発者が意図を正しく理解できるか」という点にも重点を置いています。
これらの取り組みを通じて、チーム全体の知識共有を円滑にし、開発の質と効率を高めています。
Development cycle プロダクト開発の進め方
開発スプリントの流れ
開発サイクルは「2週間のスプリント」を基準としたスクラム開発を行っています。
「Dev Sync」について
毎週金曜日の夕方に開催している開発勉強会です。さまざまなトピックに対して、開発者のスキルアップを目的として開催しています。
「Dev Sync」の具体例
- Quick Hacks
- 1時間で全員参加のプチハッカソン
- 技術選定
レビュー会 - 大きな意思決定をみんなでやる
- なんでも
モブプロ - ネタ持ち込みでコーディング
開発フロー
nocoの開発フローで特徴的な点は、開発に着手する前にFigmaでリリースを想定したモックアップを作成する点です。
まず、プロダクトオーナーやプロダクトマネージャー、場合によっては機能を提案した開発者がデザイナーと共に「リリースレベルのUI」を作成します。この段階で、顧客やビジネスチームを交え、期待する効果が得られるかを検証します。このフェイズを通過した案件は、開発チームに引き渡され、スクラム開発のバックログに組み込まれます。
開発が80%程度進んだ段階では、ビジネス部門向けに「ビジネスデモ会」を実施し、UXが意図通りになっているかをチーム全体でレビューします。その後、必要に応じて修正を行い、QAを経たものがリリースフローに進みます。
リリース後はKPIをチェックして、想定とのギャップを測定します。また、顧客からのフィードバックをもとに再修正を行うか、新たな案件として次のサイクルに組み込みます。これらのプロセスを通じて、より良いプロダクトを継続的に提供しています。
技術スタック、使用ツール
- フロントエンド
- TypeScript、React(Server Componentsあり)、Next.js(App Router)、Storybook、OpenAPI+Orval、TanStack Query、MUI、Tailwind、shadcn/ui
- バックエンド
- Ruby on Rails(API mode)
- インフラ
- AWS(ECS、Lambda、S3など)、Cloudflare
- プロビジョニング
- Terraform
- 検索・AI
- Algolia、ChatGPT
- 決済
- Stripe
- モニタリング
- Sentry
- DB
- PostgreSQL
- CI/CD
- GitHub Actions
- プロジェクト管理
- GitHub
- UI デザイン
- Figma
- コミュニケーション
- Slack、Notion、FigJam、Google Sheets
- その他業務ツール
- Google Workspace、1Password
Challenges 私たちのチャレンジ
AIをシステムに落とし込む
AIの応答性や正確さは、従来とは異なる新しいUX(ユーザーエクスペリエンス)を必要とします。そのため、従来の発想にとらわれず、直感的で使いやすいUXを模索しながら構築することが求められます。
私たちは、このプロセスを通じて「AIを活用したUXのデファクトスタンダード」を生み出すことを目指しています。革新的なUX設計に挑戦し、AI技術をより多くの人にとって身近で便利なものにするため、開発を進めています。
世界中のトラフィックを捌く
私たちが現在開発している ヘルプドッグは、世界展開を視野に入れています。その実現のため、エッジインフラの整備や多言語対応、Core Web Vitalsやアクセシビリティ基準への対応など、最新の技術を駆使してさまざまな課題に取り組んでいます。
これらの取り組みを通じて、世界中のユーザーが快適に利用できるプロダクトを提供し、グローバルな顧客体験を支える基盤を構築していきます。
型の恩恵を受ける
私たちは、数年前からフロントエンドのTypeScript化を進め、安全性と保守性の向上に取り組んできました。現在、バックエンドにおいても、既存のRubyベースのコードを型安全な言語に移行する計画を進めています。
この移行プロセスでは、より安全で効率的な仕組みをゼロから設計し、実装していく必要があります。これにより、信頼性の高いシステムを構築し、より良いプロダクト体験を提供していきます。
Skills 求めるもの
- 職種共通
- CI/CD の重要性理解
- ChatGPTや話題の新ツールなどをキャッチアップし、常に検証しチームへの導入を検討できる貪欲さ
- ソフトスキル
- 読み手の認知負荷の少ない技術文書作成能力
- 使いやすさを意識したプロダクト設計への参画意欲
- 異職種メンバーとのコミュニケーション能力
- 人物像
- コミュニケーションはチーム開発で最重要であると同時にコストであると認識し、効率的なプロダクト開発のためにはそれを改善し続けないといけないと考えるひと
- 新しい技術をキャッチアップするだけでなく、実際に業務に活かしたいと思うひと
- 問題の根本原因を理解してから解決したいひと
- 既存の文献・ホワイトペーパー・論文などをキャッチアップし、守破離を意識して設計できるひと
- 経験主義に立脚した高速な試行錯誤に興味あるひと
Jobs 募集一覧
nocoプロダクト開発ブログ
プロダクト設計、デザインUI/UX、テクノロジーについて 記事を発信するブログです。