t_hazawaの日記

株式投資とWebエンジニアリングのブログです。株式投資の目次は→です。 https://t-hazawa.hatenablog.com/entry/2021/02/12/220933

Design it! 14章-17章MEMO

親: Design it を読んだ - t_hazawaの日記

概要

  • 第三部には、アーキテクチャ作りに使える38個のアクティビティが紹介されているのだった
  • 第二部までと異なり、かなり素早く読める

14章

  • 問題を理解するために使えるアクティビティ
    第三部 いろいろなアクティビティから 1分
    14章問題理解のティ 1.5分
        229 問題を定義しよう
        ムのビジネス目標を定義しよう システム
    230 ティ1 たった一つを選べないならどれ? 3.5分 (12行)
        トレードオフが難しいときに
        選択はこのティの中で変更可能
        厳しい会話を早めにすることが目的 (大事そう)
        合意して、たった一つを選んでみる
            対立する品質特性を戦わせてみよう
                精度vs 高速さ
                技術的負債の少なさとリリースの速さ
                意外とセキュリティが最優先だったり
                可用性とコスト 8.5分
        想像したより、1つのティについて詳しく書いてあるな(3ページ)
        トレードオフスライダー 8.5分 で順番に並べてみてもいいかもね
    232 ティ2 共感マップ 9ふん (11行)
        (所要時間10-30分)
        ブレストでダーの気持ちを把握するティ
        多分ダー自身がいなくても可能 (ダーの気持ちを想像する(多分)) 10.5分
            象限 その人のする行動 その人の作るもの その人の発言 思考 10.5分
                聞いていること 見ていること やっていること(言っていること) 考えていること(感じていること) 
            ダーさんそれぞれについてグリッドをつくる(縦横軸)
            インサイトを強調表示で書き入れよう 11.5分
            Mural がリモートで便利らしい 12分
            ドット投票(小さな丸いシールを貼る)
            品質特性を象限にして、似たようなこともできるよ 15分
        使う機会があったら使ってみたいティだった (4象限に付箋をはってく)
    236 ティ3 GQMワークショップ (15行)
        Goal Question Metric
            Goal ゴールとなる品質特性など
            Question Goalが満たされたかをどのように明らかにするか説明する
            Metric 質問に答えるための施策 16.5分
        この品質を満たすにはどうすればいい?それはどうやって測る? 17.5ふん
            さらに測る対象のデータも書くらしい 18分
            それぞれのコストも書くらしい
        で、どのメトリックとデータを使うかを決めるのがゴール 18.5分
        アーキテクチャの外側でデータを取ることもできるかもね 19.5分
        一度考えたら、また再度(数カ月後とか数年後とかに)同じ計測方法でいいね、とできるのもいいところ 20分
        一つのゴール「パフォーマンスのボトルネックを探る」でも、複数の質問が出てきて、それぞれ複数のデータを使う感じ
            だから、こういうツリーを作るのが大事なんだね
        日々の仕事(じゃないけど)で
            うーん、こういうふうに列挙する時はツリーできるといいのかもね (日頃列挙してると思う) 22分
    239 ティ4 ダービュー ステークホルダーインタビュー 22分 (19行)
        ダーについて質問しよう、というティ (ごく当たり前な気がする) 22.5分
        トピックを持って質問に臨もう 23分
            ューの目標を事前に定めておこう
        ダーとの関係値もできるよ
        (所要時間30-60分) 24分
        積極的なュアーは1,2人、対象も少数かな
        インタビュー後に詳細なメモを書くこと
            得意です (全部メモするのが) ちゃんと要点をまとめています 25分
        ューの感想も書きましょう ューから得られたインサイトも書けるといいね 26分
        最初からチャの関心事について聞くのはやめよう その前に一般的な部分の質問がある(とのこと) 27分
        質問で誘導しちゃダメよ
        アイデアをまとめるときに対象者の言葉を使えると良い
        実際のユーザやダーにューできるといいかもね
            監督者じゃなくて現場の人とか
        データをもってくといいかもね 28分
        ュアーが質問と対象者に集中できるように、書記はべつの人がいいね 28.5分
        例
            置き換えようとしている。古いムの計画は?  システム
            廃止期間についてューしてる (ごく普通の仕事の会話に見える) 29.5分
            242P まで
    時間まとめ
        今日は28分かけて、4つのティの部分を読んだ 14ページかな。
            ちょうど1ページ2分だ。
            60行書いてるので、 30分書くのにかかってるはず(純粋には -2分で 14ページ読んだことになる)
                (不整合)
        Design It は372ページまで(あと130ページ)ある。
            ティは38まである
            ページ数的には、あと9日、ティ数としても、あと9.5日で読み終えるでしょう
        4つめは当たり前だったけど、ちょっと考え方の足しになったかも(曖昧な感想)



    今日もDesign It 第三部ティ集 3分
    ティ5 前提リスト 243  (できてそう)
        前提を出しきらないとムは死ぬよ
        一人合点はよくないと忠告するのが大事らしい 5分 244
        自分ごと
            かなりできてると思う 何をするにしても手元に 案件.txtを書いてやってるし
        これはできてないなと思うティに下線をつけたりすると良いと思った 6.5分
    ティ6 品質特性ウェブ 8.5分
        ティ 2とか3ででてきた手法 9分
        品質特性を特性ごとにレーダーチャートにして貼る
        まず、重要な品質特性を5~7出す必要がある (可用性とかコストとかセキュリティとか) 10.5分
            付箋に書いて貼るのは関心事 (多分関連することなら何でも良い) 11分
        最後に、優先順位をつけて(ドットシール投票)、品質特性シナリオ(一般的な叙述文)をつくる11.5分
    ティ7  ミニ品質特性プ 248 13分
        ワークショップ
        ミニでも~3時間かかる 15分
        人数が10人以上になりそうだったら、複数回にわけて、最後に全員でシナリオ統合をしようね 16.5分
        やはり、品質特性ウェブに付箋をはっていく感じ(ティ 6と同じ?) 17.5分
            付箋がシナリオ素材 これから品質特性scenarioを作る 18.5分
        余裕があったら、事前アンケートすると精度高まるよ 20.5分 252
        重要なものをscenario洗練させようね 21分
        ティ7だと大掛かりだから、品質特性が11個くらいウェブにあったりする 21.5分
        機能じゃなくて、品質特性の話をするのが大事だよ 22.5分
    ティ8 Point Of View Madlib 23分 254 (前の部署でやってた) (できてる)
        視点穴埋めゲーム
        誰は何をする必要がある。なぜならこういう理由があるからだ。
        でもまぁ、なんでいるかはやはり手元の .txtに書いてるし、コンフルにも書いてる
        5回のなぜテクニックはそのうち調べようと思う (手元にメモ) 27分 256
        似た手法
            目標の丘 Design Hills
                Who が What をできる。 しかもその上 Wow! だ。
                インパクトを示せる
            表に書いたりもできるよ 29分
    今日の感想
        品質特性ウェブというものが世の中にあって、ニーズを洗い出すときに使えるかもと思った。
    時間まとめ
        ティ集は、文字でページが満たされてないので、はやくよめる
            アクティビティ
        27分で ティ5-8 。 243-258 (16ページ)
            まぁ、いい感じの速度では。
            372がゴールなので、 あと 110ページ。 7日でおわる
                本全体は 24日で終えることになる計算

ティ9 応答測定のたたき台 259 1分 (いいかも。)

    議論のためのたたき台
    「仮に正常に使える期間を99.9%として考えてみましょう」的な? 2分
        そうみたいだった
        確かにいいかも。 要件を考えるときに (99.9%ができそうかも) みたいにスタート地点を書くといいかも 3.5分

ティ10 ダープ 261 ステークホルダーマップ

    まだ「問題理解」のティ (多い)
    プを作ると、ダーの見落としが減るよ
    その人とどういう関係かもわかるよ
    その人の役割を書こう
    (感想) まぁ、書いておいた方が後からきた人もわかりやすいかな
        自分では書いたことがないと思うけど、joinしたプロジェクトでは最初に携わった人が書いていた
        確かにユーザとかインフラを整備してくれる人や役員や株主 などはいつも見ている表には載ってないかも(そんなに把握する必要性は感じないけれど)
        多分、(顧客に)真に必要なものがなにかがわかってないような難しい案件では、ダーを洗い出すのは大事かも 8.5分

