tsalakh ain sus noam Huyah ol guf

勉強会のメモ。その他備忘録。参考にさせて頂いたサイトや資料はリンクさせて頂いていますが不都合があればご連絡ください。

【勉強会】Deveropers Summit KANSAI 2016

20160916 DevSumiKANSAI2016

これに行ってきた

codezine.jp


クラウドの発展とデベロッパーの役割について

  • グロースエクスパートナーズ 鈴木雄介さん

www.slideshare.net

クラウドがもたらしたこと

  • 非機能要件をコーディング出来る
  • ITサービス運営のスピードアップ
  • 開発のみが早いだけでは価値は出ない
  • システムを動かしてビジネス価値を生み出す

Agile

WFの課題

  • 欲しい最終成果物が、進めるうちに変わってしまう
  • 中間成果物では品質は確認できない

Agileのメリット

  • 「今」欲しいものを得られる、後でいいものは次に
  • 定期的に評価ができる

DevOps

ダークカナリア

  • 開発者だけがアクセスできる本番環境
  • 更新系はやらない、検索エンジンとか

カオスモンキー

  • 非機能のテストは本番環境でしかできない
  • 自動化スクリプトのテストは本番環境でしかできない

MSA

Agile+DevOpsをアーキテクチャ論に展開したもの

MSAの注意点

  • 巨大なシステムをいかに管理するか
  • アプリ管理ではなく、システム全体の管理
  • 設計指針ではなく、結果論
  • MSAで再構築するのではなく、少しずつトライするべき
  • 1システムではなく、企業全体のシステムが対象

どうサービスを分けるか

クラウド時代のDeveloper

  • IaaSのコード化は実質コード量が多い
    • PaaSがいい、制約に従えるなら
  • 技術の選択
    • 何に最適な技術なのか
    • 流行っているかは関係ない
  • スペシャリストorゼネラリスト
  • ビジネスパーソンとしてのデベロッパ
    • コミュニケーション能力、プレゼン能力
    • チームビルディング

正しいものを正しくつくる

  • ギルドワークス 市谷聡啓さん

www.slideshare.net

Do the Wrong things Wrong (DWW)

「間違ったものを、間違ったまま作る」

  • わからないことを、わからない人同士で、昔ながらのフェーズゲート開発
  • どのような状況で、どのように作れば正しいか
  • 正解はない、何が適切か、問い続けながら進める

解決策=アジャイル開発、なのか?

Agile/Scrum

  • アジャイルは、「わかった」をはやく増やす作戦
  • スクラムは、やると決まったことをはやく作るしくみ
  • Agile/Scurmで、早く理解して、早く作れるが、何を作るかが曖昧なまま

