もりはやメモφ(・ω・ )

インフラなエンジニアからSREへ

『思考のトラップ』を読みました。人間の脳の滑稽さを味わって明日に活かせるか

デイヴィッド・マクレイニー著 『思考のトラップ』を読んだので感想をメモ。 www.futami.co.jp

最初にまとめ

全体にわたって、人間という動物の脳の単純さや本能的な行動、思い込みなどが興味深い事例とともにわかりやすく説明されています。 読みながら何度も「あーこれは思い当たる」と心の中でうなずくことばかりでした。

読み終わった今、すぐに何か変わることはないし、長い歴史をかけて人類が培ってきた脳の仕組みに簡単に逆らえないことは理解しつつも、ふとあるタイミングで本書の事例を思い出すことで、少しだけ”まし”な行動や考え方ができる可能性に期待しています。

48のトラップについて自分なりに噛み砕いてみる

本書では48の思考のトラップが紹介されています。 せっかくなので以下の2点について自分で噛み砕いてみます。

  • ざっくりどういったトラップなのか
  • そのトラップに打ち勝つためには

プライミング効果

人間は五感を通してあらゆる情報を無意識的に受け取って、行動に無意識につなげてしまう。

意識した瞬間にそれはプライミング効果ではなくなるので、カジノのような空間で大量にお金を使いたくなる衝動に駆られたら「これプライミング効果じゃね?」と思い出そう。

作話

何かを説明しようとしたときに辻褄を合わせるために少なからず作り話を行ってしまう。

行ってしまうことは避けられないのだから、データや数字といった確実なものを土台にしよう。

確証バイアス

人間はみたいものをみる。興味がある情報は目に留まる。偶然と感じることの多くがこれ。

つい何かを信じたくなったときに、その逆の考えもしてみる。

あと知恵バイアス

現在の知識を、過去の時点でも知っていたように振る舞ってしまう。

過去に起きたこと話す/聞く場合、後知恵バイアスが効いていることを念頭におく。

テキサスの名射手の誤謬

後からの強引なこじつけがもっともらしい事実に見える。

陰謀論的な考え方に触れたときに意識しておく。

先延ばし

積読、積みゲー、無理筋な勉強計画やダイエット計画などを立ててしまう。

未来の自分は信じてはいけない。衝動的で安易な道に流れるだろうから。 計画を工夫して未来の自分を追い込む(だます)必要がある。...けどむずい。

正常性バイアス

危機的な状況にあるが、自分は正常だと思ってしまう。

危機に対して訓練をする。正常性バイアスが働くことを理解した上で、どう行動するのかを検討しておく。

内観

感情で理解したものを、言葉にだそうとすると作り話をでっち上げる。

本能は本能で大事にする。言葉にした瞬間にそれは別のものになってしまう。

利用可能性ヒューリスティック

少ない事例をもとに、それが普遍的なものとして感じてしまう。確証性バイアスの親戚。

反証を考えること。ただの偶然ではないか、意図的に絞られた表現ではないか。

傍観者効果

傍観者が多いと、誰かがやるだろうと思って行動が抑制されてしまう。

まずは行動すること。傍観者になりたくないのなら。今、自分に何ができるかを探して動け。

ダニング=クルーガー効果

わずかな練習や勉強で自分が優秀だと感じてしまう。

地道な練習や勉強をしよう。

アポフェニア

偶然の連続をパターンとして感じてしまう。確証バイアスの友達。

起こり得ることは起きるんだよと冷静に考える。

ブランド忠誠心

特定のブランドを好意的にとらえ、信奉する。

ブランドというくくりで考えずに、個別に良し悪しを測ろう。

権威に訴える論証

えらい肩書きの人のコメントは、なんでも正しいように聞こえる。

餅は餅屋に任せるべきで、専門家がその専門についてコメントしたことに耳を傾けよう。

無恥に訴える論証

知らないことに対する説明を、つい受け入れてしまう。

一つの話で鵜呑みにしてはいけない、複数で確かなソースにあたろう。ただし、インターネットやSNSのこの時代では確かなソースは難しいかもしれない。

藁人形論法

議論の際に、極端な人物像(藁人形)を作り上げ、それを起点に反証する。アイスが欲しいとつぶやいたときに発展途上国の難民の話を持ち出すようなケース。