15章

  • 解決策を探るために使えるアクティビティ
15章 潜在的な解決策を探るためのティ 265 9.5分

    解決策(=チャ)はトの知識があれば無限大 (アーキテクト) 10分
        基本はリデザイン (他の事例の再適用)

ティ11 チャの擬人化 266 11.5分 (おもしろそう、機会があったらやってみたい) (◯◯くん呼びをこれからもたまにしようと思った(やってる))

    おもしろそう
    チャが人間的感情を持って話すように書く
        動機、目標、刺激に対する応答 などを説明する
    ◯◯くん (ex. AWS Lambdaくん、DBくん)
    ョンのために正確さを犠牲にするのは価値ある (コミュニケーション) 13.5分
    「どれだけアクセスがよあるとDBくんは苦しい」「Redisくんは同時何接続かまでは大丈夫なので、1接続がアクセスしまくっても大丈夫」

ティ12 チャプブ 268 16分 (アーキテクチャフリップブック)

    途中で演習ででてきたもの
    スライドを使って、チャを進化させていくティ
        なぜそうなったかが書き残されるので、どこが要点なのかが後世に伝わる 17分
    (感想) 難しいチャが必要なときには参考になるかもと思った

ティ13  CRCカード 272 18分 (手元の.txtに簡易設計をつらつらと書いてるのはできてる)

    Coponent Responsibility Collaborator Cards
    コンポーネント - 責務 - 協調相手
        クラス - 責務 -協調相手 の拡張版
    その3つを名刺的なカード(名刺よりは大きい)に書く
    これを書くとどう役立つんだろう (読み進める) 20分 273
        ちゃんと書き出してみると、実際のチャやASRとのズレを見つけられるらしい
    まず品質特性scenarioがカードになって、それに最初に応答するコンポーネントのカードから作って、それが使うコンポーネントのが次々に書かれるらしい
        つまり、カードでプログラミングする感じ (設計) 22分
    事前に簡易にプログラミングすると、間違いなどを見つけやすいね、コーディングしてから見つかるとダメージが大きいね、という話みたい
    275で、このコンポーネントに責務と協調相手が集中してて神クラスになってる みたいなのが視覚的に分かるのはよさそうだった
    (感想) これも、大きな仕組みづくりのときには やれたらいい感じっぽかった
        多分、手元で、何をするために何があって、それは何を使うみたいに .txt に書いてるのとやりたいことは同じ 25.5分

ティ14 概念マップ 277 26分

    チャはドメイン(概念)に規定されるので、ドメインを明らかにしよう
    ER図みたいなのを書く
    使ったりする人やシステムにでてくる概念のER図化 28.5分
    (感想) 問題が大きかったら、この図を作って、この部分をどういうシステムで埋めるぞ と決めていくとよさそう (問題が大きかったら) 29.5分

今日の時間まとめ

    28.5分で ティ9-14 (6つ) P. 259-280 (22ページ) 進んだ
    大体1分で1ページ弱なのでいい感じ
    372がゴールなので あと 92ページ (4.5日程度)


2021/01/23 14:57
今日は7ページ勉強する P.286 まで

ティ15 分割投資 280
チームを小さくしよう
細かくしすぎると全体最適にならない場合があるよ。探索範囲は1つのチームに含めたり、全体で発表会をしたりするといいよ
小グループでの作業は1週間以内くらいがいいよ 281
グループには明確な使命をもたせようね 282
深さ優先チ(同じ分野)と幅優先チ(色んな解決方向探し)があるよ アプローチ
プを小さくすることで、本当に大事なところだけにしか取り組めなくなるよ
発表の準備にも時間がかかるよ
やること計画と発表結果の例 284
 こうしてチームはマイクロサービスの設計を開始できる知識を得たのだった2021/01/23 15:09 285


今日も7ページよむぞ2021/01/24 19:06 293まで

ティ16 イベントストーミング 285
  ドメインについてのイベントを探す手法
 疑問点を付箋にすることで、議論が途切れず、可視化もできるよ 288
 中には深堀りしないといけないイベントもあるよ

ティ17 グループポスター 290
  成果物としてポスターができる
  チャのアイデアがのるらしい(ER図的な図だったりする)


アクティビティ編続きから 1分
ティ 18 ラウンドロビン設計 293 2min

    素早く回してアイデアを多く得る(2個~)(30分前後)
        3~11人
    作成 批評 出た課題の解決を試みる
    設計の環境が制約されるので創造性が育まれる
    紙にスケッチ(アイデア)を書いて、書いた紙を回して批評して、さらに別の人が課題の解決策を書くことで相互作用的ないい効果が生まれる
    (感想) なにか新しいことをやりたかったらやってもいいかも 6分

ティ19 ホワイトボードジャム 296 6分

    ホワイトボードを使って話し合いをすること
    ホワイトボードマーカーの色は何種類もあるといい
    みんなで書き込む
    まとめを写真とともにwikiに書きましょう
    作成 - 共有 - 批評 フロー(自然に行われること) 8.5分
    ホワイトボード上のスケッチより、それをネタに行われる議論の方が大事 (この記録も大事)
    (ここで300ページに到達) 2021/01/25 16:29 10分

16章

  • 設計を触れられるようにするアクティビティ
    16章 設計を触れるようにするティ 301 10.5分
        (感想) どのくらい触れるようにするのかは、自分の興味の強いところだ
            とくに「プロトタイプ」とはどういうものか (興味津々) 11.5分
        プの例 プロトタイプ (色々なやり方がある)
            ト ドキュメント
            実験
            計算
            物語る
            演技
        ほとんどが30分以内で作れるものだ 13分

    ティ20 チャンド 302 13.5分 アーキテクチャデシジョンレコード (自分は「影響」も書けるといい。書いてみるかも)
        設計判断を記録していく
            現状のチャについてのコンテキストを提供できる
        アーキテクチャ思考を訓練
        重要な判断の例 が303に乗ってる 15.5分
        タイトル コンテキスト 内容 ステータス 影響  ← チャンドテンプレ
            ステータス: 下書き、提案済み、承認済み、廃止、非推奨
        古い記録(過去の判断)への参照をつけるのも大事 16.5分
        短く、1,2ページに保てるとよい
        チャ俳句(ティ21)や ムメタファー(29) もオススメ 17.5分
        なぜ Gitgubと Travis CIを利用する方がいいかがチャンドの形で提案されている
            これが採用されたら、これがこのままコンテキストとしてできてる
            しかし、自分の場合、やはり既に、手元.txtには必ず経緯が書かれていて結構できてた
                足りてない部分: 影響。影響は意識しては書いてないかも 19.5分

    ティ21 チャ俳句 305 20.5分
        ダーが実際に使えるように小さくまとめよう
        理解が容易になる
            チャのいいところを宣伝するチラシができる
            他のより詳しいトを参照する判断基準に使えるチラシ ドキュメント
                (感想)タンジブル(チャが触れるように)になってるなぁ 22分
        コンパクトに次のことをまとめる
            解決策全体の簡単なまとめ
            重要な技術的制約の一覧

            主要な機能要求の概要

            品質特性の優先リスト

            根拠と妥協点を含む、設計判断に関する簡単な説明

            使用されているアーキテクチャ様式とパターンのリスト

            上記以外に価値を持つ図表だけのリスト
        (感想)なんか結構でかそう24.5分
        1ページにするためにそれぞれを簡素にかくらしい
        重要なことだけを書く
        生きたドキュメントなので修正OK
        「Lionheart プロジェクト」みたいなプロジェクトくらいの大きなものについてのチラシとして書く
            ティ20 (チャンド)と違って、個々の判断とかムの一部とかについてチラシを作るのではない 26分
        ひと目でプロジェクトがどういうもので、どういう技術要素とかがあるのかがわかるね
        (感想) プロジェクトごとに書いてあると確かに理解が早くなりそうだった
    ティ22 コンテキスト図 308 28分
        ムとダーたちの関係を書く ステイクホルダー システム
        確かに関係がわかりやすくて、ムがタンジブルになってた (初見の人へのわかりやすさが必要なときにはつくろう)
            (たまに作ってる感) 30.5分
    時間まとめ
        今日は29.5分でティ18-22 (5つ)すすんだ 293-309(16P)
        372がゴールなので、あと 63ページ (4日)
    感想
        「影響」は書いてみようとおもった (経緯はかいてる)
        初見の人にわかりやすさが要るときは、必要な図を引き続き書こうと思った
            チラシ (チャ俳句、ティ21)は書いたことなかったので、必要なときには作ると良いと思った

