SlideShare a Scribd company logo
Challenge for Startup's CTO from Big company
2017 October 28
https:/yourmystar.jp/
自己紹介
星 永亮 (ほし ながあき)
• 2010年4月 楽天株式会社入社
• 2013年 Webアプリケーションエンジニア
• 2014年 DBA
• 2015年 テクニカルディレクター
• 2017年3月〜 ユアマイスター株式会社入社
楽天カード時代
• プログラミングほぼ未経験で入社→半年の開発研修
• フロントがPHP、バックエンドがJavaのC向けWebアプリ
• メジャーバージョンアップに際して、DBAにコンバート
• MySQLからOracleへのDB移行がハイライト
• 複数事業入り混じった案件で、PL&エンジニアで社内MVP
• サービス運用担当者の時期には、先輩に教わりながら、いろん
なツールを使って遊んでた
新サービス開発室時代
• プログラミングすることはなくなった
• プロダクトマネージメントがメイン
• 予算策定、人材調達、開発リソース調整、要件の策定・・・
• 事業担当者が自分を含めて2名(Project 6)
• 社長室直下
• ”幕の内弁当恐怖症”
• 要件詰め込みすぎ
• 手段が目的化
ユアマイスター株式会社とは
創業1年のスタートアップです。日本一「応援される」会社を目指してます。
会社名 ユアマイスター株式会社(Your mystar, Inc)
本社事務所 東京都渋谷区桜丘町3-2 第3野口ビル201号室
設立 2016年8月8日
資本金 1億500万円
株主 星野貴之 他
代表者 代表取締役社長 星野貴之
従業員数 社員13名 インターン25名
Maintenance
House
Cleaning
Repair Cleaning Remake Exchange
大切なものを、もっと大切に
ハッピートライアングル
Partner User
Yourmystar
お客さんがそもそも喜ばないことはやらない。
お客さんが喜んでもパートナーさんが苦しいならやらない。
お客さんもパートナーさんも喜んでも僕たちが幸せにならないことはやらない。
3つの点、すべてがハッピーであることが最低条件
運営サービス
サービスEC総合プラットフォーム「あなたのマイスター」と
大切なものをもっと大切にしたくなるメディア「RELIVERS(リライバーズ)」の運営を行っています。
大切なものをもっと大切にしたくなるメディアサービスEC総合プラットフォーム
https://yourmystar.jp/ https://yourmystar.jp/relivers/
サービスEC総合プラットフォーム
サービス登録サービス検索
サービス予約
メッセージやりとりメッセージやりとり
サービス提供
支払い
レビュー投稿
or
サービス完了報告
①さがす
②予約する
③サービス実施
④サービス後サ
ポート
サービス予約確定
プロお客様
今あなたのチームには何人いますか?
ユアマイスター入社時、僕らは
社員エンジニア数
0
どんな状況だったか
2016年8月の創業当時から、関わってます。
2ヶ月でリリースという短納期だったため、CakePHPを採用しました。リリース後も
、ユアマイスターさんのエンジニアが入るまで、しっかり機能開発と運用します!(半常駐)業務委託
エンジニア
マーケティング
担当社員
もともとマーケティングが本業ですが、社内にエンジニアがいないので開発案件
の管理をやってます。
フロントのHTMLやCSSなら書けるので、画面系は自分でも実装しちゃいます。
学生エンジニア
インターン
プログラミングが大好きで、遅くまで没頭することもしばしばあります。
自分もいつか起業したいと思ってるので、それまではユアマイスターのサービス
開発、頑張ります。
まずい。
もちろん、CTOなんてやったことなかっ
たので何をすればいいか考えた。
採用?
開発?
組織マネージメント?
技術選定?
プロダクトマネージメント?
チームビルディング?
技術力育成?
ブランディング? 技術的負債の返済?
まだ十分にメンバーはいないから、
開発をする上での無駄は増える前に
解決しておこう。
当時の結論
僕がバリバリコーディングするより
エンジニアたちが働きやすい環境を
まずは
技術スタック(2017年3月)
Amazon
EC2
Amazon
S3
インフラ
アプリケーション
デザイン ローカル開発
検索
CI
ミドルウェア
コミュニケーション
解析
Web接客外部連携
SEOコード管理 監視
CMS
技術スタック(現在)
Amazon
EC2
Amazon
S3
インフラ
アプリケーション
ElastiCache
デザイン ローカル開発
検索
CI
Amazon
RDS
ミドルウェア
コミュニケーション
解析
Web接客外部連携
SEOコード管理 監視
CMS
AWSやElasticsearchでの性能改善
ストーリーは巷に溢れてる。
ちっちゃなチームで、最速の開発をする
ためにした工夫のお話をしよう。
当時はどんな流れでやっていたかとい
うと、
当時の開発フロー
Amazon EC2
develop branch
master branch
local branch
本番
STG
Pull
Request
local branch
Pull
Request
Push
手動リリース
developからブランチ作成
手動リリース
各工程に改善点を発見
Amazon EC2
develop branch
master branch
local branch
本番
STG
Pull
Request
local branch
Pull
Request
Push
手動リリース
developからブランチ作成
手動リリース
課題
その1
課題
その2
課題
その4
課題
その3
開発スピードアップのための課題 その1
検証環境にdeployするたびに、いちいちサーバーにログインし、
GitHubからソースコードを最新化していて属人化、対応時間がチリツモ。
1日何回デプロイすればいいの!!
解決策
CIツール入れて人間は楽しよう。
PHP Unitでテストも書いてるんだから、
それも回しておこう。
(本当は順番逆ですが)
Circle CI
CIツールです。Jenkinsのように、自前でサーバにインストールする必要がないので、
登録するだけで気軽に使えます。GitHubのアカウント連携するだけで即効です。
circle.yml
YAML形式でビルド前、ビルド中、ビルド後の動きを事細かに定義できる。
ブランチによって挙動を変えられるのも嬉しい。
machine:
timezone: Asia/Tokyo
hosts:
server11111: 111.111.111.111
dependencies:
override:
- composer install --no-interaction
post:
- #DB作成、ユーザー作成、権限付与を行う
- bin/cake migrations migrate
test:
override:
- mkdir -p $CIRCLE_TEST_REPORTS/phpunit
- vendor/bin/phpunit --configuration phpunit.xml.dist --log-junit $CIRCLE_TEST_REPORTS/phpunit/junit.xml
deployment:
staging:
branch: develop
commands:
- ssh hoge@server11111 /home/hoge/bin/deploy.sh
<circle.ymlのイメージ>
開発フロー途中経過
Amazon EC2
develop branch
master branch
local branch
unit test
deploy
本番
STG
Pull
Request
local branch
Pull
Request
Push
Deploy
手動リリース
developからブランチ作成
Trigger
開発スピードアップのための課題 その2
検証環境用ブランチへのPull Requestのつもりで、誤ってmasterにPull Requestを作成。
そして、気づかずにそのままmergeからの、本番障害。
解決策
プルリクエストを作る手順を自動化する
。エンジニアがするのはSlackにブランチ
名を呟くだけ。
にしたい。
zapier
コードを書かなくても、選んで組み合わせるだけで、
複数のコミュニケーションツールを組み合わせることができるサービス。
参考:
https://zapier.com/app/explore
zapier
設定は5分くらいで終わり、あっという間にミスがない運用ルールを構築できる。
Slack × GitHub 以外にもたくさん選択肢がある。
開発フロー途中経過
Amazon EC2
develop branch
master branch
local branch
unit test
deploy
本番
STG
Pull
Request
local branch
Pull
Request
Push
Deploy
手動リリース
developからブランチ作成
Trigger
開発スピードアップのための課題 その3
4名のインターンを受け入れていたが、知識やスキルはバラバラ。
インターン1人ひとりのソースコードレビューの負荷がめちゃくちゃ重い。
• 少人数のチームでは、インターンに形式的な研修を提供するのは難しい
• コードレビューの中にも、視力検査レベルのものも含まれている悲しみ
• 必要最低限のPHPのコード規約を守るレベルにしてからレビューに出して欲しい
解決策
静的コード解析を入れよう。
しかも、ローカルが重くなるのは嫌だか
ら、サーバーサイドでやってくれる何か
をPull Request単位とかで。
Side CI
参考:
https://sideci.com/ja
Side CIによる静的コード解析
PHPはCodesniferとPHPMDを適用している。
Pull Requestに指摘行にコメントしてくれるので、レビュー前にコード品質を上げられる。
開発フロー途中経過
Amazon EC2
develop branch
master branch
local branch
unit test
deploy
本番
STG
Pull
Request
local branch
Pull
Request
Push
Trigger
Deploy
手動リリース
developからブランチ作成
lint
Trigger
開発スピードアップのための課題 その4
インターンがハマっててもなかなかコミュニケーションが取れずに、
必要以上に調査や試行錯誤に時間をかけてしまう。
石川(社員)
高梨(インターン)
自分の開発に集中してるうちに、インターン
がハマってることに気づけない!
社員のみんなが忙しそうにしていて、いちい
ち質問するのは気が引ける!
(ググればわかりそうなレベルだし・・・)
解決策
#timesチャンネルを作り、
ググったキーワードを都度
Slackに書き残してみよう。
試しにやってみたら、劇的に声をかけやすくなった。
jQueryの数字の処理でハマってる
画面をスクロールさせようとしてる
横に並べて表示しようとしてる
現在の開発フロー
Amazon EC2
develop branch
master branch
local branch
unit test
deploy
本番
STG
Pull
Request
local branch
Pull
Request
Push
Trigger
Deploy
まだ・・・
手動リリース
developからブランチ作成
lint
Trigger
deploy
少しずつの改善を積み重ね、
得られたもの。
人間がすべき仕事に少しずつ
注力できるようになることで、
一人当たりのスピード。
チームとしてのスピード。
会社の成長速度に追い越されぬよう
開発が引っ張れる体制を目指して。
Challenge for statup's cto from big company nagaaki hoshi
質疑応答