Do the Wrong things Right(DWR

「間違ったものを、正しく作る」

  • 作り方のみ正しくしても、何を作るかがわかっていない
  • 間違っているか?という問い自体が存在しない
  • 仮説検証のプロセスが実施されない

プロダクトオーナーが絶対正しいのではない

  • そもそも経験が足りない
  • 人の一生で、ソフトウェア開発はたかだか300人月
  • 理想的なプロダクトオーナーは現実にはいない、と思っていい

忠誠を誓う対象は「目的」

Do the Right things Right(DRR)

  • 正しさとは、絶対的なものではなく、相対的なもの
  • ここでは、目的により適合するものが、より正しい
  • Start with Why(Why→How→What、ゴールデンサークル)

正しいを探すアプローチ

  • 顧客開発
    • 人と時間とお金をかけてモノを作ってから顧客を探すより
    • 顧客を探してから、必要なものを作る
  • リーンスタートアップ
    • MVP:Minimum Viable Product
  • 価値探索

    • ユーザインタビュー
    • プロトタイプを作って検証
    • 仮説キャンバス
    • ユーザストーリーマッピングでのMVP特定
  • MVPは実用最小限、といいつつ現実は、MVPが重くなりがち

  • 本来は検証のはずのMVPが、重厚なので、MVPで事業スタートしてしまう
  • MVPよりもっと小さい単位で、何度も実験して、学びを揃えてから、つくる
  • 正しいものづくりに正解はなく、問いのみがある

日本で世界最先端のDevOpsチームに追いつき、追い越す方法

docs.com

DevOpsの本質

DevOpsには明確な定義がない、目的を明確にすることが重要

GeneKim'sのThreeWays

  • 1way:リードタイム短縮
  • 2way:本番環境・ユーザからのフィードバック
  • 3way:継続的な実験と学び
    • どれだけ準備しても障害は起こる
    • 本番環境はない、検証と学びの場と考える

MicrosoftのDevOpsの歴史

QA+Dev+Ops+Business  ↓Agile Engineering+Ops+Business  ↓DevOps Feature

  • QAとかOpsがコーディングをするわけではない
  • チームを統合して話をするようにした

導入ステップ

  1. DevOpsのプレゼンテーション
    • 自分の組織のDevOpsとは何か共通認識を。
  2. ValueStreamMapping
    • リードタイムとプロセスタイムを書く
  3. 文化とギャップ要素のインストール
  4. DevOpsハックフェスト
    • 実際にやってみる
  5. モニタリングと継続的改善

文化とギャップ要素のインストール

  • 世界106カ国で日本はダントツでAgileがやりにくい

西洋文化

  • アメリカと日本のギャップは生産性の違い
    • 生産性の違いは、物量の違い
    • 同じValueを少ない時間で出す

BeLazy

より少ない時間で成果を最大化する「エッセンシャル思考」 * 例えば、優先度の話

アメリカで1番のDevOpsチームに入った話

新しいことをやっているわけじゃない、当然のことを当然に


エンジニアの教育と成長についての課題と、組織で行っていること

  • はてな 大西 康裕さん
  • さくら 江草 陽太さん

意識の高い人を採用→ルールの徹底→文化の醸成

speakerdeck.com

はてな

採用時のポイント

  • 表層的でない知識
  • 成長意識、向学心
  • エンジニアリングセンス

評価指標を明確にする

  • 成長:目標に対する結果が出せたか
  • 行動:適切なプロセスが選択できているか
  • 専門性:業務遂行に必要になるもの、ただし達成・未達成が基準でなく成長目標

自発的な活動を促進する

  • チーム内の技術エントリー、個人ブログ、ブックマーク数で報酬あり
  • 技術エントリーの読み上げ、共有することで活発になる
  • 技術勉強会、持ち回りで20分発表、テーマはなんでも
  • 技術書購入→書籍レビューを共有
  • 勉強会・輪読の補助、だいたい続かないので、最後まで続いたら打ち上げ補助
  • 実績の公開は、個人が比較されてプレッシャーになるのでやめた

情報共有

  • 可能な限りグループウェアを統一する
  • チーム内の共有、新規参画者も入りやすい

さくら

課題

  • 中途の即戦力が多く、成長を支える仕組みがなかった

組織としての方針

  • X理論:人はもともと働きたくない
  • Y理論:働きたい
  • X→Y理論ベースへ転換し、自主性を尊重するようにした
  • ルールを緩和して、自由に働けるように

カイゼンの基本 ~組織・プロダクト・プロセスをどう改善するか~

  • Ryuzee.com 吉羽 龍太郎さん

www.ryuzee.com

Done is better than Perfect
- Mark Elliot Zuckerberg -

カイゼンとは?

  • 自分たちの仕事を「安全に」「簡単に」すること
  • 7つのムダ「作りすぎ」「手持ち」「運搬」「加工」「在庫」「動作」「不良を作る」
  • 忙しいからカイゼンできない、ではない、カイゼンできないから忙しい
  • 時間ができたらやる、ではずっとやらない

カイゼンのペース

  • 「春の大カイゼン運動」は一瞬だけで続かない
  • 持続可能なペースで、継続的に行うべき
  • 強制的に立ち止まれる仕掛けをいれる、スクラムで言うレトロスペクティブ

カイゼンの型

  • カイゼンの方向性を、全員が理解・再認識する
  • カイゼンの場では、現在の状況整理、次の目標設定、これを繰り返す
  • 全体最適か、部分最適か、状況によるが、まずは穴がある部分から埋めるべき
  • バケツリレーの例、超高速でバグを作ることになる

品質

  • 100%良品であるべきだが、不良は起きる
  • 何か起きたら自動で知らせる仕組みを入れる
  • 不良が起こるのは、標準化・合理化が不十分なため
  • 達成に対するプレッシャーをかけすぎない、それ自体が問題を引き起こす

自働化(NOT自動化)

  • 自動システムを監視、異常を検知したらシステムを止める仕組み
  • ひとりの人間が多数のシステムを管理できる

効率より効果

  • 穴を塞ぐこと自体に効率を求めない、早く埋めるべき

ムダをなくす

  • 不要なものは捨てる、いつか使うかも?は大抵使わない
  • 必要なものはJustInTimeでとり出せる
  • 活動を維持する、場合によっては強制力も必要

一気にやらない

  • 達成しないし、失敗したときに戻れなくなる

見える化

  • 見えないものはカイゼンできない
  • ValueStreamMappingも手法の一つ
  • 記法は「トヨタ生産方式にもとづく「モノ」と「情報」の流れ図で現場の見方を変えよう!!」
  • ValueStreamMap作成手順→作業の洗い出し、順序付け、成果物の定義
  • 「止まる」「遅い」「戻る」の洗い出し

チケットの在庫管理

  • チケットが多くなりすぎると管理できない、優先度つけられなくなる
  • 本当にそんなに必要なの?必要ないチケットがまざってない?
  • 捨てる基準、捨てる工程を定義しておく

カイゼンのパターン

  • Eliminate(消す)
  • Combine(統合する)
  • Rearrange(入れ替える)
  • Simplify(単純化する)

チーム

個人の成果ではなく、チーム全体の成果を上げる

  • 人数が多いと、それだけで無駄な仕事が生まれることがある
  • 組織が恐怖で支配されるとカイゼンが難しくなる、個人の成果が求められるから

チームの能力を見える化

クロスファンクションで、誰が何をできるか * エース、プレイヤー、監督 * 何ができる、何がしたい、をつけて成長させる

タックマンモデル

チームは進化する(形成、混乱、統一、機能)

まとめ、カイゼンの進め方

  • チームで全体で取り組まないと意味がない
  • 目標を立てて、結果を数字で見えるようにしておく
  • 知恵を活用、ツールに頼りすぎないこと
  • 漏れを無くす
  • 今が最高だと思わない
  • 試してみてダメなら他を試す、言ってしまったから変えられないとかNG