23, 24

    ティ編つづきから 1分 触れるようにする編
    ティ23 まずこれ読もうリスト 309 (既にやってた)
        ドキュメントを探すのに役立つト
            キュレーションやリーディングリストを作る
        (自分ごと)
            監視とか、数値確認用ツールとか、目次的なのは既につくっていた!
        概要になぜ重要なのか書かれているとさらにわかりやすいよ
        公式や市井のWeb上のドキュメントでもいいよ (低コスト) 4分
        「監視」とか「数値確認用ツール」みたいな細かいスコープだけでなく「◯◯プロジェクト全体のこれをよもうリスト(目録)」を作ると初学者にわかりやすいよ 5.5分
            歴史的資料も載ってると、コンテキストがつかみやすいよ

    ティ24 インセプションデッキ 311 6.5min
        インセプション 方向づけ
        方向性をあわせるために、プロジェクトの開始時に10個方向づけをみんなで決める 7min
            バンドだったら即解散しそう  でも、悪い話は早めにするべきで、この方向づけが一致したバンドはずっと存続しそう
        10個の方向は簡単なテキストとか簡単なスライド
        なぜやる どんなビジョン どんな価値を作るか スコープの範囲 主なステークホルダー 基本的な解決策 主なリスク どのくらいの作業&費用 トレードオフへの向き合い方 初回リリースはいつ
            Afterglowの場合
                なぜやる: 蘭ちゃんだけ別のクラスになってかわいそうだから
                どんなビジョン: ロック
                どんな価値: ライブしたり曲を作る きいたらアガる
                スコープの範囲: 近場のガールズバンドファンにライブで届く
                主なステークホルダー: 自分たち 親 近場のガールズバンドファン
                基本的な解決策: 普通に練習したり屋上で歌詞を考える
                主なリスク: 家業の華道が大変
                作業&費用: 週3で2-3時間ずつくらい練習、みんなお金持ちなので大丈夫
                トレードオフ: 正確さとかうまさよりも自分たちらしさが大事
                初回リリースの時期: 3~4ヶ月後に1stライブ
            …というふうに、いろんなプロジェクトに使えるのだった 12.5分
                というか、これが決まってないとブレる
        できたらレビュー&修正
        自分たちらしさを見失わないために定期的に見返そう (重要)(2章)
        (感想) 同じ方向を向くのには必要そうだった
            Afterglow も これを作っていれば 1章や2章で時間をかけて悩まなくてよさそうだった

    ティ25 モジュール分解図 314 14.5min
        ツリー図 16.5min
         いろんなものをモジュールに分解する
        一番上のルートは 「システムは何と何と何でできている」になる
        ソフトウェアを使ってツリーを書くといいよ
        大きい図を部分図に分割するといいよ 19.5min
        大きさを含めて描くこともできるよ
        (またAfterglowの例) バンドリ→ガルパ→Afterglow→美竹蘭→華道の家元の娘→親・華道との葛藤
            バンドリ→ガルパ→Afterglow→美竹蘭→華道の家元の娘→かなりお金持ち→{自分の部屋の家具, 大きな一軒家}
            重要な要素を入れ忘れないようにしよう!

    ティ26 選ばなかった道 22min 317
        却下した理由とともに書き残されていると、判断のコンテキストや論理的根拠があとからわかるよ 22.5min
        短くわかるのに十分な量だけかいてあればいいよ
        例: パッケージムとクラウドムの融合 (更新間隔が違う)
            これこれはコストがえられる利益より上回る的な 26min
                コストと価値のバランス
                    「5人一緒にいるためには、毎日4時間練習する必要はない」
            選ばれた道がなんだったのかが気になる (書いてあった)

    ティ27 学習や判断のためのプ 319 29min プロトタイプ
        学習や判断のために自分で軽くやってみよう
            阿部さんがよくされてるイメージ
        プロトタイプをどこまでのものにするのかの計画が大事 足りなかったりやりすぎたり 31min
            プを使い捨てるか、よかったときに本番にも使うかを前もってきめよう
        プではスピードのために品質を引き換えにしないといけない場合があるよ
        タイムボックス(2日とか)の最後に、試してみたもののいいところ悪いところがわかって判断につながるよ 321 33.5min

    今日のまとめ
        時間
            今日はティ 23-27(5つ) 32.5min 309-321(12ページ)
            372がゴールなので あと 51ページ(4.5日)
        何を大事にするのかはっきりさせておくのが大事
        あとはドキュメントの作り方 小ネタというかコツみたいなのだったので、日頃気づいた中で実践していきたい
            というか結構できてる気がする

27

    ティ編つづきから 触れるようにする編 2分
    ティ28 321 シーケンス図
        ごくたまに自分でも書きます(2,3年に1度)
        ちなみにここでは
            実線の閉じた矢印: 同期リクエストmsg
            実践の白抜き矢印: 非同期リクエストmsg (例になさそう)
            点線: 応答
        テキストベースで保存できるといいかもね 4.5min js-sequence-diagram とか

    ティ29 ムメタファー 324 6min
        システム
        ムを他の出来事で例える
        思い出に残る 7min
        ポップカルチャーや食べ物
        クローラの頻度についての例

17章

  • 設計の選択肢を評価するために使えるアクティビティ
17章 設計の選択肢を評価するティ 329 9min

    評価のティ
    悪いことを早期にみつけよう

ティ30 チャグ 330 10.5min

    アーキテクチャ ブリーフィング
    建設アーキテクトがクライアント教育したり進捗共有するための一般的な方法 11min
    ソフトウェアでも数十年使われている手法 11.5min
    質疑応答時間を15-30min(以上) とろう
    準備には説明の長さの2倍の時間がかかる
        目安にしようと思う(もっとかけてしまってるかも感)
    質問や意見をするのは最後にしよう (メモっておこう) (やってる…はず)
    書記もいるよ(できてる) 15.5min

ティ31 コードレビュー 333

    ューの中でチャのことを教えることもできるよ 16.5min
    初期のューは10分程度で済むよ
    複数レビュアーの参加を推奨しているチームが多いよ 17min
    ューは視野が狭くなりがち。コードの長期的な進化に目を向けよう 18min
    設計評価はコードレビューの中ではできないよ
    チェックリストがあるといいかもね 正しさ 一貫性 テスト容易性 保守容易性 信頼性 スケーラビリティ 20min

ティ32 意思決定マトリクス 336 20.5min

    ルーブリック…通知表の項目
        7項目以下
    (本文で詳しく出てきたティ)

ティ33 振る舞いの観察 339 22min (できてる)

    ムに計測の仕組みを追加する
    計測結果でダーの関心する質問に答える
    KibanaとかDatadogとかでできてるね
        必要な時は専用ログを吐く
    GQMプ (ティ3) などで指標を決めよう
        Goal Question Metrics

ティ34 質問 意見 懸念 QCC 341 25min

    Question Comment Concern
    これでチーム内で知識が流通するらしい
    チャについて知っていることや、実は知らないこと、心配していることを学習するプを開くティ
        ワークショップ 27min
        そのことについてブレストする 付箋を書きながら
            意見 黄色 質問 青色 懸念 ピンク
        最後にまとめをする やるべきことを決める(優先順位 & 担当者)