More Related Content

PDF
What i learned from translation of the sre ryuji tamagawa
PPTX
hbstudy 74 Site Reliability Engineering
PPTX
越境ネイティブの育てかた
PDF
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
PDF
最速で価値を提供する
PDF
NuxtJS + SSRで作ったGREE Tech Conference 2020
PPTX
現場で役立つシステム設計の原則への感謝
PPTX
「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -
What i learned from translation of the sre ryuji tamagawa
hbstudy 74 Site Reliability Engineering
越境ネイティブの育てかた
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
最速で価値を提供する
NuxtJS + SSRで作ったGREE Tech Conference 2020
現場で役立つシステム設計の原則への感謝
「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -

What's hot (16)

PDF
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
PPTX
プロダクトマネージャーはフレームワークを作れ
PPTX
Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意
PPTX
ゼロから始めるオープンソース生活
PDF
競合とは何か -学ぶとところ・学ばないところ-
PPTX
Jaws days 2019_pipeline_is_god
PDF
ネイティブゲーム開発におけるこれからの品質保証
PDF
高卒でIT企業に入った体験談
PPTX
n-cafe
PPTX
PowerApps management guide
PDF
20190306 sd#3 kitazaki_t0
PDF
初心者のためのWeb標準技術
PPTX
JDBCで繋がるSaas連携
PDF
これから始めるSpringのwebアプリケーション
PDF
モバイルゲーム。移管と運営のエンジニア
PPTX
javascriptの基礎
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
プロダクトマネージャーはフレームワークを作れ
Saga Smart Center - Excelで完結!マイクロソフト流データサイエンスの極意
ゼロから始めるオープンソース生活
競合とは何か -学ぶとところ・学ばないところ-
Jaws days 2019_pipeline_is_god
ネイティブゲーム開発におけるこれからの品質保証
高卒でIT企業に入った体験談
n-cafe
PowerApps management guide
20190306 sd#3 kitazaki_t0
初心者のためのWeb標準技術
JDBCで繋がるSaas連携
これから始めるSpringのwebアプリケーション
モバイルゲーム。移管と運営のエンジニア
javascriptの基礎
Ad