極論の多くがこれであるため、飲まれずにスコープを整理すべきだし、自分が藁人形を作っていないかを意識する。ボリュームゾーンや95パーセンタイルを意識する。

人身攻撃の誤謬

所属や経歴によって、その人物の発言を曲解してしまう。麻薬をやった俳優の作品が停止するのもこれ。

作品に罪はないし、たとえば凶悪犯罪者が述べた何かでも発言自体を率直に考慮する。

公正世界仮説

世界は公正なので、悪人にはバチがあたるし、正直者は良いことがあるという考え方。

そうでもないので日頃から前向きにやっていこう。ただし悪人になることをすすめるわけではない。

公共財供給ゲーム

公共的な財産を善意のみで維持することはできない、ズルをするやつが現れるから。

公共的な財産を守るために規制が必要と理解しておく。

最後通帳ゲーム

交渉ごとで実利よりもメンツをとってしまう。

メンツを傷つけない交渉をこころがける。

主観的評価

自分に対してのコメントを過大評価してしまう。

自分は特別ではない。それを信じたくなるならそれは主観的評価かもしれない。

カルトの洗脳

ただのファンが、その集団に属しているうちにカルトになるかもしれない。

自分が属している集団が、カルトではないかを定期的に振り返る。

集団思考

大勢の人間が集まると、対決を避けるために議論が進まなくなったり、愚かな結論にたどりつく。

空気を読まない人間になろう。違う意見を出せるなら出す。ただし周囲が集団思考で同意しかしてこない状況になっていたら、何らかの改善を試みよう。

超正常刺激

欲求を、必要以上に満たすモノを正常と感じてしまう。

必要最低限を意識する。腹八分目。

感情ヒューリスティック

何かを判断するときに、事実よりも感情で判断してしまう。

重要な場面こそ、印象や感情だけで判断してはいけない。

ダンバー数

個人がそれなりに深い付き合いができる人数は150名程度が限度である。

相互フォロー10,000人!みたいな話にだまされないように。

魂を売る(セルアウト)

インディーなバンドがメジャーデビューしてセルアウトしてしまったと感じる。

誰しもいくらかセルアウトしてるんやで? この項はちょっと難しくて、趣旨は消費者行動について誰もが枠にはまっているのだというものかもしれない。

自己奉仕バイアス

自分は優秀で、自分の手柄は課題評価しがちになってしまう。

そういう思考が働くのだから、謙虚にやっていこう。。。

スポットライト効果

誰もが自分を注視しているように感じてしまう。

大してみてないので気楽にやっていこう。

第三者効果

何かの意見や情報が、どこかの誰かに悪影響を及ぼしてしまうと考える。ただし自分は大丈夫と思ってしまう。

引用 ”人は第三者効果に騙されて、検閲を認めても良いという気になったりする。”

冷静に考えよう。 その一歩はいつか自分に届くのでは?

カタルシス

怒りの衝動を暴力的に発散すると、それが常態化し、さらに強化される。

怒りのエネルギーを有効活用する。トレーニングなのか勉強なのか、いくらでもあるだろう。

誤情報効果

記憶は辻褄を合わせるために間違った情報を取り入れてしまう。

そういうものなので、話が食い違ったら”誤情報効果”が起きてるってこと。

同調

周囲や権威に盲目的にしたがってしまう。

同調してないかを自問自答し、見えない圧力に抵抗する。

消去抵抗(バースト)

タバコ、酒、ゲーム、過食などをやめようとすると強烈な抵抗が内側から生じる。

抵抗が起きてしまうのは仕方ないので別の報酬で対抗する。

社会的手抜き

大勢で単純作業を行うと、手抜きが発生して成果がおちる

個人レベルでの計測。個人ごとの成果がわかる作業。

透明性の錯覚

相手が自分の奥底まで見透かしていると感じてしまう。

意外と見えてないから気楽に。

学習性無力感

ダメな状態が続いたときに、ずっとダメだと思ってしまう。

ダメじゃないのでやり方を変えてトライし続ける。

身体化された認知

暖かいものを持った状態で話すと、暖かい印象になったりする。

打ち解けたいなら打ち解けた空間・環境で話し合う。

アンカー効果

第一印象や、最初に提示した数値が、その後の交渉に影響する。

より多く/少なく求めるなら、とりあえず最初は過剰な数値を提示しておく。

