SlideShare a Scribd company logo
1 of 20
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
- アンラーニング -
たのしい社内SE業と
アジャイル
2015/09/12 XP祭り2015
渋川よしき
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
お前だれよ?
 社内SE歴 10年超
⁃ ホンダだったりDeNAだったり栃木だった
り東京だったりサンフランシスコだったり
 いちおう、XPユーザグループ設立準備委員会か
らのメンバーです
渋川 よしき
 プログラミング
 C++とかPythonとかGolangとかJavaScriptとか
 本
 つまみぐい勉強法、アート・オブ・コミュニティ(翻訳)、
Mobageを支える技術、オブジェクト指向JavaScript(翻訳)、
ポモドーロ・テクニック入門(翻訳)、etc
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
新書出ましたよ!
 JavaScriptの、最速クライアント用MVCフレームワークの本です!
⁃ 速いのが好きな人や、変化が多いブラウザ周辺技術に疲れた人に
オススメ
 電子書籍のみです
 表紙は黒ムツの仲間
⁃ 南オセアニアの深海魚
⁃ 最大75cm
⁃ 確認された再高齢は
100歳を超えるとか
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
今日のお話
 アジャイル的な社内SE業務の進め方
⁃ 10%ではなくて、10倍、100倍の業務改善を行う方法
⁃ レイヤーとしては、計画ゲームとかプロダクトオーナーとか
そのあたり
 俺のXP
⁃ XPの本を読んでも、アジャイルの本を読んでも、どのようなイン
スタンスが生成されるかは人によって異なる(午前の角さんのお話
にあったように)
⁃ 僕の中でできあがったインスタンスのお話
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
事例
 ゲームのマスターデータのデプロイツールのリプレース
⁃ 第6回DeNAゲーム開発勉強会で紹介したもの
⁃ 入出力フォーマット(UIとなるツール)は変更せずに、
アーキテクチャは大幅変更して100倍の高速化を実現
 他にもいろいろやっているけど、今のところ外部に出している情報は
これぐらい(そのうちもっと出したい)
http://www.slideshare.net/dena_study/final-fantasy-record-keeper
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
アジャイルと社内開発業務
 日本で話題になるのはアジャイルと契約が多い
⁃ 規模が大きくなるとシステムインテグレータ的な
ソフトウェア開発が多い
⁃ ユーザ企業はソフトウェア開発部門はあまり持っていない
 社内開発業務の話はそこまで話題になっていない?
⁃ XPが生まれたプロジェクトとして有名なクライスラーの総合報酬
プロジェクト(C3)は社内開発案件
⁃ 社内開発とアジャイルは相性が良い
→トートロジー的
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
社内SE業
 開発者数は極めて少ない
⁃ 社内の位置づけ的には利益を生まないコストセンター
⁃ 戦略的なツール・ミドルウェア開発以外は少人数
(1人)で短期決戦ということも多い
⁃ フルスタック(ワンオペ)エンジニア
 営業活動大事
⁃ 自分で探す
• ブランディング大事。「この分野なら俺に聞け!」
• 社内勉強会で発表する
⁃ 上司の信用貯金をかりる
• 他の部署の困り事に対して「お前に任せる」と仕事を振ってもらう
• 仕事のやり方を他の部署の人に変えてもらうには信用がないと無理
• 上司から信用貯金の前借りでレバレッジを利かす
• 信用借金はきちんと返す
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
社内SE業務のジレンマ
 社内SEだから業務プロセスに合わせたシステムを手作りできる?
⁃ そんなことはない
⁃ 人手が豊富じゃない。いつまでメンテの工数が捻出できるか
分からない。
⁃ 圧倒的なメリットが無ければ、社内専用ツールとかミドルウェアと
かライブラリとかを使いたくない人が多い
(使う人のキャリアプランにとってマイナス)
 いかに業務プロセス側を動かしていくか?
⁃ これをうまく(ストレスなく、リスクなく)やっていくのが大事
 ユーザ事情は最大限勘案する