ティ35 リスクストーミング 344 29min

    リスクについてブレストする
    やはり付箋を使う リスクの危険度ごとに色が違う
    やはり次にやることを最後に決める (できてる)
    チャのスケッチを見ながらやることで発想がたくさんでる 31min

まとめ

    説明の準備に2倍の時間は目安にしようと思う
    できてることが多かった感
    29分で ティ28-ティ35(8個)  321-347 (26ページ)
        今日ははやかった
        372がゴールなので、あと 25ページ(1,2日)

28

    ティ編つづき あと1.5日 評価編 1分
    ティ36 サニティチェック 347
        チャのことを考える抜き打ちテスト 1.5min
        認識や知識のズレがなおる 348
        ムの知識を文書化する
        未知の未知も明らかになる 2.5m
        本当にいきなり5min(長くても10min)で終わるようなクイズというか問いかけを出すティ 3m
        必要であればNext Actionを最後に決めよう
        罰や昇進のために使ってはいけない
        定期的に実施するといいよ
        例: 技術要素の選定理由はどれでしょう?
        (感想) 知識が行き渡ってないときにはよさそう

    ティ37 オクルー 350 6m  シナリオウォークスルー
        チャが特定の品質特性シナリオをどう満たすか(満たさないか)話をすること
        1つの品質についての打ち合わせに20-30min かかる 8m
        会議では質問をしよう
        3-7人でやろう
        シナリオウォークスルーの名の通り、どう品質特性を満たすかのストーリーを述べる 11.5m

    ティ 38 スケッチして比較 354 13m (常に比較するのはよさそう)
        比較対象をスケッチによって作って比較判断できるようにしよう 13.5m
        議論は議事録とかでのこそうね 14.5m
        話し合いをすすめて合意形成を勝ち取ろう 15.5m
        現在と未来の比較とか
        図(スケッチ)があると比較しやすいよ
        (感想) 常に案を比較しようと思った
            図も大事だと思った 17m

    この後は著者紹介、参考文献リスト
    あとがき
        習慣が大事 アリストテレス
        It! シリーズの一冊だったらしい
            HeadFirst おもしろくてすき
            It! もオライリーの本
    感想
        設計のやり方というかテクニックはわかった
        デザインパターンはHeadFirstを今度こそ読もうと思った 22分

    時間まとめ
        ちょうど12/28に始めた記憶なので、 Design it は 31日でおわった
        372ページだったので、一日 12ページだった。
            これが足りてるか足りてないかは 次の「スケジュール感つくり」で分かる...

Design it! 7章-13章MEMO

親: Design it を読んだ - t_hazawaの日記

7章

よくあるアーキテクチャパターンを12個ほどご紹介

なう(2021/01/06 21:10:53)
114 コンピタンス 期待に応じることが出来る能力
 CoCチームは会社にたくさんあるねなう(2021/01/06 22:55:46)
 RDB専門チームとか
 
108 チャの前提に一致する技術を選ぼう なう(2021/01/06 19:50:08)
106 SOAP はサービス志向アーキテクチャプロトコルだったのね
 
なう(2021/01/06 18:41:51)
103
C&C構造 コンポーネントアンドコネクターか (前に出てきた言葉)
 
なう(2021/01/05 22:42:29)
7章 本来知りたかったアーキテクチャパターンについて書かれているようだ(略してチャン)

8章

決定したアーキテクチャを後世に伝えよう

なう(2021/01/08 20:56:07)
132 c&c や マイクロサービス化してコンポーネント化すれば、使用に関する規約を強制できる
PaaSはIaaSとSaaSの間。RDSとか
 コンテナもコンポーネントごとに別れてるので、接続部分で使用規則を強制できるね
 githubも書き込み提案を許可しつつも書き込み制限をできてるよ(使用規則を強制できてる)なう(2021/01/08 21:23:25)
133 コメント内のドキュメントへのリンクはいいぞ
 
なう(2021/01/08 20:10:17)
演習 8.2.5
セル(生き死に状態を持つ、グリッド位置を持つ) 繰り返し 
 過疎 生存のまま 過密 誕生 →セル変化(命名の進化)
 的確かつ完全 → 適切な行い
 
グリッドに他のものが来ないか気になる 今のところはないよ
マス (という概念ができるかも)
 
なう(2021/01/08 17:54:12)今日は
 チャプク アーキテクチャフリップブックなう(2021/01/08 18:00:56)
 チャの変化と選択の過程集 (チャプク)
 自分は過程は(やたら詳細な議事録に)残してるけど フリップブックみたいな見やすい形にはしてない
  フリップブックは多分みやすいのだろう
   思ってたのと全然違った(だいぶアクティビティだった)
    フリックブックを作っていって、適切なチャを探すというティ
   と思ったが、最後に大事なところを要約してたなう(2021/01/08 18:13:06)
 
 
8.3モデル(チャ)をコードに埋め込む方法なう(2021/01/07 20:24:12)
 チャの名前をコードでも使おう
 
なう(2021/01/07 14:01:00)
119 8章 長らく探求の章だったが作成の章になった
 インターフェイスを書くところではそれだけを書くと記述がシンプルになるなう(2021/01/07 14:30:03)
  詳細を隠す
 実験は後で失敗が分かるよりは低コストらしいなう(2021/01/07 14:33:10)
1時間の設計が1ヶ月のコーディングに相当するなう(2021/01/07 14:58:08)
127 名前つけの7段階なう(2021/01/07 19:05:34)

9章

チームでアーキテクチャを考えるやり方

なう(2021/01/09 20:48:30)
9.5リモートワークショップ (トプ)
 パーキングロット(別のことを端に書いとく) 教えられなくてもできてた
 box.com 共有サービスなう(2021/01/09 21:32:40)
 
なう(2021/01/09 20:16:25)
集団思考は、プの目的達成でなく、調和と合意を心配して良くない(有害)
 ワークショップ
 
なう(2021/01/09 19:07:00)
145 やはり大切なのは「次にすること」をはっきりさせること
9.2.1 スケッチ(アーキテクチャ図を作る)の 実践・日頃からの練習 は飛ばしたなう(2021/01/09 19:09:08)
 日常的にアーキテクチャ図をスケッチしてみよう、という演習問題だった
 
なう(2021/01/08 22:59:07)
141
プでは目標を念頭に置くのが大事 ワークショップ

なう(2021/01/08 22:00:07)
137
9章 チャンオ アーキテクチャデザインスタジオ
シャレット(フランスの建設学科の荷馬車) 制限時間内でできるものが限界なう(2021/01/08 22:08:30)

10章

アーキテクチャの視覚的な描き表し方

なう(2021/01/10 23:05:06)
演習10.2.5
コンテナとコンポーネントがわかる コンテキストも少しわかる クラスはさっぱりわからない
多層
メタモデル…DBとかwebサーバとか?それならわかる
 メタモデル…記事とかそういうことらしい そこまで細かくは無いのでわからない
  (この前書いたニュースオリジナルの構成図)
単純化もできる かなり詳しいので(←俺は詳しいんだ的な意味?)
 
なう(2021/01/10 21:06:19)
164 タイトルをつけられるテーマのある図をかこう なう(2021/01/10 21:06:34)
 図にはタイトルをつけようなう(2021/01/10 22:27:55)
C4モデル コンテキスト→コンテナ→コンポーネント→クラス とズームして言って図にかけるよ
  (棒銀的なテクニック) 
 箱の中に説明を書くのがオススメ  
 168 チャパターンがわかるように図を書こうね
図にはストーリーをつけるなう(2021/01/10 23:03:18)
 
 
なう(2021/01/10 17:55:12)
Marathon ... kubernetesの仲間
スティッキーセッション Cookieでクライアントを特定のサーバに結びつける AWSにある
 表もビューの一種 161
考えが収束に向かったら正確にしていこうね それまではラフくて良いなう(2021/01/10 20:37:20)
 