注意

人は思ったほど意識を分散させられない。

集中すべき時は周辺を整える。

セルフ・ハンディキャッピング

言い訳のために自分を悪い状況に置いてしまう。

大事なイベントの前に夜更かしや徹夜はしないこと。

自己成就予言

無意識のうちに自分が思った通りに行動しようとしてしまう。

悲観的な思考は控えて、前向きにいれば、そっちに無意識的な行動がされる。

瞬間の自己

幸福には二種類があり、今瞬間的な幸福と、記憶として残り続ける幸福がある。瞬間の自己は瞬間的な幸福を求める。

瞬間の幸福も満たしつつ、記憶として残り続ける幸福も狙っていく。

一貫性バイアス

現在の認識をもとに、過去もそうだったと考えてしまい、さらにその後の行動にも影響する。

有効活用する。自分は善良で、勤勉なのだと。

代表性ヒューリスティック

何かに対し、テンプレートやステレオタイプに当てはめてしまう。

事実、数字で判断する。

余談

本質ではない環境や思い込みから、認識が変化する。

高級なお店で食べると美味しく感じるのも余談かもしれない。

コントロールの錯覚

偶然をあたかも自分でコントロールできていると感じてしまう。

それが前向きに捉えられるなら、進んでこの錯覚を利用していこう。

根本的な帰属の誤り

所属する組織や役割などからくる外的要因によるレッテルが行動や考え方に影響を及ぼしてしまう。

これを知った上で、悪い方向に進まないために組織や役割を考慮していこう。

『伝わる短い英語』を読みました、翌営業日からの英語Slackコミュニケーションに早速効きそうな良書

『伝わる短い英語 -アメリカ、イギリス、カナダ、オーストラリア 政府公認 新しい世界基準Plain English-』を読了したのでメモ。

str.toyokeizai.net

読むきっかけは、TwitterのTLで尊敬してるエンジニアの誰かがお勧めしていたからだったはずですが、誰だったかは忘れてしまいました...

読んで得たもの

シンプルな英語はわかりやすいし、わかりやすいと伝わりやすい。ではどうするかの技法や関連資料がいくつも紹介されていました。 印象に残ったものをピックアップします。

技法

第3章の "10のガイドライン" がそのまま実践的な技法になるので見出しをそのまま引用します。

  1. 対象読者を想定する
  2. 重要な情報は文書の先頭に置く
  3. 長文より短文を用いる
  4. 短く、シンプルな単語を使う
  5. 専門用語は必要最小限に抑える
  6. 能動体を使う
  7. 強い動詞を使う
  8. 否定/二重否定を避ける
  9. 主語・動詞・目的語は近づける
  10. 読みやすいデザインにする
    • セクションは短くする
    • 段落は短く収める
    • 段落のトピックは1つにとどめる
    • 規制やルールなどは if-then を活用し情報整理
    • 効果的な見出しを使い読者の関心を引く
    • 見出しの長さに注意する
    • フォントは英語フォントを使用する
    • 重要なコンセプトを強調するためには(bold, all capsなど)
    • 表やイラストを使用する

それぞれはの内容は難しいことではないし、新しいことでもないのですが、具体的な例と合わせて読むことでより理解が進みました。 1-9まで具体的な英語表現についての解説です。 最終項 "読みやすいデザインにする" は複数のポイントがありましたので記載しました。

面白かったものとして、”効果的な見出しを使い読者の関心を引く” の中で説明されていた3つの見出しの種類があります。見出しは大きく以下に分けることができ、それぞれの効能が説明されていました。Mediumなんかでよく疑問型の見出しを見ますが、今後は見出しをより意識して読むことができて理解が深まりそうです。

  1. 疑問型 "Ex) Why do we use heading?"
  2. 情報概略型 "Ex) Add useful headings"
  3. トピックス型 "Ex) Headings"

関連資料

役立ちそうなサイトや動画などが多く紹介されていたので、後から見返したくなりそうなものを抜粋します。

まとめ

英語の勉強のために読んだ本でしたが、英単語や文法ではなく”わかりやすくシンプルな表現で伝える in 英語”を学べたと感じています。*2

その点で 結城浩先生の『数学文章作法』や、先日読んだ『データ視覚化のデザイン』などに通じるところも多いと感じました。

www.hyuki.com