⁃ ユーザの仕事のスケジュールを見て投入タイミングを決める
⁃ リリース時期が合わずに1月半に渡ってブランチをメンテし続けた
ことも
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
アジャイルとMoving Target
 なぜターゲットは動くのか?
⁃ そもそも人間は未来予測が苦手
• 現物を見てコメントする方が圧倒的に楽だし確実
⁃ エラー処理や失敗ケースが抜ける
• 見えてても、優先度低にしたが実は致命的だった、とかも
⁃ ツールを使って慣れてきたら、新しい課題・アイディアが出てきた
http://www.slideshare.net/hiranabe/project-facilitation-at-kanazawarb
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ユーザが既存のやり方から新しいやり方に慣れる時間を見込む
 既存のやり方を捨てて(アンラーニング)、新しいやり方を学ぶ
⁃ 時間はかかる
⁃ イテレーションの枠内には行儀よくは収まらない
⁃ 今.netやJavaをやっている人が「明日からErlangで開発してね」
と言われて慣れるのにかかる時間とほぼ同じぐらい(のイメージ)
⁃ 使い込み初めてようやく出てくるフィードバックがある
⁃ 「経験」してから選択(朝の角さんの基調講演)
質問数
期間機能リリース
開発へフィードバック
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
アンラーニング
 弊社ファウンダーの南場さんの本に書いてあった言葉
 コンサルティングの方法論は自社経営では使えなかった
⁃ 一度知識を意識的に捨てて新たに学び直す
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
僕の開発のイメージ
http://www.city.nishitokyo.lg.jp/kurasi/kankyo/animals/dogs/inusoudan.files/situkekata.pdf
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
何を基準にプロジェクトを進めるか?
 計画ゲームやバックログで優先順位を一位に決めるのは可能か?
⁃ 今見えている課題(バグを含む)は大事
⁃ リストの中から、完成に向けて開発項目を選ぶのも大事
⁃ でもリスト化は無理かなと(後述)
⁃ 備忘録としてgithub:eのissuesは使っている
 人類に予測は早すぎるので予測に頼る割合を減らす
⁃ 人類の弱さにフォーカス(木下さんの引用した白本のまえがき)
⁃ とはいえ予測をゼロにして全バリエーション試すというのは無理
⁃ 「こうなるべき」という仮説を持ってシステムを実装してみる
• 変更した結果の反応を見て、また仮説を立てて実行する
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
開発のフロー
システムの
境界を決める
理想のデータ
フローを考える
ふつうのUIで
実装する
使ってもらう
フィードバック実装する
リファクタリング
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
まず仮説を立ててプログラムを作る
 まず最良のデータフローを作る
⁃ ユーザが何を入力して何を出力として欲しいか?は基本ブレない
• 外部システムなどから取得できる利用可能なデータなども安定している
• いつそのデータが手に入るの?はブレる可能性が高い
⁃ システム観点で最良のデータフローをまず考える
 UIに関しては21世紀のデファクトのパターンをまず実装する
⁃ アプリの見た目や画面、データの見せ方は変わる可能性が高い
⁃ 技術的に奇をてらっていない「ふつう」の方法で実装する
• ◯ Bootstrapを使ってウェブのUIを作る
• ◯ .netやQtを使ってデスクトップアプリ
• ☓ ターミナルエミュレータをブラウザ上に再現
• ☓ vimスクリプトでウェブサービスを叩く
⁃ いくら要望が強くても、テンキーだけで完結するようなシステムは
棄却する
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
仮説を元にしてプログラマが設計するのはアジャイルなのか?
 最初のリリースまでは手綱は自分で持つ
⁃ 枠組みを決定して、必要な機能のリストを絞り込む
⁃ その中の優先度はユーザにつけてもらうこともある
⁃ どのようなアーキテクチャでどう実装するかは自分で決定
⁃ スケジュールも自分で決めるが1ヶ月程度で動くものは作って出す
 それはウォーターフォールでは?
