Sansan

  1. 仕様検討

    • 弊社のミッションを実現するべく、プロダクトチームがプロダクトの方針を決定する
    • プロダクトマネージャーが仕様検討を行い、開発チームと共に仕様を決定する
  2. アーキテクチャ・設計

    • 開発チームが技術的な観点で設計・実装する
    • アーキテクチャは、使うべきものを使うということを意識する
  3. 実装

    • 最新の技術だけにとらわれない、その時点でのベストプラクティスを追求した実装を行う
    • 開発ツールはなるべく、最新のものを使用する
    • ソース管理にはGitHub、CIはJenkinsを使用
    • コードレビューはPull Requestで行っており、2人にレビューしてもらい、ApproveされたらコードをMergeする
  4. テスト

    • 開発が完了すると、プロダクトチームとのレビューを繰り返し、機能をブラッシュアップする
    • レビューが通れば、月曜日〜木曜日の間であれば毎日リリースを行う
  5. リリース

  6. 反映

    • どの機能がどれだけ使われていて、それらが営業活動にどのように貢献しているかを測定
    • 測定結果をプロダクトの開発計画や仕様策定に反映

コア技術

  • 開発
    利用言語
    C# 7、JavaScript(jQuery、Bootstrap、LESS等)
    フレームワーク
    .NET Framework 4.6.1(ASP.NET MVC、ASP.NET Web Forms、ASP.NET Web API)
    データベース
    PostgreSQL 9.6、Redis 3.2
  • 管理
    リポジトリ
    Git、GitHub
    プロジェクト
    Pivotal Tracker、YouTrack、Targetprocess、ZenHub等
    CI,テスト
    Jenkins、NUnit
  • インフラ
    インフラ
    AWS(EC2、S3、SQS、DynamoDB、SES、RDS等)
    運営・監視
    Icinga、Munin、NewRelic、Amazon Elasticsearch Service、fluentd、Chef

Eight

  1. 仕様検討

    • 開発者全員参加
    • 実装する機能の理解、大まかな作業スケジュールの決定
  2. 設計

    • 主にUMLを用いて大まかな設計の共通理解を図る
    • 詳細な設計は実装担当を割り振り、実地する
  3. 実装

    • 各担当により作業が進む。ペアプロで取り込む場合もある
    • テストファースト、さらにこまめにコードビューをgithubで行う
    • インフラの変更はChefのレシピとして追加するなども行う
  4. テスト

    • 本番と同等のステージング環境にて最終テスト
    • データ入力システムやスマフォアプリとの連動も確認
    • 問題がなければリリースモジュールへの取り組みを行う
  5. リリース

    • Web:1週間に2〜3回
    • iOS:1〜2週間に1回
    • Android:1週間に1回
  6. 反映

    • リリースによる効果測定を行い、定量評価を実地
    • 結果をチーム全体で共有し、以後の開発計画や仕様、優先順位などを見直す

コア技術

  • 開発
    利用言語
    Ruby、Objective-C、Java
    フレームワーク
    Ruby on Rails、Sinatra
    キャッシュ
    MySQL
  • 管理
    リポジトリ
    Git、GitHub
    プロジェクト
    Pivotal Tracker
    CI,テスト
    Jenkins、RSpec
  • インフラ
    インフラ
    AWS(EC2、S3、SQS、VPC、Route53、Elasticache、RDS、SWF、Cloudwatch、SES、Redshift)
    運営・監視
    Mackerel、CloudForecast、fluentd、Chef、Capistrano