Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ある開発会社の生存戦略 Developers Summit 2016 FUKUOKA
Search
Ken’ichiro Oyama
September 29, 2016
Business
2
1.2k
ある開発会社の生存戦略 Developers Summit 2016 FUKUOKA
Ken’ichiro Oyama
September 29, 2016
Tweet
Share
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
1
180
Cleanup handling in Go / Go Conference 2024
k1low
6
3.2k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
8.8k
Command-line interface tool design / PHPerKaigi 2024
k1low
8
2.9k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
230
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.3k
APIシナリオテストツールとしてのrunn / 4 API testing tools
k1low
3
1.4k
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
4
5.9k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
9
3k
Other Decks in Business
See All in Business
サーキュレーション会社説明資料
circulation
2
18k
(16枚)組織と集団の違いとは? 組織の「3要素」とは?
nyattx
PRO
1
1.6k
パレットクラウド株式会社 採用ピッチ資料
palettecloud
0
5.7k
XENDOU会社概要
xendou
0
310
SHONAIグループ_コーポレートブック
shonai9107
0
1.4k
STRACT, Inc. Company Deck
stract
1
2.9k
company deck
identify
1
290
ファブリカホールディングス_2025年3月期 第2四半期説明資料
fabrica_com
0
2.8k
ARI会社説明
arisaiyou
0
4.6k
ビジネスの変化に迅速に反応 質・量どちらも追及する 星野リゾートのノーコード戦略
junkokotake
0
320
Mercari-Fact-book_jp
mercari_inc
3
150k
UPSIDER Company Deck
upsider_official
1
81k
Featured
See All Featured
How GitHub (no longer) Works
holman
310
140k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Invisible Side of Design
smashingmag
298
50k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Docker and Python
trallard
40
3.1k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
What's new in Ruby 2.0
geeforr
343
31k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Designing the Hi-DPI Web
ddemaree
280
34k
Transcript
ある開発会社の⽣存戦略 -技術の変化に適応できる企業であるために。そしてこれから- Fusic ⼩⼭健⼀郎 2016.9.26 1 #devsumiB7
Who 2 #devsumiB7
k1LoW Kenʼichiro Oyama @k1LoW Fusic Co.,Ltd. エンジニア
基盤ユニット テックリード 初代新卒 GitHub organizations fukuokarb / dotcake / emacs-jp / etc. awspecというAWS⽤のテストツールを作っています https://github.com/k1LoW/awspec 3 #devsumiB7
Fusic 株式会社Fusic 社員36名、うちエンジニア24名 最近マーケティングチームの動きが活発です 「マーケティング」といいつつ何でもこなす
「Fusicってなんしようと?」を是⾮ご覧くださ い http://fusic.co.jp/doings 受託開発と⾃社Webサービスの2軸 4 #devsumiB7
CM 5 #devsumiB7
#devsumiB7 6
CMおわり 7 #devsumiB7
ある開発会社の⽣存戦略 8 #devsumiB7
ある開発会社のおさらい エンジニア30名弱 プロジェクト規模はだいたい1⼈〜3⼈、多くて 5⼈の開発メンバーと1⼈のテスター Webシステムが多い 受託開発のほうが数は多い
エンジニアはクライアントと直接顔を合わせて 要件定義から運⽤まで主導する 9 #devsumiB7
10年 10 #devsumiB7
10年で社内で⾒かけた技術(⼀部 HTML CSS PHP JavaScript
Ruby CakePHP Ruby on Rails iOS Android Subversion / SVK Git 開発サーバ coLinux VMware Vagrant FTP / SFTP Capistrano Ansible RDBMS NoSQL Socket.IO レンタルサーバ 物理サーバ VPS AWS Docker #devsumiB7 11
技術の種類が多い問題 10年前の技術要素は数える程度 HTMLが書ければ重宝された時代 素のPHPで書いて正しく動けば良かった時代 今は、エンジニアとして働くためだけでも習得 が必要なものが多い
逆に「これさえやっておけばいい」ということもない。次の年には変わ ることも スタンダードの寿命が短い 10年前のHTMLと今のHTMLは違う 求められるレベルも⾼い レスポンス、UI、セキュリティ、etc 12 #devsumiB7
時間や機会は有限 13 #devsumiB7
技術の選択を間違えると死ぬ 14 #devsumiB7
Fusicが選択してきた技術要素 PHP CakePHP Ruby on Rails
iOS / Android AWS VirtualBox (Vagrant) Infrastructure as Code 15 #devsumiB7
うまく選択してきた(つもり 16 #devsumiB7
Fusicは どのように選択をしてきたか 17 #devsumiB7
例えばCakePHP 18 #devsumiB7
#devsumiB7 19
Ruby on Railsに挫折した結果 20 #devsumiB7
例えばAWS 21 #devsumiB7
「絶対に落ちてはならない」 という無茶なありがたいお⾔葉を 期限内に実現しようとした結果 22 #devsumiB7
どちらも あまり良い形での選択ではない 23 #devsumiB7
ただ、選択はしてきました 24 #devsumiB7
致命的な選択ミスも 選択をしない緩やかな死も 今のところ、ない 25 #devsumiB7
Fusicの⽣存戦略 のキーワード 26 #devsumiB7
多様性 27 #devsumiB7
多様性 実は⾔語やフレームワークを固定していない ただ、マジョリティがあるだけ Ruby on RailsやiOS/Android
固定することで⼀時的に開発効率が上がること は理解しているが実施していない 固定すると全滅の確率が上がる 担当するエンジニアに技術要素の決定権を渡している 当然過ぎて、多分誰も意識していない (固定だとエンジニアがおもしろくない) #devsumiB7 28
適者⽣存のための多様性 29 #devsumiB7
適者⽣存 種内のある個体の遺伝しうる形質が最も環境に 適しているなら、その個体より増えた⼦孫は、 その種の中で、より増え広がる確率が⾼くなる。 結果的に現在⽣存している種は、環境に適応し 増え広がることの出来た「最適者」の⼦孫とい うことになる。(Wikipediaより) #devsumiB7 30
Fusicの技術選択 1. 誰かが、どこからか新しい技術を持ってくる そのエンジニアが担当するプロジェクトで価値を出す ため 2. その情報は社内情報共有ツールで共有される 他のエンジニアの選択肢が増える
3. 良いと思った他のエンジニアが別のプロジェクトで採 ⽤する 4. 採⽤数が増えればマジョリティを獲得する。そうでな ければ、マイノリティのまま。 Fusicのプロジェクトの性質やエンジニアの性質により 選択されていく #devsumiB7 31
社内で技術の⽣存競争を起こす 32 #devsumiB7
マジョリティを獲得したもの CakePHP フレームワーク。使いやすくするためにプラグインを50以上作ったがフ レームワークのバージョンアップで全てパー。それでも根強い。リード するエンジニアに世代交代が発⽣。 Vagrant
プロジェクトごとに環境が様々なので重宝。 Ansible サーバ設定のコード化。YAMLでシンプルにかけるので採⽤。 Capistrano デプロイのコード化。PHPでもデプロイはCapistrano。 #devsumiB7 33
今、まさに 各所でマジョリティを狙っているもの Docker CIから導⼊して、社内勉強会で啓蒙しつつ、簡単に使ってもらうための 整備をしている模様 Terraform
⼀部のプロジェクトでは導⼊されたが、まだ知らないエンジニアもいる かも Ridgepole べき等性を保てるマイグレーションツールとして推しているが、本番環 境にRuby環境を整えるのが難 Laravel 好きなエンジニアは多いが、CakePHPよりもレールが緩いのでなかなか 推し進められず #devsumiB7 34
なぜ多様性を保てるのか 35 #devsumiB7
なぜ多様性を保てるのか 各プロジェクトごとで価値最⼤化を⽬指してい るから プロジェクトごとでは常に最適解。会社最適はあとま わし。 あえて新しい技術、あえて枯れた技術
EOLな技術を選択しないように 会社として枷となるルールはできるだけなくす #devsumiB7 36
良いと思う技術選択 ⾃分なりに解釈してプロジェクトに採⽤する トレンドの技術をただそのまま採⽤したらダメ 適⽤は最先端のWebサービス企業から数ヶ⽉から1 年程度遅れているイメージ 時にはもとのアイデアをベースにFusicに適し
た別の実装を作り上げることも 本当に必要な技術分野に集中する プロジェクトごとの最適解を求めることは忘れないよ うに #devsumiB7 37
Fusicがまだ選択していない技術要素 フロントエンド React、Reduxなど まだCSSフレームワークレベルで⼗分なため サーバアカウントの統合管理
LDAP、STNSなど プロジェクトごとでクライアントも要件も異なるため、 縦割りが必要 Windows 38 #devsumiB7
これからも多様性を保つために 39 #devsumiB7
現状の課題 社内へ技術のインプットをするエンジニアが限 られている 今後、さらに多くの技術要素が出現してくる現 状において、全エンジニアの活動が重要になっ てくる インプットが多いほうがアウトプットの精度
も増すはず 多様性を強化したい #devsumiB7 40
エンジニア評価制度 41 #devsumiB7
エンジニア評価制度 スペシャル職位としての”テックリード” 評価指針は「技術⼒」「プロジェクト遂⾏能⼒」「発 信⼒」の3つ 半期ごとの⽴候補及び評価(評価フローは全て公開) 今期はじまったばかり
全てのエンジニアに、技術の⽣存競争に参加してもら うために 「技術の⽣存競争に参加することを評価する」ことを エンジニアに⽰す #devsumiB7 42
特性をもったチーム編成 43 #devsumiB7
チーム再編成 いままで平均値をとった形だったチームを再編成 完全にいびつ それぞれのチームにそれぞれの特性にあったミッショ ンを課している そのなかでより技術のインプットを増やすためのチー
ムとして基盤ユニットが編成されている 技術に特化 チームミッションがはっきりしたことでエンジニアの モチベーションにつながっている #devsumiB7 44
10年 45 #devsumiB7
なぜFusicは開発会社として ⽣き延びてこれたのか 46 #devsumiB7
なぜ(⽣存戦略の⼿法として) 多様性を実現できているのか 47 #devsumiB7
いちエンジニアの視点から 48 #devsumiB7
経営陣2⼈が エンジニア(エンジニアリング)を 信じているから 49 #devsumiB7
気持ちは伝わっている エンジニアを信じている(重要なファクターだと感じ ている)トップと、そうでないトップとでは開発会社 としての成⻑軸はまったく違う(と思う。 多様性の実現にはエンジニアの⾃主性が必要。 エンジニアの⾃主性の実現には、環境や評価制度だけ でなく、⽇頃の会社の雰囲気が重要。
その会社の雰囲気の発端はトップの気持ちではないか。 いちエンジニアが変えられるほど⽢くない #devsumiB7 50
技術選択はボトムアップ 51 #devsumiB7
気持ちだけは やはりトップダウン 52 #devsumiB7
で 53 #devsumiB7
実際のところはどうなんですかね? (聞いたことはない) 54 #devsumiB7
Thank you! 55 Fusicはテクノロジーが 好きなエンジニアを募集しています https://fusic.github.io
56 #devsumiB7