Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
2
230
Cleanup handling in Go / Go Conference 2024
k1low
6
3.4k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
9.7k
Command-line interface tool design / PHPerKaigi 2024
k1low
8
3k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
240
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.5k
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
4
6.2k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
10
3.1k
Other Decks in Business
See All in Business
情報整理ゲーム「野球のポジション当てゲーム カード版」
chibanba1982
PRO
0
740
IHLヘルスケアリーダーシップ研究会16期説明資料
ihlhealthcareleadership
0
730
北海道スバル株式会社 採用資料
recruithokkaidousubaru
0
180
イークラウド会社紹介 ~ひとりひとりの想いをつなぎ、挑戦に力を~
ecrowd
1
2.4k
コンセンサスゲーム「NASAゲーム カード版」
chibanba1982
PRO
0
1.5k
経営シミュレーションゲーム「ペーパータワーforビジネス」
chibanba1982
PRO
0
580
フォロワーシップ、ビジョン共有の重要性を学べる「部課長ゲームオンライン」
chibanba1982
PRO
0
300
10年間の振り返りと抱負 / 10-Year Reflection and Aspirations
toma_sm
0
230
イクシアス株式会社 会社紹介資料
ixyas
0
1.3k
会社案内資料
mkengineering
1
300
comorebi_cultuerdeck_2025
comorebi_tokyo
0
310
ゲーム型ダイバーシティ&インクルージョン研修「バーンガ」
chibanba1982
PRO
0
560
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
GitHub's CSS Performance
jonrohan
1030
460k
Building Applications with DynamoDB
mza
92
6.2k
KATA
mclloyd
29
14k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
It's Worth the Effort
3n
183
28k
Code Review Best Practice
trishagee
65
17k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
GraphQLとの向き合い方2022年版
quramy
44
13k
Being A Developer After 40
akosma
89
590k
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