なう(2021/01/10 15:35:56)
接続が多いとテストとデバッグが難しくなる158
 モデルやユーティリティはどこからでも接続だから図から省くのも手なう(2021/01/10 16:09:44)みやすくなる
 必要なところまでで詳細化をやめよう
 
 
なう(2021/01/09 22:02:26)
10章 チャ図を書く方法 複数のビューで描こうね Googleマップ的な見せ方(色んなレイヤーがある)

11章

アーキテクチャを文書にする

なう(2021/01/11 19:40:16)
179 まず目的を書こうね チャの記述もDRY
 チャは大きいのでひとつの図では描ききれない(完全に記すには複数の図が必要)
 ◎最低でも用語集は必要(用語集推し)
 
180 前のシステムの引き継ぎ資料は確かに最初に項目を決めて、分担して書いたなあ
  (最初に書くことを決めて、誰がどこを書くかを決めて分担して書こう、とDesign it にも書いてあった)
 設計判断の根拠(資料に必要な4つの物 聴衆念頭・複数ビュー・要素の責務・設計の根拠)
 が散りばめられたアーキテクチャドキュメント
 
182 読まれるチャ記述を書くのが大事
184  見栄えがいいと安心感が高い
185 ダーが知りたいことを書こう
 ADR アーキテクチャデジジョンレコード チャンド
  コードのコメントに設計根拠を書くのもいいぞ
 
187 著名なュートトがあるよ どういう視点で書けばいいかのセット
  ビューポイントセット C4モデルとか(C4モデルは将棋で言う棒銀 これ一つ知ってれば結構戦える)
   context contenner component class (の大きさでチャトや図を書く) アーキテクチャドキュメント
 
 特定の品質特性を満たせることを示すためにビューポイントを設定することも多い
 学習容易性のビューポイントのもとでは、チャの学習が容易になるようにまとめページを書くなう(2021/01/11 21:56:55)
  規制のュートでは規制についての観点でまとめを書く
   ビューポイント=まとめページ
 
なう(2021/01/11 13:57:30)
173 チャトは大事 アーキテクチャドキュメント
174 すべてのダーはチャを理解する権利を持つなう(2021/01/11 16:52:10)
 チャが分かると品質特性が分かる(のでどのダーもチャを知りたい場合がある)
 チャを描くことはコードを書くより早いので早期に評価できる(できてる)
  今日も「簡単なまとめ」でチャを先に示せたね(簡単すぎた) 2021/01/14 17:35
 チャトで 目的・計画・ビジョンが明確になるなう(2021/01/11 17:06:43)
 
175  チャの記述方法は変更頻度で変わるよ 共有の必要度合いでも変わるよ
 部族的な方法もスタート段階ではいいよ 変更しやすいよ
176 この辺りの話面白い(チャの記述について) 共有はむずい
 2、3人以上に伝えるなら伝え方を進化させよう 詳しくはティ20らへんで
  アクティビティ
形式的なトが必要な時でも、部族的な方法から始めるのが大事とのこと(変更が容易)
 最初は変更が多いからかななう(2021/01/11 17:34:33) 
  チャが融合し始めたりダーに求められたらかっちりしたトを作る(必要な場合に作る)
 伝統的なSAD アチャト は作るの大変だけど見合う価値はある(が必ず要る訳では無い。必要な時に)
  ソフトウェアアーキテクチャドキュメント
 
 
なう(2021/01/10 23:09:26)
11章 チャの記述

    188 選ばなかった道と理由が書き残されてると後続の人にわかりやすいよ
        「この決定は後でも戦略を変えることができる」(コンテナ化しなかった判断に添えた文章) みたいに書いてあると後続の人に役立つよ
    SQL DBに比べてSolrとかは検索できる入力クエリが幅広いというか、色んな検索ができる
    演習 11.5.2
        実況で「これはこういう理由でこうする」「これはこういう理由でこうしない」とあった
        引き返せない判断はめったにない (いつも引き返せる判断をしてる)
            …ので、割と速度重視で突っ込んでいってもいいかなと個人のプロダクトでは思ってる (最近慎重にしすぎてる感じがする)
    190 ADR (チャンド)は後から知るのに便利 
        アーキテクチャデシジョンレコード
    後半になると変更が少なくなるのでしっかりしたトを作りやすい
        ドキュメント

12章

アーキテクチャを評価する方法(通知表をつける)

12章 P.191 チャに通知表をつける アーキテクチャ

    手遅れになる前に改善できるのが通知表
    チャの評価は設計完了タイミングだけじゃないよ
        承認の儀式も、引き返せないタイミングだと大きな意味があるよ(契約とか調達の前とか)
    チャが間違ってたら、全てが失敗したり、実装も始められないわけじゃないよ
        個人のやつも引き返しはできるのだから、ガンガンやっていいかもね(変更するコストが低い)
    よく出ることば  ASR アーキテクチュラル シグニフィカント リクアイアメント
        これを満たせているほどいいチャだよ
    12.2 チャのテストをする
        評価するには実物が必要だよ
            ついにプロトタイプがどれほどのものかが示されるのか!?
            最初にでてきた例: ホワイトボードスケッチ や 完全なるチャ記述
                やはり、この前書いた「簡単にいうと」(jmeterの代替手段)と同じくらいだった
            やはり手書きスケッチからコードを書いたものまで 様々だった (そのようにdesign it に書かれていた)
            アーキテクチャ俳句(ティ21)推しな著者
            「品質特性がどのコンポーネントで促進されてるかを示す 『ユーティリティツリー』」
    P.193の真ん中まで。今日は大変だったので量的にはかなり少なめ


195 チャにおいて、要素間の関係は大事(図に書いた時の線)(軽視されがち)
196 項目表(品質特性の)を作ってチャを評価する
197 尺度の多さについて 4段階までが適切だよ
199 この本の後ろの方にはいろいろなティが載ってて(37以上)楽しそうだ アクティビティ

演習12.2.4 は日頃 その案件の●謎 を手元にかいてやってるのでいいや

202 評価には青果物が必要だよ(チャ記述とかテスト結果とか)
203 シナリオウォークスルー(オクルー)推し
204 評価クプをすると、どう改善すればいいかも分かる(こともある) ワークショップ
205 良いチャは変更が容易
 ATAMという、重量だがしっかりできる方法があるらしい チャトレードオフ分析法
206 (自動)テストは実行コストや維持コストが安いのがオススメだよ 基本的には
  でも、複雑な重い統合テストをしないといけないこともあるよ
 そんなわけで、チャューも軽いのがいいよ(頻繁にやるやつは) チャレビュー
 深い評価は、1,2回、対象を絞って深めの評価を数十回、クイックチェックを数百回以上する
208 虹を食べると健康的(色とりどりの野菜など) チャも虹を食べよう
 課題の虹 色んな種類の課題がある
 リスクは条件と結果(3.3) 今の条件と未来の結果

209 未知の未知はチャを殺す
 設計のチャと実装のチャにはずれ、侵食、横滑り、腐敗が生じる
  コードやトの細部に定期的に注意を払う ドキュメント
210 チャ評価を次に進めるには、まだされてない質問をして様々な課題を探る
 低セレモニーな方法も(特定の特性品質上の問題,課題について)質問
211 チャ評価も低セレモニーな、軽い方法から慣れていこうね
 プでもNext Action が大事 (ワークショップ)

213 13章 アーキテクトちから
 FaaS (ファンクション)もあるよ
 いまでは開発者みんながト アーキテクト
214 書かなくて皆が理解できるならトは少なくて済む ドキュメント
 開発リーダーはチームの数歩先を歩いて メンバーを罠や落とし穴から遠ざける
215 自分もトの端くれ
 ムでチャを設計しよう(ムにチャを設計させよう) チーム
 ントも徐々に成長するといいよ ドキュメント

216 判断で満たされたントはメンバーにューしてもらおう レビュー
217 教育では足場を作って上げるといい 2021/01/17 15:04
  設計の範囲を限定するガイドレール 設計をシンプルにするために使う
  チャを台無しにしてしまう危険性が減る 設計ポリシーなど
  コードに組み込まれてたりもする
   2人ューしないとマージできないとか、CIの自動テスト通らないとダメとか
    (ガイドレールの強制の例)
  CIの自動テストを流さないでいるとズレたり侵食したりするわけね