Viewers also liked (20)

PDF
時間がないといって、オペレーション改善を怠るな~オペレーション改善奮闘記~ Emi muroya
PDF
AI based language learning tools
PDF
はてなのインフラの歴史、そしてMackerelへ至る道とこれから
PDF
WannaEat: A computer vision-based, multi-platform restaurant lookup app
PDF
Rakutenとsreと私 yanagimoto koichi
PDF
Rakuten Technology Conference 2017 A Distributed SQL Database For Data Analy...
PDF
Human-Centric Machine Learning
PDF
Predictions and Hard Problems With AI
PDF
Rakuten app productivity initiative for developers marcus saw
PDF
Don't manage too hard!
PDF
One Hundred Languages
PDF
Life of an enginner in rakuten osaka diarmaid lindsay
PDF
Value Delivery through RakutenBig Data Intelligence Ecosystem and Technology
PDF
AI AND FUNDAMENTAL GAME TECHNOLOGIESIN FINAL FANTASY XV
PDF
COBOL to Apache Spark
PDF
トラブルシューティングのあれこれ Yoshihiko kamata
PDF
cloudera Apache Kudu Updatable Analytical Storage for Modern Data Platform
PDF
Java ee7 with apache spark for the world's largest credit card core systems, ...
PDF
RTC 2017 - The Power of Parallelism
PDF
Realizing AI Conversational Bot
時間がないといって、オペレーション改善を怠るな~オペレーション改善奮闘記~ Emi muroya
AI based language learning tools
はてなのインフラの歴史、そしてMackerelへ至る道とこれから
WannaEat: A computer vision-based, multi-platform restaurant lookup app
Rakutenとsreと私 yanagimoto koichi
Rakuten Technology Conference 2017 A Distributed SQL Database For Data Analy...
Human-Centric Machine Learning
Predictions and Hard Problems With AI
Rakuten app productivity initiative for developers marcus saw
Don't manage too hard!
One Hundred Languages
Life of an enginner in rakuten osaka diarmaid lindsay
Value Delivery through RakutenBig Data Intelligence Ecosystem and Technology
AI AND FUNDAMENTAL GAME TECHNOLOGIESIN FINAL FANTASY XV
COBOL to Apache Spark
トラブルシューティングのあれこれ Yoshihiko kamata
cloudera Apache Kudu Updatable Analytical Storage for Modern Data Platform
Java ee7 with apache spark for the world's largest credit card core systems, ...
RTC 2017 - The Power of Parallelism
Realizing AI Conversational Bot
Ad