結局のところ英語はコミュニケーションのツールですから、意思疎通や文章の理解ができるようになるのが私にとってのゴールです。 その結果として”新しい技術を学ぶ”、”多くの人たちと交流する”などの目標に近づける訳で、ときおり折れそうになるモチベーションを維持しながら素晴らしい英語というツールを学んでいきたいと改めて思いました。

余談: FRE Scoreのレベルを変えた場合の例文として、トランプ大統領のメキシコに壁を作る話を何度も読むことになったのはなかなか面白い体験でした。

*1:Fleschのスペルが直感的じゃなくてつらたん

*2:こう書いたこの日本語自体がシンプルではない問題があるのですが、それはもう仕方ないと割り切り

『ザ・コーチ』を読みました、サクッと読めてやる気が高まり、行動に繋がる良書

『ザ・コーチ』 谷口 貴彦著 を読んだので感想をメモ www.shogakukan.co.jp

”目標の達人” って言葉が読み終わった後にしっくりくる

本書のサブタイトルは「最高の自分に出会える『目標の達人ノート』」ですが、正直に言って読む前は胡散臭さを感じました。自己啓発本と呼ばれるカテゴリーよりは技術書を読んだ方がマシとの偏見を自覚していて、その流れから本書のサブタイトルには懐疑的な状態で読み進めました。

結果、読み終わった後の感想としては「すごい良書、目標の達人になりたい!ならなくちゃ!なってやる!!」だったのでやはり読んでよかったです。

ストーリーと軽快な文章でサクサクと読み進められた

『1分間マネージャ』の時にも感じましたが、良書と呼ばれるものの多くは読みやすさに優れていて、かつ本のボリュームも重厚ではなくて1-2時間でおさまるものなのかもしれません。

これまた技術書との比較になりますが、時には手を動かして手元で検証したり、本の内容を理解するために別の文献を(Googleが多いですが)当たったりする技術書とは異なり、空き時間でスラスラと読み切れるボリュームでした。

目的・目標・ゴール・夢・ビジョン

目的・目標・ゴール・夢・ビジョン、この5つの言葉を自分なりに理解したつもりになれれば、本書を読む恩恵の50%は手にしたと言えると思います。箇条書きにしてしまうと味気ないですが、後で思い出すためにあえて自分の言葉で記録しておきます。

  • 目的: やりがい、いきがい、のような生涯を通して目指すことがら。具体的でなくてよいはず(例、家族を幸せにする、楽しく生きる)
  • 目標: 目的に到達するために到達すべき状態、具体的であり、かつTodoのようなやるやら評価をしない(食べるのに困らない程度の給与を手にする)
  • ゴール: 目的に到達するための、決定的な目標
  • 夢: 雑然とした個人的な望み。レベル感もまちまち
  • ビジョン: 目的に到達した時や、ゴールを達成した時を想像すること。それによりモチベーションを高めて、自らを前進させる

目的から分解されていき、具体的な行動目標となる、かと思いきや目標が通過地点である

多くの考え方の面白さを味わえる本書ですが、特に良かったのが”目標は通過点”という表現です。 目的に向けてやることを整理し、細かな目標を計画してそれに邁進するのは仕事でもよくあることでしたが、本書を読むまでは「目標は達成するか、しないか」と考えていました。期日までに行うことを具体的に決めて、それが期日までにできなければアウト、といった考え方です。

それを本書では「通過する状態」として表現したことで、柔らかい思考で目標に向けて行動を続けられることを認識させてくれました。

加えて、その「通過する状態」に対しての日常的な問いかけとして以下の3パタンを設けることで、適宜行動を修正しながら進めることを良しとしていることは、アジャイルなどの不確実性に対して常に修正しながら細かなアウトプットを出していくことにも通じるのだと感じました。

  • どうすればその目標の状態になれるだろうか?(Howを考える)
  • どうすればさらに早くその目標の状態に近づけるのか?(改善をおこなう)
  • 目標の状態に近づくために、今日、自分は何をやったか?(振り返り)

目標はゴールを知識・ツール・能力に分解した後にそれぞれを変換したもの

本の内容的には順番が前後しますが、ゴールを掲げた後で、それを知識・ツール・能力の3方向から要素に分解していき、それを目標に変換することについても学びがありました。正直にいうとここは読んだつもりで頭に入っておらず、今ブログを書くことで読み直すことができました。やはり振り返りは大事ですね。