218 ムがチャの問題点、改善案を出すようになってきたらいいね
  自分も監視面では出せてるかもね(grafanaで全ログ見るやり方とか)
219 権限の7つのレベル
   指示 説得 相談 合意 助言 尋ねる(ムの判断の理由を尋ねる) 委譲

13章

アーキテクトとして成長しよう

13章 トちから P.220 から 5.5ふん

    220 確信が持てる部分の権限をムに委譲しよう 7分
    いまは技術進歩が早いから技術リーダーが全ての技術を把握するのは難しいよ 8分
    221 コミュ力(技術的ビジョンやチャの説明・説得や傾聴力)がいるよ 10.5分
        チームを育てていくと(1人じゃないので)たくさんのことができるようになってよい 11分
    222 ムが経験を積んできて確信をもてるようになったら、協働的ワークショップをひらいて合意での技術選定とかステップアップしていこう12分
    演習13.4.3 権限委譲ポーカー(デリゲーションポーカー)
        Management 3.0 というウェブサイトで印刷できる
        https://management30.com/practice/delegation-poker/
            ↑多分、説明Youtube 3分半を見るとはやい
        前の頁で出てきた、7つの権限委譲の段階がでてくる
        全メンバーが、この案件については、どの委譲レベルでできるか示して、その委譲レベルのもとで会話してみる、ということらしい 20.5ふん
        自信のある(技術)領域だとレベルが高くなる
            これはゲームだけど、レベル決定に不満を持つことがあって、その不満の原因をはっきりできれば、いきなり実践で不満をもつよりいいね
        やってないけどこのくらいで… 22分
    223 アを出荷する力を持つのはチャ(人ではない)。トはそういうことができるようにチャを育てるのみ 23分
        ソフトウェア
    224 トとしては、全体の最小限のチャを設計して、他の部分はそれぞれをムに任せられたりできるといいよ 24.5ふん
        (全体的な)設計判断を軽量な文書化するといいよ
        技術的負債リストと返済計画をつくるといいよ 26分
        チャをムで設計しよう チーム
    224 大体の場合は、プログラミング自体は簡単な領域だよ 27分
        難しいのは問題の理解と、解決のためにいろいろなシステムをどう連携させるか決めること

225 13.6 Lionheartプロジェクト(例題)は完遂した 28分

        Lionheart プロジェクトでは 前払いのチャ設計を少なくしたらしい
            大体の中規模プロジェクトでは20%と書いてあったね 29分
        最後にメンテナンス ントを書いたよ 30分
            引き継げるように、しっかりしたントを書いているのだ (じぶんも静画の最後でやった(そう指示を受けたので、上長の指示が正しかった))
        年間1億円浮いた (MVP) 32分
    226 これで第一部と第二部はおわり
        次からはアクティビティ一覧が始まる 32.5分
        銀の道具箱のプラクティスも使って、楽しく設計していきましょう 34.5分

ここまでの感想 (Design it)
    いきなりアーキテクチャパターンなどを学ぶよりも、どういうシーンで使われるのか知れたことで、入りやすくなったと思う

今日の時間まとめ
    30分で 220-226 の7ページ
        ただし、 演習13.4.3 (1ページ) が 10分
        つまり、 6ページに20分 (1ページ3.3分)
            大団円とあって、結構書くことが多かった (23行)
                (2行かくのに1分なので、 11分は書くのに使っている)
                それを引けば、読むだけなら、 6ページ9分 (1ページ1.5分)
        明日からは、(大団円な内容ではないので) 書く量が減って加速するかな? (明日も計測する)

t_wadaさんの講演資料を読んだ

経緯・概要

  • 勤務先の新卒研修で t_wada さんが講演された
    • 新卒でない社員も見れた
  • 自分は別の仕事をしていたので、後から講演資料を読んだ
  • t_wadaさんの講演はとても好評で、自分も、確かに新卒研修の講演としてとても素晴らしいと思った
  • しかし、(自分の中で)過去に決着をつけたことながら、やはり「技術的成長が主目的」というスタンスと、自分の「モノつくりが主目的」というスタンスは、そのままではコンフリクトするものなので、思うところがいくらかあった
    • 結論は、(以前からそうなのだけど) 「モノ作りとは別に技術的成長をするのがよい」

小感想

  • このように良質な研修をできていて勤務先はすごい

構成

  • t_wadaさんは以下の二部に分けて講演をされた
    • 学び方を学ぶ の部
    • 現役プログラマでいるために の部

講演資料を読んで感じたこと

読者である自分(t_hazawa)の背景

  • 自分は「モノ(Webサービス)」を作りたく、この業界に入った
  • 新卒1年目は勤務先の教育カリキュラムをガッツリ完遂した
    • 54項目のうち、Zabbix Server の導入だけ失敗した(10年前)
  • 2年目~9年目の真ん中(満8年半) までは、作りたいモノのために必要な技術だけを学んで、後は、持ってる技術で作っていった
    • その結果、作りたかったモノは作れてるし、今も世の中で解決できていない問題を次々と解決できていっている
    • 人もそこそこ見に来てくれてる
  • ところが、それでは勤務先で必要な技術は身についていないので、別途身につける必要があるね、ということになった
    • → 1日30分
    • (多分 新卒入社後 満3年半めまでなら、何を作っていても成長になるとは思う)

学び方を学ぶ の部

  • 達人プログラマー(第2版)の紹介 (超推されていた)
  • アジェンダがとてもわかりやすかった (指マーク)
  • 学ぶために手を動かすのが大事
  • 「毎年1つ言語を習得しよう」と書かれてるけど、自分はこれまでトータルで3年に1つくらい
  • docdiff 便利そう
  • 量が大事とのこと (質に転化する)

現役プログラマでいるために の部

  • 自分もコードは毎日書いてます!
    • 95%は知ってる技術で作るためにしか書いてない
    • OSSでもないので質も低い
    • (実際には設計、データ準備もしてるので、厳密にコードを毎日ではなかった)
  • 週末はウォーキングにいったりしてるのは自分も同じ
    • (平日も(終業後に)コーディングすると、休日が充実するぞ、というjQueryの開発者さんの話について)
  • バックグラウンド処理で考えてるのも同じ
    • (毎日コーディングすると、生活の中でもそのコーディング対象のことをこまめに考えることができるという話)
  • 講演資料では「毎日コーディングが大事 (設計、ドキュメント書きなど周辺タスクを含めない)」という話だったけど、自分の場合はやっぱモノを作りたいので、設計やデータ準備しかない日があっても仕方ないと思った
    • やっぱり自分は技術的成長よりモノができることを重視

年下から学ぶ のコーナー

  • ちょうど「過剰適合」の話があった
    • 同じ技術だけだと成長がほぼなくなるので、技術範囲を広げていかないといけないね、という話(だと思う)
  • 外部に出て、自分のスキルを相対化するのが大事 (とのこと)
    • 使う道具を定期的に変えるのが大事 (とのこと)
      • でも自分は、「作りたいものが十分な速度で作れなくなる」から、別途、「技術的成長のための修練の時間をとる」のが良いと思う
  • 外部の勉強会に行ったりするのは、それだけやっていても作りたいものが作れなくなると思う… ので(作りたいモノがある人の場合)、ほどほどの量やるのが良さそうと思った (月1とか2ヶ月に1度とか)
  • 複数の柱(複数の技術)は安定しそうでよさそう (被雇用的に)
  • もしかしたら、「ロードマップの真ん中で、エコシステムの端を」の部分が大事だったのかもしれないけど、スライドだけではあまりわからなかった

質疑応答 の部 (のログを読んで思ったこと)

  • (毎日のコーディングで作るもののお題について) そのお題ができなくてもいい という話だった
    • 確かに、技術的成長も主眼に置くなら、ギリギリできないことを目指した方が成長できそうだと思った
  • 海外で使われ始めているプロダクトに関する情報発信を追うと、スキルセット的に市場価値が出る...とのこと

