Sansan
-
仕様検討
- 弊社のミッションを実現するべく、プロダクトチームがプロダクトの方針を決定する
- プロダクトマネージャーが仕様検討を行い、開発チームと共に仕様を決定する
-
アーキテクチャ・設計
- 開発チームが技術的な観点で設計・実装する
- アーキテクチャは、使うべきものを使うということを意識する
-
実装
- 最新の技術だけにとらわれない、その時点でのベストプラクティスを追求した実装を行う
- 開発ツールはなるべく、最新のものを使用する
- ソース管理にはGitHub、CIはJenkinsを使用
- コードレビューはPull Requestで行っており、2人にレビューしてもらい、ApproveされたらコードをMergeする
-
テスト
- 開発が完了すると、プロダクトチームとのレビューを繰り返し、機能をブラッシュアップする
- レビューが通れば、月曜日〜木曜日の間であれば毎日リリースを行う
-
リリース
-
反映
- どの機能がどれだけ使われていて、それらが営業活動にどのように貢献しているかを測定
- 測定結果をプロダクトの開発計画や仕様策定に反映
コア技術
-
開発
- 利用言語
- C# 7、JavaScript(jQuery、Bootstrap、LESS等)、Swift、Kotlin
- フレームワーク
- .NET Framework 4.6.1(ASP.NET MVC、ASP.NET Web Forms、ASP.NET Web API)
- データベース
- PostgreSQL 9.6、ElastiCache
-
管理
- リポジトリ
- Git、GitHub
- プロジェクト
- Pivotal Tracker、YouTrack、Targetprocess、ZenHub等
- CI,テスト
- Jenkins、Bitrise、NUnit
-
インフラ
- インフラ
- AWS(EC2、S3、SQS、DynamoDB、SES、RDS等)
- 運営・監視
- Zabbix、CloudWatch、NewRelic、Amazon Elasticsearch Service、Fluentd、Chef
Eight
-
仕様検討
- 開発者全員参加
- 実装する機能の理解、大まかな作業スケジュールの決定
-
設計
- 主にUMLを用いて大まかな設計の共通理解を図る
- 詳細な設計は実装担当を割り振り、実地する
-
実装
- 各担当により作業が進む。ペアプロで取り込む場合もある
- テストファースト、さらにこまめにコードビューをgithubで行う
- インフラの変更はChefのレシピとして追加するなども行う
-
テスト
- 本番と同等のステージング環境にて最終テスト
- データ入力システムやスマフォアプリとの連動も確認
- 問題がなければリリースモジュールへの取り組みを行う
-
リリース
- Web:1週間に2〜3回
- iOS:1〜2週間に1回
- Android:1週間に1回
-
反映
- リリースによる効果測定を行い、定量評価を実地
- 結果をチーム全体で共有し、以後の開発計画や仕様、優先順位などを見直す
コア技術
-
開発
- 利用言語
- Ruby、JavaScript、Swift、Kotlin
- フレームワーク
- Ruby on Rails, Sinatra, React.js, Babel, Gulp
- データベース
- MySQL
-
管理
- リポジトリ
- Git、GitHub
- プロジェクト
- Zenhub
- CI,テスト
- Jenkins、RSpec、Bitrise
-
インフラ
- インフラ
- AWS(EC2、S3、SQS、VPC、Route53、Elasticache、RDS、SWF、Cloudwatch、SES、Redshift等)
- 運営・監視
- Mackerel、fluentd、Chef、Capistrano、NewRelic、Terraform