一見すると知識と能力は同じに思えますが、知識はインプット、能力はアウトプット(力)と捉えるとスッキリしました。(ここは私なりの定義であるため、著者の意図とは多少のズレがあるかも)

ツールは知識と能力を高めるためのあらゆる具体的な物や手段で、参考書や計画表、このブログもその一つと言えるでしょう。 その3方向からゴールとして掲げた「目的にいたるための決定的な目標(状態)」へ自分を届けるために、あらゆる要素を列挙したうえで、その要素を「ゴールに到達するための通過する状態=目標」として定義する。

....こうして書くと言葉遊び感がなきにしもあらずですが、しかし本書を読むと、これがしっくりときますし、実際にモチベーションにつながるのですから驚きと言えます。

まとめ

ただ本を読んだだけでは何も変わらないのですが、そこから学び、その後の行動を変えることができます。 本書は基本的に前向きではあるのものの、多忙や生来の近視眼的な性格から迷走しがちな自分にとって、目標を掲げるノウハウを理論的に教えてくれた素晴らしい本でした。

本書の言葉を借りるなら「効果的な目標を立てるための知識」を効率よく学ぶために大変効果的な「ツール」であると言えますので、前に進みたい方にお勧めできる一冊です。

『データ視覚化のデザイン』を読みました

『データ視覚化のデザイン』 永田 ゆかり(著) を読みましたので感想をメモ。

www.sbcr.jp

最初にまとめな感想

読み切った直後のツイートを貼っておきますが、データ分析者やプレゼン資料を作る人だけでなく、読み手としても日常生活に活用できる情報が大量にありましたので、広くお勧めできる一冊です。

本書を読もうと思ったきっかけ

認知したのはTwitterでTLに流れてきたことですが、読もうと思ったのは日頃からMackerelやDatadogやその他モニタリングSaaSでグラフをたくさん見ており、かつ自前のダッシュボードを整備していく矢先だったためです。

冒頭から学びしかない

