$shibayu36->blog;

株式会社アンドパッドでエンジニアをしています。プログラミングや読書のことなどについて書いています。

Auth0を試した

自分でサービス作るときにもう認証を自前実装するのは嫌だよなあと思っていてAuth0が気になっていたので試してみた。

Auth0のコンソールでアプリケーションの新規作成をした後、とりあえず使えるようにするだけのコードは https://github.com/shibayu36/typescript-playground/pull/17 。正直これだけでひとまず認証が実装できてしまうのは便利すぎてビビる。さらにSNSでの認証などを追加したいならコンソールでぽちぽちするだけで行けそう。詳しい使い方はまだ全然分かってないが、ひとまず今後認証は自前でやるのではなくて任せていきたいなと思った。

参考

開発組織をスケールする方法を学びたい - 「ユニコーン企業のひみつ」を読んだ

開発組織が拡大しても、一人当たりの生産性を落とさずに、かつ顧客にとって本当に必要なものを作り続けるにはどうしたら良いのか考えている。その一環として「ユニコーン企業のひみつ」を読んだ。

スケールするための重要なポイントについて非常によく学べた。書いてあることを自分の中で咀嚼して、スケールするためのSpotify流の方法を自分の言葉でまとめてみるとこんな感じ。

  • スクワッド・トライブ・チャプター・ギルド
    • チームを、少人数の、職能横断で自律した、必要な権限を持った、自己組織化されたものにする
      • 開発からメンテナンスまで一気通貫し、学びを蓄積できるように
      • ミッションだけが設定されており、優先順位決めややり方は自分たちで決められる。長期的な視点にも立てる
      • 自律している = 目的が明確であり、意思決定や優先度決めが独立して行え(他との依存関係が少なく)、実行も独立して行える
        • 自律性を高めるために、分離されたアーキテクチャと、権限委譲が必要になる
      • ただし局所最適に陥りすぎない
    • ミッションが近いチームをトライブとしてまとめる
    • 専門性の高い横断仕事をうまく行えるように、トライブ内に横串で専門分野のグループを作る = チャプター
    • 学習機会を提供するために、組織を横断して専門分野についてのグループを作る = ギルド
  • 大量の小規模チームでも方向性を揃えられるようにするため、全社員で取り組むべき重要事項の優先順位付きリストを作る
    • OKRやカンパニーベット
    • フォーマットとしてDIBBを用いる?
  • 生産性向上に投資する
    • エンジニアリングチームの生産性向上を目的とするスクワッドを作る
    • 20%ルール、ハックデイなど、従業員に探索の余地を与える
      • ただしやったことはみんなの前で発表しよう
  • 全ての情報にアクセスできるようにする
    • あらゆるデータにアクセスできることで、1.優れた意思決定を促進、2.信頼しているシグナルの発信、3.物事を進めやすく速くする

読書ノート

* スタートアップがスピード以上に重視しているのが学習 4
    * 未知を明らかにすることを競っている。そのために計測、分析、テストの結果から得られた知見をプロダクトに何度も何度もフィードバックする
* スタートアップは従業員に権限を与えて信頼する 6
* プロダクト開発における成功とは「発見と学習」 12
* スタートアップはチームにミッションを与え、自律的に動いてもらう 23
    * ミッションとは = チームに与えられる抽象度が高めの目標。仕事の方向づけ、目的の提供、長期的な視野、どうやって果たすかはチームが決める
    * ミッションは、会社にとって重要で、そのチームで責任を果たせ(他への依存を少なく)、どうやって達成するかの計画はチームが協力して考えられるものに 30
* スクワッド = 少人数の、職能横断で自律した、必要な権限を持った、自己組織化されたチーム 33
    * 8名以下
    * 権限を持った小さな職能横断チームこそが、高速なプロダクト開発とイノベーションの基盤
* スクワッドとは何か
    * スクワッドは、経営リーダーからゴールだけが設定されているだけで、自ら到達手段を見出す必要がある 36
    * 自分たちで作ったものをメンテナンスし、学びを見出す
    * 自分たちで優先順位をつける
    * 自律すべきだが、局所最適になるべきではない。会社全体にとっての最善のための仕事をする
    * 計画よりもインパクト(=仕事の結果がなんらかの形で顧客の役に立ったという具体的な証拠)を重視
        * 気付き:KPIのブレークダウンになりそう
    * 準備ができたらすぐにリリースできる
    * 自律している
        * 長期的な視点に立てること + デリバリーにまつわる無数のトレードオフのバランスを取れる権限を持っていること ※
        * 気付き:目的が明確である + 意思決定や優先度ぎめがチーム内で完結する + ワークフローに依存が少ない、かな?
* チームが仕事をスクワッドのように進めていくためには2つの要素が必要 44 ※
    * 分離されたアーキテクチャでプロダクトを開発
        * 分離することで、1.複数チームが並行して同じプロダクトに取り組める、2.リリースを分離でき、3.メンテナンスとデバッグが容易になり、4.壊れる範囲を限定できる
    * 権限付与と信頼の文化を醸成
        * ミッションを与え、時間の余裕と探索範囲の余地を与え、解決策は編み出してもらう
        * チームに間違えてもらう