Similar to Challenge for statup's cto from big company nagaaki hoshi (20)

PDF
顧客の要望を消化する 開発からの脱却 B2B SaaS Engineer Meetup -sharing issue- #2
PDF
事業成長にコミットするエンジニア組織への道のり
PDF
20231019 Notion Labs Japan × エルボーズ コラボ勉強会
PDF
楽天エンジニアライフ
PDF
Dataflow(python)を触った所感
PDF
Viva Connections 拡張機能入門
PDF
リクルートにおけるPaaS活用事例
PDF
NoOpsへの挑戦
PPTX
Xpjug lt-20210918
PDF
石狩での プログラミング教育支援 ~2年目の成果~
PDF
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
PDF
合同会社エンジニアリングマネージメント会社説明資料 2025-05 Engineering Management LLC
PDF
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
PDF
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
PDF
CTOの考えるエンジニアマネジメント2
PPTX
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
PDF
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
PDF
Engineers can change the world ~ "世界" で活躍するエンジニアになるために
PDF
2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話
PDF
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
顧客の要望を消化する 開発からの脱却 B2B SaaS Engineer Meetup -sharing issue- #2
事業成長にコミットするエンジニア組織への道のり
20231019 Notion Labs Japan × エルボーズ コラボ勉強会
楽天エンジニアライフ
Dataflow(python)を触った所感
Viva Connections 拡張機能入門
リクルートにおけるPaaS活用事例
NoOpsへの挑戦
Xpjug lt-20210918
石狩での プログラミング教育支援 ~2年目の成果~
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
合同会社エンジニアリングマネージメント会社説明資料 2025-05 Engineering Management LLC
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
CTOの考えるエンジニアマネジメント2
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Engineers can change the world ~ "世界" で活躍するエンジニアになるために
2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」

More from Rakuten Group, Inc. (20)

PDF
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
PPTX
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
PDF
楽天における安全な秘匿情報管理への道のり
PDF
What Makes Software Green?
PDF
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
PDF
DataSkillCultureを浸透させる楽天の取り組み
PDF
大規模なリアルタイム監視の導入と展開
PDF
楽天における大規模データベースの運用
PDF
楽天サービスを支えるネットワークインフラストラクチャー
PDF
楽天の規模とクラウドプラットフォーム統括部の役割
PDF
Rakuten Services and Infrastructure Team.pdf
PDF
The Data Platform Administration Handling the 100 PB.pdf
PDF
Supporting Internal Customers as Technical Account Managers.pdf
PDF
Making Cloud Native CI_CD Services.pdf
PDF
How We Defined Our Own Cloud.pdf
PDF
Travel & Leisure Platform Department's tech info
PDF
Travel & Leisure Platform Department's tech info
PDF
OWASPTop10_Introduction
PDF
Introduction of GORA API Group technology
PDF
100PBを越えるデータプラットフォームの実情
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
楽天における安全な秘匿情報管理への道のり
What Makes Software Green?
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
DataSkillCultureを浸透させる楽天の取り組み
大規模なリアルタイム監視の導入と展開
楽天における大規模データベースの運用
楽天サービスを支えるネットワークインフラストラクチャー
楽天の規模とクラウドプラットフォーム統括部の役割
Rakuten Services and Infrastructure Team.pdf
The Data Platform Administration Handling the 100 PB.pdf
Supporting Internal Customers as Technical Account Managers.pdf
Making Cloud Native CI_CD Services.pdf
How We Defined Our Own Cloud.pdf
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech info
OWASPTop10_Introduction
Introduction of GORA API Group technology
100PBを越えるデータプラットフォームの実情

Challenge for statup's cto from big company nagaaki hoshi