1章「データ視覚化 キモのキモ」を読んだ時点で大量の学びがあり、以下は読みながらメモった語群です。

  • アンスコムの例(Anscombe's Quartet)
    • 数字だけでは違いがわりづらいデータを、視覚化することの偉大さがわかる代表例


  • カラーパレットも種類がある
    • シーケンシャルカラー
    • ダイバージェントカラー(中間からレンジ、2色のシーケンシャルカラー)
    • カテゴリカルカラー
    • ハイライトカラー(特定のデータだけ色を付ける)



  • 認知的負荷を下げる
    • これが最大の方針
    • データインクレシオ が少なければ少ないほど良い


  • ゲシュタルトの法則
    • 近接の法則(Law of Proximity)
    • 類同の法則(Law of Similarity)
    • 囲みの法則(Law of Enclosure)
    • 閉合の法則(Law of Closure)
    • 連続の法則(Law of Continuity)
    • 接合の法則(Law of Connection)

特に感銘を受けたのが”ポリティカル・コネクトレス”の部分で、色覚異常や性別、人種、国家などなどに対する中立的な表現を心がけることへの言及は、なんとなくは体感していたものの改めて認識することができたのは素晴らしい体験でした。

2章からは役に立つ技法の宝庫

1章で色や視覚の理論について学び、2章からはグッと技術的な内容でした。視線の移動や色使い、チャート選択などのノウハウがつまっていました。以下は読書しながらメモった語群です。

  • 色は3−4色に抑える
  • テキストの活用
  • ラベル付けで罫線を無くす
  • BaN
  • "ダッシュボードとは「データを見て理解を促進させる視覚的表現」と定義した"


  • ダッシュボードは二種類
    • 探索型(Exploratory)
    • 説明型(Explanatory)



  • 視線の遷移はFで、左上から
    • ゆえに左上に重要なデータを置く


  • ファネル(漏斗)チャートはステップごとの減少が分かりやすい(どこで失注したか)
    • 日本では利用が少ないが使いどころがあるチャート
  • eNPS - Employee Net Promoter Score
    • 従業員エンゲージメント


  • リッカート尺度
    • いわゆる5択のアンケート。満足している、していない。。。


  • ベンフォードの法則
    • 1で始まるものが多い


  • モバイルデバイスならではの仕様も意識する
    • 小さな画面で伝えたいことをさらに絞る

最終章が「どうやって組織へ根付かせるか」ですごい

最終章の5章「本当に組織に根付かせるために」もとても良い内容です。技術書の多くは技術についてのみ語られていて、それをどう活用していくかは読み手に任されていることが多いと考えていました。

本書では”視覚化”のための技法などに終始せず、それを組織にどのように根付かせるかについても言及されており

  • オーディエンス(利用者)を徹底的に意識すること
  • 統一感
  • フィードバックの重要さ
  • アジャイル的発想でスモールスタートする
  • 経営層のコミット

などのキーワードを押さえながらデータ活用に向けた要点が語られており、見られなければ意味がない”データの視覚化”について、見せながら進化させていくことの大切さを意識させられつつ読了しました。

まとめ

本書を読み終わって2週間ほどが経過していますが、日常や仕事で早くも効果を実感しています。それは以下の様なケースです。

  • 同僚氏のプレゼン資料のレイアウトレビュー
  • DatadogやMackerelなどのダッシュボードの読み方、作り方
  • 日常生活で見るさまざまなグラフやチャートの読み方

今後も本棚に置いて時々手にして思い出すことになる良書だと感じています。おすすめです。

Ansible で複数台サーバの結果を順番(Sequential)に取得する

ansible コマンドって便利なんですよ

日頃から大量のサーバを管理する中で、Ansible の Adhock な実行はとても便利です。 もちろんサーバの構成管理であったり、Packerから呼び出す初期セットアップとしての Ansible Playbook も愛用していますが、なんだかんだでワンライナーとしての ansible コマンドも運用に欠かせません。

良くあるケースとして以下などがあります。

  • shell モジュールを活用したログの一括...
    • grep で設定ファイルのパラメタ確認
    • ps などでサーバの状態確認
    • ls などでファイルの作成有無
  • fetch モジュールを利用した設定ファイルの一括取得
  • service モジュールを利用したアプリの起動/停止

しかし、そんな便利な ansible コマンドですが少々悩みがありました。

課題: 便利なんですがちょっと使いづらいところ

何が使いづらいかというと、 ansible コマンドの結果がデフォルトでは順番になりません。サンプルとしては以下のような結果です。 本当は01から09まで順番に出て欲しいのですが、完全にバラバラです。

これは DEFAULT_FORKS で実行時の並列数が5となっており、同時に実行された結果がばらばらに返ってくるためです。

[morihaya@morihaya ~]$ ansible -i inventories/all morihaya0? -m shell -a "date"
morihaya04 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
morihaya07 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
morihaya05 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
morihaya06 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
morihaya09 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
morihaya02 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
morihaya03 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
morihaya01 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
morihaya08 | CHANGED | rc=0 >>
Sun Aug 23 20:40:09 JST 2020
[morihaya@morihaya ~]$

対策: 並列で順番がバラバラになるなら1つずつやれば良い

当初はansible.cfgに以下のように記載することで対応しました。

[defaults]
forks = 1

それに対してAnsible界のスーパー金魚さんから -f <N> を教えてもらいました。

ドキュメントの Docs » User Guide » Working with command line tools » ansible を参照して以下を確認しました。

  • -f , --forks
    • specify number of parallel processes to use (default=5)

つまり、コマンドの実行時間が伸びることもありますが、以下のように -f 1 を付与することで、サーバの順番が綺麗に並んだ結果を得られるのです!!

[morihaya@morihaya ~]$ ansible -i inventories/all morihaya0? -m shell -a "date" -f 1
morihaya01 | CHANGED | rc=0 >>
Sun Aug 23 21:03:41 JST 2020
morihaya02 | CHANGED | rc=0 >>
Sun Aug 23 21:03:43 JST 2020
morihaya03 | CHANGED | rc=0 >>
Sun Aug 23 21:03:45 JST 2020
morihaya04 | CHANGED | rc=0 >>
Sun Aug 23 21:03:48 JST 2020
morihaya05 | CHANGED | rc=0 >>
Sun Aug 23 21:03:50 JST 2020
morihaya06 | CHANGED | rc=0 >>
Sun Aug 23 21:03:52 JST 2020
morihaya07 | CHANGED | rc=0 >>
Sun Aug 23 21:03:54 JST 2020
morihaya08 | CHANGED | rc=0 >>
Sun Aug 23 21:03:56 JST 2020
morihaya09 | CHANGED | rc=0 >>
Sun Aug 23 21:03:59 JST 2020
[morihaya@morihaya ~]$

余談: 順番を意識する必要を本当はなくしたい

クラウドネイティブな今の時代、本来であればサーバの順番やホスト名を意識することは良くありません。数年前は "cattle vs pets" という言葉も良く見かけましたが、クラウドでサーバが簡単に使い捨てができ、コンテナがそれをさらに加速し、オンプレミスであってもESXiなどでVMの使い捨てができる現在では、サーバそれぞれに名前をつけて大事に運用するのは良い方法ではないことも認識してます。

...が、そうもなかなかいかないのも事実で今回のようなハックが必要でした。*1

*1:例えば奇数系と偶数系のサーバでDBへのアクセスを分散してたりするわけですね

AWS CodeCommitで不要なブランチを一気に削除する

プライベートなGitLabからCodeCommitへ移設したとあるリポジトリについて、大量のブランチがあって今すぐ消したい!!となったので簡単なシェル芸で対応したのでメモ。

課題: 直面したブランチ多すぎ問題

例えばこんな感じだった。

  • 謎のポリシーでブランチを消さない文化で育ってしまったリポジトリ
  • ブランチ確認のページ数がたくさん
  • CodeCommitのGUIでは、ブランチ削除は1つずつしかできない <-たくさんやるには超大変

f:id:morihaya:20200817224106p:plain

大量にあるブランチに対して一つずつ確認画面でぽちぽちやるのは辛すぎる f:id:morihaya:20200817224515p:plain

対策: AWS CLIと簡単なシェル芸

結論としてはこう。

# 対象のリポジトリ名を設定
REPOSITORY=morihaya-test

# ループで回す
for BRANCH in $(aws codecommit list-branches --repository-name ${REPOSITORY} | jq .branches[] -r | grep -vE "master|<消したくないブランチ>")
do
  aws codecommit delete-branch --repository-name ${REPOSITORY} --branch-name ${BRANCH}
done

雑な解説

以下でブランチ一覧を取得。

aws codecommit list-branches --repository-name ${REPOSITORY}

jqに渡してJSONからただの文字列の一覧に皮むき。-r でクォーテーションを外したのはただの癖。

 | jq .branches[] -r 

以下は削除したくないブランチを除外するためのgrep。masterブランチは守られているので実は除外不要。

| grep -vE "master|<消したくないブランチ>"

実際に削除を行うのはこのコマンド。

aws codecommit delete-branch --repository-name ${REPOSITORY} --branch-name ${BRANCH}

余談

余談1

実はmasterブランチも勢いで消してしまいかけたのですが、Default Branchは以下のエラーで守られているので安心でした。

An error occurred (DefaultBranchCannotBeDeletedException) when calling the DeleteBranch operation: The current default branch refs/heads/master cannot be deleted

余談2

作業自体は会社のリポジトリでしたがさすがにスクショはまずかったので、テスト用のリポジトリを作成してブランチを増やしました。 コマンドは対策と似たようなシェル芸です。

# 対象のリポジトリ名を設定
REPOSITORY=morihaya-test

# 複製するCommitのIDを指定する
COMMITID=XXXXXXXXXXX

# ループで回す
for NO in $(seq 1 50)
do
  aws codecommit create-branch --repository-name ${REPOSITORY} --commit-id ${COMMITID} --branch-name test-${NO}
done

余談3

削除した時はメッセージがでるが、作成した時はなにもでないらしいです。 aws-cliのバージョンは2.0.40で確認。

bash-3.2$ aws --version
aws-cli/2.0.40 Python/3.8.5 Darwin/19.6.0 source/x86_64

削除する時は以下のようなメッセージがでる。

{
    "deletedBranch": {
        "branchName": "test-5",
        "commitId": "XXXXXXXXXXXXXXXXXXXX"
    }
}

まとめ

作業時間短縮のための雑なCLIは正義だと思っているし、ちょっとしたシェル芸は身を助けますね。

『1分間エンパワーメント』を読みました

ダイヤモンド社の『社員の力で最高のチームをつくる〈新版〉1分間エンパワーメント』を読みました。

www.diamond.co.jp

https://www.diamond.co.jp/images/book/7/9784478100677.jpg

先週読んだ『1分間マネージャ』と同じ著者 ケン・ブランチャード氏のシリーズです。 きっかけは以下で、同僚の @kobase555 からお勧めしてくれた&図書館にあったのですぐに読むことにしました。*1

エンパワーメントってなに?

タイトルでもある”エンパワーメント”という言葉ですが、私は初耳でしたし、単語を聞いてもいまいち内容を想像できませんでした。 ”エンパワーメント”の定義については本文の1ページ目できちんと紹介されます。それによると

エンパワーメントとは、自立した社員が自らの力で仕事を進めていける環境を作ろうとする取り組みです。

とのことで、わかるような気はするがどういうこと?という疑問を抱きながら読み進めることになりました。

1分間マネージャとの違い

同じ著者とのことで『1分間マネージャ』との違いを意識しながら読みましたが、冒頭から監訳者の星野リゾート代表 星野 佳路氏のまえがきで始まることもあり、全体的にマネージャよりもさらに上位、経営者向けの内容だと感じました。 要点だけなら星野氏のまえがきでほぼ語られているくらいにはシンプルな内容で、以下の3つの鍵がエンパワーメントの鍵として提示されます。

  1. 全ての社員と情報を共有する
  2. 境界線によって自立した働き方を促す
  3. セルフマネジメントチームを育てる

このシリーズはサクサク読める(2作しか読んでないけど)

『1分間マネージャ』を読んだ時にも感じましたが、本書も読みやすい文体でサクサクと読めました。 私は章を区切りに他のこともしながら読みましたが、読了までに実時間では3時間も要していない印象です。*2

本の構成として、悩める経営者の主人公がエンパワーメントに成功した会社を訪問し、トップおよび各所のマネージャ達と苦労と成功の経験談を聴きながら、自分たちの課題にどう向き合っていくかを考えていくシチュエーションは『1分間マネージャ』と同じで、構成的な登場人物とのコミュニケーションは分かりやすくて映像が浮かぶような楽しさがありました。

刺さったポイント

特に面白いと感じた2点つについてメモしておきます。

1つは「5 第2の鍵 境界線によって自立した働き方を促す」の章です。 この章では”境界線”について語られており、自由な裁量を社員に与えはするもののそれは何をやってもいいわけではなく、明確な目的やビジョンの元に定義された境界線の中での自由である事や、ガイドラインによって方向性がある程度は定まった方がより強い力が出るといった事が語られます。

では実際にどのように境界線を決めるのかという具体例として、コンビニエンスストアを例題に経営者側と労働者側の双方から10個ずつ仕事を書き出すという”トップ10プランナー”というリストのすり合わせがあり、その目線の違いが対照的に提示されてとても印象的でしたし、読者へ気づきを促していたように感じました。


もう1つは「監訳者のあとがき」で、まえがきも書かれていた星野氏による星野リゾートのエンパワーメントの旅が書かれており、舞台が日本の地方の温泉旅館と大変親しみが湧きやすくて全体的にイメージがしやすかったです。その中でも特に面白いのが自律的な改善行動を始めた社員からのコストが増える提案に対して「社員達の目は輝き始めているのに、(経営者である)私の目が曇り始めるという逆転現象が起こったのだ。」の部分です。

この”やる気から出てくるコストを(深く)考えない提案”は自分もやってきたことでしたし、その都度上役からコストと効果についてのバランスについて考慮を促されたことが記憶に蘇りました。

あとがきの中ではその状況への対策として会社の収益情報を社員に公開しつつ、明確なコストと利益の関係を共有と教育する事でより精度の高い提案を社員に促した、という流れが大変良かったです。

さいごに

本書を読むことで、平社員である自分からすると少し目線が上に伸びる体験と、かつエンパワーメントされる側としてどのように感じて行動することが良いのかを考える良い機会になったと感じています。

また、自分の現在置かれてる環境を振り返ると、結構エンパワーメントされた環境であることに気づくこともできましたので、これも大変よい学びでありました。

*1:友人や同僚など、身近な人のお勧めというのはできるだけ実際に手を伸ばしたいマインドがあります、社交辞令で終わってしまうのは勿体ないので

*2:私の読書スピードは平均より早い方ではないはず