⁃ 土台だけは決めるがその上のワークフローや、ユーザ体験はユーザ
に使ってもらいながら作りこんでいく
• スクラップ&ビルドも可能性としてはあるが、
コードを100%捨てることはない
⁃ デファクトのUIは作りやすい(ツールが揃っている)し、
ドメイン初心者の学習コストが最低になるので、やって損はない
⁃ 自社サービス開発だと仮説だけでは足りないかも
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
猟犬のメタファー
ハウンド
※視覚・嗅覚で
獲物を発見
レトリーバー
※撃ち落とした獲物
を回収
セッター
※射撃に最適な位置に獲物を
誘いだして固定
スパニエル
※獲物を広い場所に追い出す
写真はWikipediaの猟犬の項目から引用
ポインター
※獲物の位置を猟師に教える
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゴールへ向かわせる3つのフォース
 ユーザが思い描く理想のシステム
⁃ どちらかというと使い勝手の改善や重複作業の除去という観点
⁃ 現実ベース(ポインター)
 プログラマが思い描く理想のシステム
⁃ データフローやアーキテクチャの最適化の観点
⁃ 未来/仮説ベース(スパニエル)
 新システムを使って慣れてから出てくる要望
⁃ システムが持っていた隠れたポテンシャルを引き出す
⁃ 過去の仮説検証の結果(含むバグ)ベース(レトリーバー)
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
日々のイテレーションの注意点
 要求と一言で言っても、その出自がどこにあるのかを気にする
⁃ 期待なのか?
⁃ 希望なのか?
⁃ 現実なのか?
⁃ 不満なのか?
⁃ 仮説なのか?
 きちんと時間配分を行って仮説を検証(実装して提供)して現実を確認し
ていく
⁃ 1/3は仮説の検証に(未来)
⁃ 1/3は希望や期待を叶えるために(現在の計画)
⁃ 1/3は仮説を検証した結果上がってきた現実や不満の解消に(過去)
 要望を聞くよりも「こうやったらうまくいく」という提案が増える
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
まとめ
 狩猟犬のメタファー
⁃ ターゲットは移動するが、移動範囲は絞る
⁃ まずスパニエル(仮説・一部新機能)を放ってターゲットがどちらに
移動するか観察する
⁃ ただし獲物の移動は時間がかかる。既存のやり方を
「アンラーニング」して新しい手法ベースで考えをリセットする
時間が必要
⁃ 少しずつ追い込み、逃げる方向を絞り込んでいき、そちらに
リソースを投入しトドメを刺す
 10%改善ではなく10倍改善のために時間をきちんと分けて投資する
⁃ 1/3は過去(リリースしたプログラムの不具合)
⁃ 1/3は現在(計画中のタスクの遂行)
⁃ 1/3は未来(将来の仮説のための新機能)

More Related Content

What's hot

チームラボハンガー開発経緯トークセミナー
チームラボハンガー開発経緯トークセミナー チームラボハンガー開発経緯トークセミナー
チームラボハンガー開発経緯トークセミナー
Minami Kumamoto
 
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
Yuuki Fukuda
 
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
dena_study
 

What's hot (20)

チームラボハンガー開発経緯トークセミナー
チームラボハンガー開発経緯トークセミナー チームラボハンガー開発経緯トークセミナー
チームラボハンガー開発経緯トークセミナー
 
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
 
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
 
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
 
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
 
ヤフーの次世代パイプラインについて#yjdsw3
ヤフーの次世代パイプラインについて#yjdsw3ヤフーの次世代パイプラインについて#yjdsw3
ヤフーの次世代パイプラインについて#yjdsw3
 
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
 
cedec2021
cedec2021cedec2021
cedec2021
 
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメントジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
 
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechconDeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
 
アジャイルってなにが美味しいの
アジャイルってなにが美味しいのアジャイルってなにが美味しいの
アジャイルってなにが美味しいの
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
 
その素敵なUI基盤を目指して・・・
その素敵なUI基盤を目指して・・・その素敵なUI基盤を目指して・・・
その素敵なUI基盤を目指して・・・
 
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
 