感想・まとめ

  • 元々考えて、やり進めていたことと概ね同じだと思った
    • (モノを作る方に時間を回したいので、成長のための時間の量は半分くらいだけど)
  • 新卒1年目の人も、この教えの通りやれば会社で間違いなく活躍できると思った (多分、土日休含めて1日1時間くらい)
  • 「モノを作りたい」はエンジニアになる動機としてかなり主要なものだと思うし、こういう動機の人にどう(会社に必要な)勉強をさせるかは大事なことだと思った
    • 多分、「成長はモノ作りと別腹」と割り切るのが一番だと思う
    • もしかしたら、「プログラミング/技術的なことが楽しい」動機の人の方が多いのかもしれないけれど

自分ごと

  • 大体は、いまも継続してやっていることかなぁ(毎日1日につき30分ぶん) と思うので、続けて行くぞ
    • 時間も、(土日休含めた毎日)30分ぶん(=週210分)で足りるんじゃないかな
      • (足りなさそうだったら増やす)
    • 勤務先の現チームはこの勉強時間を 大部分勤務時間に含めてくれているのでとても素晴らしい
    • モノ作りは1日1時間(以上)はやってる (もちろんこれは勤務外のプライベートの時間)

この読書記事でできなかったこと

  • こんなにしっかりブログに書くなら、講演を聞けばよかったと思った
    • 新卒向けという点や、元からある「成長派」VS「モノ作り派」の部分で話が大きくなるだろうと思って避けた(結局避けきれてない)
    • が、今回、元から持っていた考えを明示的にまとめたので、次からはスッと聴講できるでしょう

実践

  • いままでも実践できているので、引き続きやっていこう

所要時間

  • 講演資料をMEMOりながら読むのに80分
  • この記事を書くのに70分
    • 計150分

Design it! 1章-6章MEMO

親: Design it を読んだ - t_hazawaの日記

これは

  • Design it! の1~6章を読んだ時のMEMOです。

凡例

  • 2~3桁の数字はページ数
  • 横文字はひたすら情報密度が低いので、最後の1,2文字だけ読むと楽
    • 最後なのは、日本語の名詞は後ろの格助詞とくっつく(膠着する)から
  • (ブログに載せることを想定してなくて)下から上に書いていってるので、章ごとに下から上方向に読むと読めると思います

1章

設計の心構えなど

1.2.2 (演習)
モジュール: 階級クラスは(階級の)ネーム Attributeを使う
コンポーネントやコネクタ: httpdのマスタープロセスがワーカープロセスをつくる
割り当て: Lbがリクエストを受けてサーバーにわたす
 
演習も、本当に簡単に取り組もうかななう(2020/12/30 20:20:43)
 実践的なアクティビティ(アーキテクチャを作るために使える取り組み)が
 38あって役立ちそうかもなう(2020/12/30 22:35:42)(目次)
  しかし、タイトルだけみると、既にできてるのも結構ありそうなう(2020/12/30 22:42:51)
 1.1.5技術的負債がどのくらいコストなのか明示できるといいねなう(2020/12/30 23:10:08)
 
 
なう(2020/12/29 16:44:27)
できるだけ設計を後回しする
 Twitterはrailsで始めたが、2009年にjvmになった viii
 アジャイルでは偉いアーキテクトはおらず、現場でアーキテクチャを選ぶらしい xi
  人が第一義xiii

2章

どのようにアーキテクチャをデザインするか (早く読む方法に夢中)

2章 
19 デザイン思考は人間に注目するなう(2020/12/31 19:52:07) 解決すべき本質的な問題に集中なう(2020/12/31 19:52:36)
 デザインマインドセットなう(2020/12/31 19:54:26)
20 hart 人間、曖昧、再び、触れる …がデザインのコツ4つ
 
ソフトウェアアーキテクチャとかカタカナ語がひたすら長いなう(2020/12/31 19:37:48)コミュニケーション
 チャとトでよい(湯婆婆並感)なう(2020/12/31 19:41:14)(湯婆婆メソッド)
  ソフトウェア → ア
  ソフトウェアシステム → 厶
  デザインマインドセット → ト
  プラクティス → ス
  ステークホルダー → ダー
  トレードオフ → フ
  デザイン → ン
  デザインスイートスポット → ト、ントト
 
16 重要な設計判断}…重要かどうかは変更コストによって計られるなう(2020/12/31 19:40:36)
 
23(湯婆婆メソッド)
厶の設計では、異なるトの観点からチャについて考えなかん
 (25モじ)
ソフトウェアシステムを設計する際には、異なるデザインマインドセットの観点から
アーキテクチャについて考える必要がある。(53文字)
 
トは理解、探求、作成、評価 (デザインマインドセット)
 
23 (湯婆婆メソッド)
チャの設計ではトを選び、トのスも選び、そのスを適用することでチャについての新たな学びを得る…事を繰り返す
(48字)
アーキテクチャを設計する際には、マインドセットを選択し、そのマインドセットのプラクティスを選択し、
そして、そのプラクティスを適用することによって、アーキテクチャに関する新しい学びを得るということを繰り返す。(95文字)

31 2.4 ここまでが理論だったなう(2021/01/01 19:43:04)
 
30 プロトタイプ推しだけど、プロトタイプがどれくらいのものか実例を見せて欲しいなあ
 後ろに書いてあるかもなうあなう(2021/01/01 19:11:21) 書いてなかったら、自分で調べる
 
29 こういう仮説検証サイクルは日頃やってることのような気がするなう(2021/01/01 18:08:55)
 
なう(2021/01/01 17:17:14)
トを切り替えることで轍(わだち)、袋小路から抜け出せる
 デザインマインドセット なう(2021/01/01 17:17:34)
 
なう(2021/01/01 16:58:25)
2.3 学び方の話。TDCサイクル
 PCDAと大体同じ
 
なう(2021/01/01 16:09:46)
2.2.5
理解 数字を集めてR
探求 思いついたのをカラーノートに書いてるよ 良さそうなアイデアははいいところわるいところリストにして比較するよ
作る 作ったものがよく動いてれば人は着いてくるよ
評価 汚いが問題は解決できてる 作る前ならやっぱイメトレでよしよし上手くいくなとかここで詰まるなとか
通しで想像してみるなう(2021/01/01 16:12:08)
 (シナリオウォークスルー(ルー))
 
なう(2021/01/01 15:35:08)
作成をするとチームは分析麻痺から抜け出せる
 
なう(2021/01/01 14:50:21)
トにおけるスとは、例えば探求だとグなう(2021/01/01 14:50:47)
 デザインマインドセット プラクティス ブレインストーミング
 
なう(2020/12/31 20:16:24)
22
 以前からあるソフトウェアシステムを無視するというのはチャ設計で最も効果が薄い (re-design)
  もとがPHPだったら、railsじゃなくてlalavelの方がよかったのかも。(モデル使いまわし) なう(2020/12/31 20:06:14)
 
9 要素と関係の一覧は初めて意識するかもなう(2020/12/31 18:09:42)
モジュールは設計時の要素を表すものであり、コンポーネントは実行時の概念を表すものだ。
 言葉を正確に使うことは、時に重要な意味を持つ。そのために作られた「用語」は明確な意味を持つ。
 アーキテクチャの一般的な構成要素を示したいときには、コンポーネントやモジュール という言葉を使う、みたいな

3章

設計の勘所

46 3.3.3 アクティブデザインからパッシブパッシブデザインへ なう(2021/01/02 18:12:17)
 
43 リスクステートメントは、「今日の事実-未来の結果」形式 で書こうねなう(2021/01/02 16:10:22) 
 「いま膝が痛い - ので、明日は歩けないかもしれない」
 
41 cosysmo見積りモデルというものがある。 なう(2021/01/01 23:54:15) cocomoというものもある
 
39 過去の事例のデータで、どのくらいの時間設計に当てればいいかわかってよいなう(2021/01/01 23:38:49)
 10000ギョウナラ1%  10万行なら20%1000万行なら37%