* 自律したチームでありながらスケールさせるには? 61
    * トライブ、チャプター、ギルド
    * トライブとは、担当するミッションが類似、関連しているスクワッドがまとまったもの 62
        * トライブも「フルスタック」。かつ他のトライブとの依存を最小限に
    * チャプターとは、トライブ内の同じ専門性を持つメンバーのグループ。チャプターリードがいる
        * そのトライブにとって横断の専門性の高い仕事をする。
        * 気付き:フルスタックな小規模スクワッドを作っていくと、どうしてもスクワッドの中には同じ専門性の人が1~2人となることがあるため、こういう組み合わせが必要なのかな
    * ギルドとは組織を横断して形成される、専門分野についてのグループ 65
        * 気付き:チャプターと違い、どちらかというと勉強会や情報交換会的なノリに見える
    * スクワッドは「何を」にフォーカスし、チャプターは「どうやって」を手助けする 70
* メンバーが転職せずに優れた仕事を続けてくれる可能性が高くなるのは、内容をよく理解した仕事を自分で選び、気に入った人たちと一緒に働いている場合 ※ 68
    * Facebookに入社してもチームには所属せず、複数のチームを渡り歩く
* スケールした組織で方向性を揃えるには? 74
    * 全社員で取り組むべき重要事項に優先順位をつけたリストを「カンパニーベット」として定める
        * 気付き:OKRの目的とほぼ同じに見える
    * フォーマットとしてDIBB(データ、インサイト、確信=Belief、ベット)を使うと良い
    * 大きなベットを2つ同時進行させると動かなくなってしまう。時期をずらす 84
* あらゆるデータにアクセスできる時、人は優れた意思決定をくだせる 96 ※
    * 給与や報酬のようなものを除いて全てレベルで
    * これにより -> 優れた意思決定、信頼しているシグナルの発信、物事を進めやすくはやくする
* 生産性向上には常に投資する。プロダクティビティスクワッドを編成する 101
    * プロダクトのリリースや開発を担当するメンバーの日々の仕事を楽にすることだけを目的としたチーム
* 20%ルール的なことをするなら、必ず自分の時間をどう使ったのかをみんなに示す場を用意する 104
    * 「リリースする責任」と「自分の行動への責任」を意識させるため
    * 20%ルールの目的は、従業員に探索の余地を与えること
* 文化をお実際に機能させるには、行動で裏打ちすること 141
    * リーダー自ら助けて欲しいと言うとか、失敗を認めるとか
    * 発言と行動が一致していない場合、みんなは行動を参考にする 163
* 優秀な人たちがどんな企業に魅力を感じ続けるのか 163
    * 自分で自分の仕事を決められる(自律)
    * やり方を改善できる(熟達)
    * やっていることに意味を見出せる(目的)
* この本で言いたいことは、「権限を与えること」と「信頼すること」だけ 164
    * この二つをどれだけ大きくできるか

「建設業 新入社員読本」を読んだ

「最新住宅業界の動向とカラクリがよ~くわかる本」読んだ - $shibayu36->blog;に引き続き業界理解として「建設業 新入社員読本」を読んだ。

この本は建設業の新入社員向けに建設業の仕事について広く解説している。建設業の背景や課題、業務サイクルなどが一通り学べる内容になっていた。まだ前提知識や経験が自分にあまりにも無くて頭に入ってこないなという感じだったので、またエンジニアの業務を進める中で関係するところを読み直すという使い方を出来たらいいかなと思う。

読書メモ

* 建設の60%は民間工事40%は公共事業。建築工事56%、土木工事44% 17
* 建設会社の現状と課題 26 
* 専任技術者常駐などハードルが高くなってきていて、48万社を淘汰させる。工事技術に強くなり、発注者からの要望に応えられるように 34
* 建設の業務サイクル 35 
* 現在は工事が終わった後その後どうですかとアフターケアすることが増えた 38 気づき、アフターケアの管理機能も今後大切そう
* 工事に関するお金に関する業務フロー 39 
* 建設会社はA~Eランクに分類され、それぞれごとに工事規模が決まっている 43
    * 気づき、ランクを変えることは可能なのか?
* 気づき、安いことが決め手になってしまうの、ダンピングが起こって大変じゃない? 45
* 気づき、ve提案は自動化される方が嬉しそう 47
* 54 建設会社、部門ごとの仕事内容まとめ
* 建設工期請負契約書。工期の厳守は絶対的。遅れると信用に関わる 76
* 現場の1日の作業の流れ 94
* 気づき、現場の人のやる気を出すためにも、うまく情報の透明化ができると良い?この作業が最終的に何になるかを知りやすいかどうかでモチベーションが変わりそうだけど 226