Gitで安定マスターブランチを手に入れる
Gitで安定マスターブランチを手に入れるGitで安定マスターブランチを手に入れる
Gitで安定マスターブランチを手に入れる
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
 
三島teNet第9回ワークショップ アジャイルな開発とは(公開版)
三島teNet第9回ワークショップ アジャイルな開発とは(公開版)三島teNet第9回ワークショップ アジャイルな開発とは(公開版)
三島teNet第9回ワークショップ アジャイルな開発とは(公開版)
 

Similar to アンラーニング

Similar to アンラーニング (20)

オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
 
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
 
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング「らしく」ハタラコウ。 ChatWork x クラウドソーシング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
 
依頼を頼まれるアピールの仕方.pdf
依頼を頼まれるアピールの仕方.pdf依頼を頼まれるアピールの仕方.pdf
依頼を頼まれるアピールの仕方.pdf
 
20120416 3年後のeラーニング予想大会 中嶋さん
20120416 3年後のeラーニング予想大会 中嶋さん20120416 3年後のeラーニング予想大会 中嶋さん
20120416 3年後のeラーニング予想大会 中嶋さん
 
【20-A-7】AgileTED-成功するチームと失敗するチームの違い知花 里香〔ディー・エヌ・エー〕
【20-A-7】AgileTED-成功するチームと失敗するチームの違い知花 里香〔ディー・エヌ・エー〕【20-A-7】AgileTED-成功するチームと失敗するチームの違い知花 里香〔ディー・エヌ・エー〕
【20-A-7】AgileTED-成功するチームと失敗するチームの違い知花 里香〔ディー・エヌ・エー〕
 
Roo
RooRoo
Roo
 
robotics42.pptx
robotics42.pptxrobotics42.pptx
robotics42.pptx
 
エンジニアとデザイナーの技術交流について
エンジニアとデザイナーの技術交流についてエンジニアとデザイナーの技術交流について
エンジニアとデザイナーの技術交流について
 
DeNAのプログラミング教育の取り組み #denatechcon
DeNAのプログラミング教育の取り組み #denatechconDeNAのプログラミング教育の取り組み #denatechcon
DeNAのプログラミング教育の取り組み #denatechcon
 
アジャイル開発はWhyから始まる
アジャイル開発はWhyから始まるアジャイル開発はWhyから始まる
アジャイル開発はWhyから始まる
 
虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf
 
オタクエンジニアを熱くさせる!モチベーションをあげるチームビルディング
オタクエンジニアを熱くさせる!モチベーションをあげるチームビルディングオタクエンジニアを熱くさせる!モチベーションをあげるチームビルディング
オタクエンジニアを熱くさせる!モチベーションをあげるチームビルディング
 
10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later 10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later
 
イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡
 
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
 
jbug#10(ジョイゾー星野)
jbug#10(ジョイゾー星野)jbug#10(ジョイゾー星野)
jbug#10(ジョイゾー星野)
 
虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料 虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料
 
虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料
 

More from Yoshiki Shibukawa

Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014
Yoshiki Shibukawa
 
JavaScriptゲーム制作勉強会
JavaScriptゲーム制作勉強会JavaScriptゲーム制作勉強会
JavaScriptゲーム制作勉強会
Yoshiki Shibukawa
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Yoshiki Shibukawa
 
つまみぐい勉強法。その後。
つまみぐい勉強法。その後。つまみぐい勉強法。その後。
つまみぐい勉強法。その後。
Yoshiki Shibukawa
 

More from Yoshiki Shibukawa (20)

技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
 
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
 
Golang tokyo #7 qtpm
Golang tokyo #7 qtpmGolang tokyo #7 qtpm
Golang tokyo #7 qtpm
 
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
 
Mithril
MithrilMithril
Mithril
 
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsGo & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and Errors
 
Excelの話
Excelの話Excelの話
Excelの話
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014
 
Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014
 