設計すればリスクは必ず減るなう(2021/01/01 23:45:39)
変更が予想される時にはより軽量な文章の方法…?なう(2021/01/01 23:46:28)
 → これは10章付近に書いてあった(部族的な方法) (先を読んだ読者より)
 
36 3.2 早く学び早く失敗しようなう(2021/01/01 21:45:06)

4章

要件定義の勘所

51 4章ダーに共感 ステイクホルダーなう(2021/01/02 19:55:02)

なう(2021/01/03 18:46:52)
演習4.3.3  バウンシング 客 見込み客 お得や便利 使われない 完成しない
 
なう(2021/01/03 16:20:16)
59 ビジネス目標には「あると良い(あったらベター)」レベルの目標もある (必須ではなく)
ダーにはズの必要がある。なぜなら~ ズ=ニーズ=◯◯といったニーズ
 そのズを満たすのはダーの責任で厶は手助けするだけなう(2021/01/03 16:23:44)
 
演習4.2.1 やまぶき 
 ない 作った人 本人 楽に打てる、飛鳥配列の人はデファクトになってハッピーなう(2021/01/02 20:54:38)
 
54ダープは経験的にできるだけ詳しくするといいよ
 ステイクホルダーマップ
 矢印の多いネットワークハブ の人が重要人物
53 インタラクティブなプロトタイプ推しだけど、その具体例がこの後出ることを期待
 (出てこなかったら調べる)

5章

  • 要求の定義の仕方
5.6重要な要求ワークブックなう(2021/01/04 19:24:50) 
 項目に用語集がある(用語集をつけるのはとても重要)
 この本を読む目的:アーキテクチャ的なことを学ぶ アーキテクチャパターンとか? なんか違う気がするぞ!?
  確かに。アクティビティとかは参考になる気もするけど、もっとアーキテクチャパターンを知った方がいいかもね
   (この本には10個くらいしか載っていない)
 
なう(2021/01/04 00:49:13)
72 要するに、クリティカルじゃないところ(機能)は既存のもので埋めれる、推定できるだろうということ
 この5章でトは「要求エンジニアリング」をしている(要求グ) アーキテクト
 
なう(2021/01/04 00:38:51)
演習5.2.3
刺激 発生源 成果物 応答 応答測定 環境
いつも通りの機材環境で
テストプログラムが
Rep一覧をリクエストすると
システムは
Rep一覧を
予期したセットで返す
信頼性
 
ユースケース → ス
ユーザーストーリー → リー
ASR アーキテクチャ上重要な要求(繰り返し出てくる言葉)
 
なう(2021/01/03 20:25:39)
65 市がオープンソースを求めることは実際にあるのかな
アメリカは?IEではなくFirefox? 確かにchromeより公共そう
 
なう(2021/01/03 19:01:24)
5章 要望への応え方

6章

作る目標の決め方(満たすべき品質目標の決め方)

なう(2021/01/05 22:19:11)
96 SOLID原則を説明的な名前にしたらなんだったかな
 (私物のGoogleドライブに残してあった SOLID原則 でGoogleドライブを検索)
  単一責任原則
  拡張開放・変更閉鎖原則 (← 開放閉鎖原則)
  サブクラスに置換可能原則 (← リスコフの置換原則)
  (サブクラスを変わりに使っても動作するという原則)
  インターフェイス分離原則
  抽象依存原則 (← 依存性逆転の原則)
  (素朴にやると実装に依存してしまう)
 
「リスコフ」は頭文字をSOLIDにするために付けられてる感
 
6.5.2 責務を分割して交換出来ればもはやASRではない

なう(2021/01/05 19:33:18)
87 スムージー
88 ブレンダーの品質特性6項目
 パターンとは?(この次の項目に詳しく書かれる)
 
89規則チェッカー?
 サービスレジストリ? 7章で説明されるらしい
  どのサービスを利用できるかをチェックできるレジストリ(サービスに分けるチャパターンで使われる)
 
3層パターンは拡張性や可用性が弱点なう(2021/01/05 20:23:26)
 急峻なインフラストラクチャ曲線?(サービス志向チャ)
   小さい規模でもたくさんインフラが要るということだろう(その後は穏やかな上昇勾配)
  やりすぎになる可能性があるらしいなう(2021/01/05 20:30:34)
 
6.3.2 意思決定マトリクス
 項目別に重視するやつを決めるのだろうなう(2021/01/05 20:31:35)
 
なう(2021/01/05 12:07:55)
86 ダーは制約がチャに与える影響を理解してないかもなう(2021/01/05 12:08:14) 話し合おうね
 
なう(2021/01/05 11:35:46)
85
急ぎの時はチームが精通している技術を選択する
 
なう(2021/01/04 20:54:05)
83 確かにこの本はスコープ広いかもね
 我々にはRailsで大体は解決出来るような問題しか来ないのではないかな 
  ので、web開発に絞ったアーキテクチャなりなんなりの話だともっと直接的に役立つかもなう(2021/01/04 20:55:06)
  → でも、後半読んでみると、そういうWeb的問題でも使えそうな手法が載ってそうで楽しみ 2021/01/13 16:53
 構築方法やデプロイ方法も過去確立したものがそのまま使える的な。
  で、部分的に新技法を取り入れていくみたいななう(2021/01/04 20:56:38)
  でも前のパーフェクトRoRは超具体的だったので今回はこれくらい抽象的でもいいのかもなう(2021/01/04 20:57:10)
 
なう(2021/01/04 19:21:49)
77 Aの発言が終わった時だけ、聞いているBは問いかけられる(アクティブリスニングのやり方)
 『人を動かす』 カーネギー
 
79 品質特性シナリオ(オ)はこの例でも240もある
 そのうち大事な7つをちゃんとやるらしい

Design it を読んだ

Design it とは

経緯

  • 勤務先(の技術系役職者間)で高評価だったので、チームで読んだ
    • 会社にそれぞれのメンバー分買ってもらいました
    • これを読む時間は、勤務時間扱いでした (←本当に素晴らしい)
      • 平日に名目上1時間、チームで皆が一斉に読書する時間がある
      • (45分読んで、10分読んだことについて書いて、5分で他のメンバーの書いた物を読む感じ)

本の概要

構成

  • 第一部 チャ入門 (1,2章)
  • 第二部 チャ設計の基礎 (3-13章)
    • 第一部でアウトラインをなぞったことについて、詳細に基本を説明してある (180ページ)
    • 協働の仕方、ドメインの捉え方、PDCA的な回し方 など
  • 第三部 ティ集 (14-17章)
    • チャ作りに使えるティ(アクティビティ)を 38個説明してある (130ページ)
    • ティは 「問題理解」、「解決策探り」、「触れられるようにする」、「チャの評価」の4つに分類してある
    • 書いてあることは第一部、第二部よりだいぶ簡単なので、かなり高速に読める

章ごとの詳細など

以下に、読書中に書いたMEMOを詳細に載せます


感想・まとめ (影響: この本を読んで変わったことを書こう)

  • いきなりアーキテクチャパターンなどを学ぶよりも、どういうシーンで使われるのか知れたことで、入りやすくなったと思う
  • 日々の業務で気をつけたり工夫するといいポイントが多かった
    • できてることも多かった

この読書記事で

よかったこと

できなかったこと

  • 何も実勢しないと読んだ甲斐がないので、積極的に「これをするぞ」みたいなことを見つけて書き残したい

次回に活かそう

  • MEMO は、ブログに上げる時のことを考えて、上から下に書いていこう

実践

  • 読んだからには、なにか実践できるといい
    • 実践するために、「どういうことをやろうと考えている」とここに書く
    • 実践したらここに書く
  • 手元の .txt (案件ごとに手元メモを作ってる) に、「経緯」だけでなく、「影響」も書くようになった

所要時間

  • 本自体は丸1ヶ月かかった
    • 2020/12/28 - 2021/1/27 (毎日1時間弱)
  • このブログ記事
    • 2.5時間
    • 読みながら並行して書いたら負担は減るはず