Xpjug基調lt2011
Xpjug基調lt2011Xpjug基調lt2011
Xpjug基調lt2011
 
Expert JavaScript Programming
Expert JavaScript ProgrammingExpert JavaScript Programming
Expert JavaScript Programming
 
JavaScriptゲーム制作勉強会
JavaScriptゲーム制作勉強会JavaScriptゲーム制作勉強会
JavaScriptゲーム制作勉強会
 
Pomodoro technique
Pomodoro techniquePomodoro technique
Pomodoro technique
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
Bitbucket&mercurial
Bitbucket&mercurialBitbucket&mercurial
Bitbucket&mercurial
 
つまみぐい勉強法。その後。
つまみぐい勉強法。その後。つまみぐい勉強法。その後。
つまみぐい勉強法。その後。
 
Erlang and I and Sphinx.
Erlang and I and Sphinx.Erlang and I and Sphinx.
Erlang and I and Sphinx.
 
Sphinx Tutorial at BPStudy#30
Sphinx Tutorial at BPStudy#30Sphinx Tutorial at BPStudy#30
Sphinx Tutorial at BPStudy#30
 

Recently uploaded

Recently uploaded (9)

MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 

アンラーニング

  • 1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. - アンラーニング - たのしい社内SE業と アジャイル 2015/09/12 XP祭り2015 渋川よしき
  • 2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. お前だれよ?  社内SE歴 10年超 ⁃ ホンダだったりDeNAだったり栃木だった り東京だったりサンフランシスコだったり  いちおう、XPユーザグループ設立準備委員会か らのメンバーです 渋川 よしき  プログラミング  C++とかPythonとかGolangとかJavaScriptとか  本  つまみぐい勉強法、アート・オブ・コミュニティ(翻訳)、 Mobageを支える技術、オブジェクト指向JavaScript(翻訳)、 ポモドーロ・テクニック入門(翻訳)、etc
  • 3. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 新書出ましたよ!  JavaScriptの、最速クライアント用MVCフレームワークの本です! ⁃ 速いのが好きな人や、変化が多いブラウザ周辺技術に疲れた人に オススメ  電子書籍のみです  表紙は黒ムツの仲間 ⁃ 南オセアニアの深海魚 ⁃ 最大75cm ⁃ 確認された再高齢は 100歳を超えるとか
  • 4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 今日のお話  アジャイル的な社内SE業務の進め方 ⁃ 10%ではなくて、10倍、100倍の業務改善を行う方法 ⁃ レイヤーとしては、計画ゲームとかプロダクトオーナーとか そのあたり  俺のXP ⁃ XPの本を読んでも、アジャイルの本を読んでも、どのようなイン スタンスが生成されるかは人によって異なる(午前の角さんのお話 にあったように) ⁃ 僕の中でできあがったインスタンスのお話
  • 5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 事例  ゲームのマスターデータのデプロイツールのリプレース ⁃ 第6回DeNAゲーム開発勉強会で紹介したもの ⁃ 入出力フォーマット(UIとなるツール)は変更せずに、 アーキテクチャは大幅変更して100倍の高速化を実現  他にもいろいろやっているけど、今のところ外部に出している情報は これぐらい(そのうちもっと出したい) http://www.slideshare.net/dena_study/final-fantasy-record-keeper
  • 6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. アジャイルと社内開発業務  日本で話題になるのはアジャイルと契約が多い ⁃ 規模が大きくなるとシステムインテグレータ的な ソフトウェア開発が多い ⁃ ユーザ企業はソフトウェア開発部門はあまり持っていない  社内開発業務の話はそこまで話題になっていない? ⁃ XPが生まれたプロジェクトとして有名なクライスラーの総合報酬 プロジェクト(C3)は社内開発案件 ⁃ 社内開発とアジャイルは相性が良い →トートロジー的
  • 7. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 社内SE業  開発者数は極めて少ない ⁃ 社内の位置づけ的には利益を生まないコストセンター ⁃ 戦略的なツール・ミドルウェア開発以外は少人数 (1人)で短期決戦ということも多い ⁃ フルスタック(ワンオペ)エンジニア  営業活動大事 ⁃ 自分で探す • ブランディング大事。「この分野なら俺に聞け!」 • 社内勉強会で発表する ⁃ 上司の信用貯金をかりる • 他の部署の困り事に対して「お前に任せる」と仕事を振ってもらう • 仕事のやり方を他の部署の人に変えてもらうには信用がないと無理 • 上司から信用貯金の前借りでレバレッジを利かす • 信用借金はきちんと返す
  • 8. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 社内SE業務のジレンマ  社内SEだから業務プロセスに合わせたシステムを手作りできる? ⁃ そんなことはない ⁃ 人手が豊富じゃない。いつまでメンテの工数が捻出できるか 分からない。 ⁃ 圧倒的なメリットが無ければ、社内専用ツールとかミドルウェアと かライブラリとかを使いたくない人が多い (使う人のキャリアプランにとってマイナス)  いかに業務プロセス側を動かしていくか? ⁃ これをうまく(ストレスなく、リスクなく)やっていくのが大事  ユーザ事情は最大限勘案する ⁃ ユーザの仕事のスケジュールを見て投入タイミングを決める ⁃ リリース時期が合わずに1月半に渡ってブランチをメンテし続けた ことも
  • 9. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. アジャイルとMoving Target  なぜターゲットは動くのか? ⁃ そもそも人間は未来予測が苦手 • 現物を見てコメントする方が圧倒的に楽だし確実 ⁃ エラー処理や失敗ケースが抜ける • 見えてても、優先度低にしたが実は致命的だった、とかも ⁃ ツールを使って慣れてきたら、新しい課題・アイディアが出てきた http://www.slideshare.net/hiranabe/project-facilitation-at-kanazawarb
  • 10. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ユーザが既存のやり方から新しいやり方に慣れる時間を見込む  既存のやり方を捨てて(アンラーニング)、新しいやり方を学ぶ ⁃ 時間はかかる ⁃ イテレーションの枠内には行儀よくは収まらない ⁃ 今.netやJavaをやっている人が「明日からErlangで開発してね」 と言われて慣れるのにかかる時間とほぼ同じぐらい(のイメージ) ⁃ 使い込み初めてようやく出てくるフィードバックがある ⁃ 「経験」してから選択(朝の角さんの基調講演) 質問数 期間機能リリース 開発へフィードバック
  • 11. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. アンラーニング  弊社ファウンダーの南場さんの本に書いてあった言葉  コンサルティングの方法論は自社経営では使えなかった ⁃ 一度知識を意識的に捨てて新たに学び直す
  • 12. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 僕の開発のイメージ http://www.city.nishitokyo.lg.jp/kurasi/kankyo/animals/dogs/inusoudan.files/situkekata.pdf
  • 13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 何を基準にプロジェクトを進めるか?  計画ゲームやバックログで優先順位を一位に決めるのは可能か? ⁃ 今見えている課題(バグを含む)は大事 ⁃ リストの中から、完成に向けて開発項目を選ぶのも大事 ⁃ でもリスト化は無理かなと(後述) ⁃ 備忘録としてgithub:eのissuesは使っている  人類に予測は早すぎるので予測に頼る割合を減らす ⁃ 人類の弱さにフォーカス(木下さんの引用した白本のまえがき) ⁃ とはいえ予測をゼロにして全バリエーション試すというのは無理 ⁃ 「こうなるべき」という仮説を持ってシステムを実装してみる • 変更した結果の反応を見て、また仮説を立てて実行する
  • 14. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 開発のフロー システムの 境界を決める 理想のデータ フローを考える ふつうのUIで 実装する 使ってもらう フィードバック実装する リファクタリング
  • 15. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まず仮説を立ててプログラムを作る  まず最良のデータフローを作る ⁃ ユーザが何を入力して何を出力として欲しいか?は基本ブレない • 外部システムなどから取得できる利用可能なデータなども安定している • いつそのデータが手に入るの?はブレる可能性が高い ⁃ システム観点で最良のデータフローをまず考える  UIに関しては21世紀のデファクトのパターンをまず実装する ⁃ アプリの見た目や画面、データの見せ方は変わる可能性が高い ⁃ 技術的に奇をてらっていない「ふつう」の方法で実装する • ◯ Bootstrapを使ってウェブのUIを作る • ◯ .netやQtを使ってデスクトップアプリ • ☓ ターミナルエミュレータをブラウザ上に再現 • ☓ vimスクリプトでウェブサービスを叩く ⁃ いくら要望が強くても、テンキーだけで完結するようなシステムは 棄却する
  • 16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 仮説を元にしてプログラマが設計するのはアジャイルなのか?  最初のリリースまでは手綱は自分で持つ ⁃ 枠組みを決定して、必要な機能のリストを絞り込む ⁃ その中の優先度はユーザにつけてもらうこともある ⁃ どのようなアーキテクチャでどう実装するかは自分で決定 ⁃ スケジュールも自分で決めるが1ヶ月程度で動くものは作って出す  それはウォーターフォールでは? ⁃ 土台だけは決めるがその上のワークフローや、ユーザ体験はユーザ に使ってもらいながら作りこんでいく • スクラップ&ビルドも可能性としてはあるが、 コードを100%捨てることはない ⁃ デファクトのUIは作りやすい(ツールが揃っている)し、 ドメイン初心者の学習コストが最低になるので、やって損はない ⁃ 自社サービス開発だと仮説だけでは足りないかも
  • 17. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 猟犬のメタファー ハウンド ※視覚・嗅覚で 獲物を発見 レトリーバー ※撃ち落とした獲物 を回収 セッター ※射撃に最適な位置に獲物を 誘いだして固定 スパニエル ※獲物を広い場所に追い出す 写真はWikipediaの猟犬の項目から引用 ポインター ※獲物の位置を猟師に教える
  • 18. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゴールへ向かわせる3つのフォース  ユーザが思い描く理想のシステム ⁃ どちらかというと使い勝手の改善や重複作業の除去という観点 ⁃ 現実ベース(ポインター)  プログラマが思い描く理想のシステム ⁃ データフローやアーキテクチャの最適化の観点 ⁃ 未来/仮説ベース(スパニエル)  新システムを使って慣れてから出てくる要望 ⁃ システムが持っていた隠れたポテンシャルを引き出す ⁃ 過去の仮説検証の結果(含むバグ)ベース(レトリーバー)
  • 19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 日々のイテレーションの注意点  要求と一言で言っても、その出自がどこにあるのかを気にする ⁃ 期待なのか? ⁃ 希望なのか? ⁃ 現実なのか? ⁃ 不満なのか? ⁃ 仮説なのか?  きちんと時間配分を行って仮説を検証(実装して提供)して現実を確認し ていく ⁃ 1/3は仮説の検証に(未来) ⁃ 1/3は希望や期待を叶えるために(現在の計画) ⁃ 1/3は仮説を検証した結果上がってきた現実や不満の解消に(過去)  要望を聞くよりも「こうやったらうまくいく」という提案が増える
  • 20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ  狩猟犬のメタファー ⁃ ターゲットは移動するが、移動範囲は絞る ⁃ まずスパニエル(仮説・一部新機能)を放ってターゲットがどちらに 移動するか観察する ⁃ ただし獲物の移動は時間がかかる。既存のやり方を 「アンラーニング」して新しい手法ベースで考えをリセットする 時間が必要 ⁃ 少しずつ追い込み、逃げる方向を絞り込んでいき、そちらに リソースを投入しトドメを刺す  10%改善ではなく10倍改善のために時間をきちんと分けて投資する ⁃ 1/3は過去(リリースしたプログラムの不具合) ⁃ 1/3は現在(計画中のタスクの遂行) ⁃ 1/3は未来(将来の仮説のための新機能)

Editor's Notes

  1. 芝刈り機伍号
  2. 20分