自分の頭で考えて動く部下の育て方を読んだ

まとめ

"優秀な人が指示待ち人間を作る" と著者は書いている。指示待ち人間の作られ方や、作らないためにどうしたら良いかが書かれていた。

個人的には教え過ぎによる弊害について考えさせられたので、思っていたよりも影響を受けることができた本と言える。

以下は読書中のメモだが、冗長な表現と思ったところをバッサリとシンプルに書き直したりしているので、本から一言一句コピーした文言ではなく、オリジナルと乖離してる可能性があることに注意されたい。

部下への期待の話や、ソクラテスの産婆術の話はうまく言語化できていなかった部分だったので、いいインプットになったと思う。

 

 

 

メモ

以下はメモ書きである

  • 指示を求められたら、どうした良いと思うかを聞く
    • 何か気がついたこととかある?と聞くと良い
    • 意見を聞いて良かったと伝えて、さらに意見を促す
    • ズレたらこういうふうにしてほしいと伝え、その方向だと別の意見がないか聞く
    • このやりとりで、上司の考えに触れて、上司の望む動きを考えるようになる
  • 出来るだけ教えない。教科書読めと言う。教えない方が理解が深まり、忘れなくなるらしい
    • 何も知らないふりをしてひっかけ問題を出して質問をする
    • 受け身ではなく能動的、主体的、自発的になることが理解と記憶を深めるらしい
  • 上司の仕事ができるアピールは部下のやる気を削ぐ可能性がある
  • 部下に答えを教えるなかれ
    • 教えすぎると情熱を奪う
    • 何を教えないかを意識した方が良い
    • 自己効力感や達成感を部下にいかに味わってもらうか
  • こいつ覚えてないけど前にも教えたぞ、というのは教えた側は能動的行為で、教えられた側は受動的だから
    • 記憶してもらうには部下に能動的になってもらう必要がある
  • 自分の記憶力さえ、気持ちよく働ける環境にしてあげないとうまく機能しないのだから、他人に仕事を覚えてもらおうとするには、余計に気持ちよく働けることが大事になる
    • モチベーションを上げようとするより、下げる要因を除去することに努力したほうがよい
    • 働くことを楽しみ、意欲を持って取り組んでもらう。そのためにできないをできるに変えるという、人間が幼少期から持っている性質を活かすのが一番
  • 少し考えないとうまく解けないような、しかし少し考えれば解けるようなほどよい難問を部下に与えよう
    • 子育てと同様に見守る姿勢で、できたことを喜んであげる
  • 部下を指示なしで動かす
    • 改善点が思い浮かんでいても、指示は出さずに質問形式でどうしたらいいか考えてもらうようにする
    • 上司が正解を教えてしまうより、理由や情報を提供しながら質問し、部下に追求することを促し、自ら答えを導き出そうとしてもらう。そうすると仕事の覚えはずいぶん早くなる

ここまでは心構え。ここからは長いスパンでの話

  • 丸3年経つと目の前の作業に追われるのではなく、仕事全体の流れをもつかむ余裕が生まれる
    • つまり3年をめどに部下を一人前に育てるという気でいた方がよい
    • 部下が育つのにかかる時間を待つ余裕が職場には必要
  • 新人の部下には毎日のように頻度が高く、業務量は多いけれど比較的単純な作業を割り振った方が良い。そのほうが早く仕事を覚えられるし、慣れれば処理速度も上げやすい。こうした単純作業を一つ一つこなして、少しずつ多機能の人間に育ってもらえるように辛抱強く育てなければならない
  • 仕事の分解は上司の仕事
    • 分解した工程ごとに苦労を労う
    • 大きな仕事でも小さく達成感を
  • メールはまず一定時間確保して部下に書いてもらう
    • 改善点はすぐに伝えず、教えがいがあるぞ、成長した暁にはネタにしてやろうと喜んでおく
    • その上で改善点に関して質問しまくる
    • 修正完了後にレビュー
    • 何度か繰り返して修正点なくなれば日常のやりとりを任せる。ずいぶん良くなったとほめる
  • 商談は客前ではなく裏でロープレ
    • いきなり任せない(失敗してつらくなるし、学習効果を高めたいので
    • 上司が実際の商談見せて、その後裏で真似てもらいロープレ。詰まる経験をさせとく
    • その後また上司が実際の商談見せて、自分が詰まったところの記憶が新しいうちに見本を見て、さらに改善させる(頭の中で反芻する時間を与える
    • やってもらう
    • 慣れたらお客さんになりきり質問しまくる
  • 裏ロープレが無難にこなせそうになったら、客先での説明を任せてみる。いざとなったら助け舟を出すからと伝えておく。助ける安心感と、上司が話を引き取ってもショック受けるなよというメッセージ
    • 説明できたら、初めてにしては上手くできたな。もっと上手にできないか工夫重ねてと伝える
  • 仕事のコツを部下に教えるなかれ
    • 違う人間で感じ方も違うので全ては伝わらない。それはそう
    • コツを早くに教えるより、本人に失敗から体験してもらうのが良い
  • 実際の失敗してもらってばかりだと仕事が進まないので、思考実験で失敗してもらう
    • 思考実験を織り交ぜることですべての業務の裏付けとなるコツがあることに気づいてもらうようにする
  • 数ヶ月や数年を跨ぐような長期の仕事の教え方
    • 長期の仕事の型は説明しても伝わらないし、一度通しで体験してもらわないと新人には全体像が見通せない。経験してもらう必要がある
  • いきなり任せてもさっぱり見当がつかない
    • 上司自身が進めているプロジェクトに一通り付き合ってもらう。時折、君ならどうする?と質問を要所要所で重ねて、自分ならどうするかという思考実験を重ねるくせをつけてもらう
    • 例えば、最新のトレンドを踏まえてこういうプレゼンをしたが、君が同じ情報に触れたとしたならどうする?
    • 自分の参考にした情報と、なぜそれが面白いと思うのか、企画を考えたプロセスや理由を伝えて追体験してもらう
  • 企画立案には業界全体の動向、最近の流行を把握できてないと、新しいテイストを加えるというビジネスの基本ができない。新人には無理
    • なんでこんなことをするかわかる?と時折質問する。仮説を立ててもらう。質問を通して仮説の精度を上げる訓練をする
    • 理由を説明させることで説明力も引き上げることができる
    • こうして仮説立てゲームを楽しむことで、正解丸暗記、疑問に思わないという日本人気質から抜け出せる
  • ソクラテスの産婆術
    • 知識の赤ちゃんが生まれるのを手助けする技術
    • 相手の答えに対して新しい情報を加味して、新たに質問することを繰り返す
    • 産婆術は無知から知を産む方法
  • 部下にやりたいことがあると思うなかれ
    • 本人のやりたいことをやらせてあげるのは、仕事の基本を覚えるまでは無理。
    • 仕事を覚えるという比較的つまらないように見える業務に意欲的に取り組んでもらうにはどうしたらよいか。
    • 単純作業には工夫の余地がある
    • 工夫し改善することは達成感を得られらさらに工夫を重ねようという意欲を生み出せる
    • 工夫の発見を部下にやってもらう。ルーチンワークをつまらなさそうにしてたら、何か工夫ができるところはないか?と尋ねる
    • 工夫を見つけた部下には、よく気がついたねなどと感心しよう
  • 朝のミーティングでは何をすると効果的か?
    • 昨日の仕事を聞いたり、今日の仕事について聞いたり、何のためにやっているか聞く。作業をなぜこうするのかわかるか?と聞く
  • 指示待ち人間になる大きな原因の一つは意欲を失うことだ
  • 自分の頭で考え行動する部下になって欲しいのならば、上司は意欲を最大化することに努める必要がある。残業は意欲を損なう大きな原因になりかねないので要注意
  • 部下から意見や質問が次々に飛び出す3つのアプローチ
    • こちらの説明後に全員に質問するから2,3個質問ネタ用意しといてねと伝える
    • ざっくり質問すぎると相手は困る
      • 何で困っているかを伝えた上で質問する
      • 意見ではなく、思いつきや気がついたことなら口にしてもらいやすい。
      • 話の主導権を奪わずに、相手の話を促すこと
    • 結果をほめずに、工夫を尋ね、工夫を面白がる
  • 上司の心と仕事量に余裕がないと部下は育てられない。上司がパンクせずに部下の仕事の締め切りに余裕を持たせるには、期待しないことが大切だ。
    • 昨日から一つも成長してなくて当たり前、自分1人で仕事を処理する羽目になっても仕方ないと腹をくくっていると腹が立たない。
    • 着実に成長しますようにと祈りはするが、早く成長しろよとは期待しない

早起きして散歩してたら5ヶ月くらいで5kg痩せた話

メモ書きのまま放出する

やっていないこと

筋トレ、糖質抜き(少なめにはしてる)、断酒、断食

やってること

  • 早朝散歩
  • 週一回テニス
  • 子育て

くわしく

朝早起きしてる
肩こりつらすぎて目覚めることもあれば、猫に起こされることもある。理由はともあれ、最近は6時にはだいたい布団を抜け出している。

朝飯前の話
外山滋比古さんの思考の整理学に朝飯前の話がある。自分はこれが好き
"どんなことでも朝飯前にすれば、さっさと片付く。朝の頭はそれだけ能率がいい。"
https://alohabranding.com/booklog-shikoseirigaku/

頭の整理や、気持ちの切り替えに役立っている

70kg切ったので、ボルダリングまたやりたい

こまめに振り返りをするようにした

社内で案件ごとに2週間サイクルで振り返りをやっていたのだが、メンバーの入れ替わりによって参加者が変わったときに振り返りの週間が滅びてしまった。

そんな日々が続き、学んだことの共有や改善を話す場が失われたことに気がついた。

大きくない会社なので、全員で振り返りをやることも考えたが、どうしても日程調整の面倒さがある。

そこで、各種の会議の終わり5分程度を使ってこまめに振り返りをやるようにしてみた。

日程調整でウッとなる必要ないし、今話していた内容をベースにして話が進むので記憶が新しいし、各自の新たな発見に触れられたりできたので今のところ体験が良い気がしている。

夢日記 2023/01/10

男性が妊娠して入院するという夢だった。取引先のマネージャーも入院の書類を書いていて、〇〇さんも入院ですか~とか言っていた。コロナ禍になる前のような様子で、家族がお見舞いに来てくれて、そして生まれて、父子同室で生まれたての子供を横に置き、なんだかほっこりと温かい気持ちになるというのを体験した。不思議な夢だった

 

最近ではヒヤマケンタロウの妊娠という作品があるらしいし、昔はジュニアという映画でシュワちゃんが妊娠している役をやっていたらしい。

Microsoft Graphを使ったプログラミングにまつわる苦労

Microsoft Graphを使い始める記事はいくつも出てくるのですが、込み入った使い方をしようとすると急に情報が少なくなる印象があるので、この記事を書いてみることにしました。

使い始める際の情報はこれらを見るとよいです

Microsoft Graph を使ってみた! – Livestyleクラウドサービス

www.youtube.com

シンプルな使い方

Microsoft Graphを使うにあたって、シンプルなタスクであればわりとすぐに使うことができます。Linuxなどからcurlコマンドライン経由で使えます。また、ワークフローに組み込んで、入ってきたデータに対してユーザーのグループ移動とかはシュッと作ることができます。userPrincipalNameを使ってidを取得して、そのユーザーのidと所属させたいグループのidの情報を渡してあげるだけです。curlで実行する際には、末尾の $ref が変数として認識されてしまわないようにシングルクォートで囲う必要があることに注意が必要です。

トークン取得処理 (xxxxx.onmicrosoft.comのxxxxxにはお使いのテナント名が入ります)

TOKEN=`curl -d "client_id=xxxxxxxxxxxxxx" -d "scope=https%3A%2F%2Fgraph.microsoft.com%2F.default" -d client_secret=xxxxxxxx -d "grant_type=client_credentials" -H "Content-Type: application/x-www-form-urlencoded"  -X POST https://login.microsoftonline.com/xxxxx.onmicrosoft.com/oauth2/v2.0/token | jq -r .access_token`

userPrincipalNameを使ってidを取得する処理

curl -H "Authorization: $TOKEN" -H "Content-Type: application/json" https://graph.microsoft.com/v1.0/users/<userPrincipalName>

learn.microsoft.com

グループへメンバーを追加する処理

curl -D- -XPOST -H "Authorization: $TOKEN" -H "Content-Type: application/json" -d '{"@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/<user id>"}' 'https://graph.microsoft.com/v1.0/groups/<group id>/members/$ref'

learn.microsoft.com

少し込み入った使い方

SDKまわり

仕事でMicrosoft 365のライセンス回りの棚卸しを行う必要がでてきました。ユーザー数 x ライセンス割り当て情報の数で、シンプルなタスクよりも扱う情報量が急に増えることになりました。 最初はMicrosoft GraphのHTTP APIを使い、AzureADのユーザー情報をJSONに出力して、jqを用いてライセンス割り当て状況に応じてグループ分けを行ってみました。ユーザー一覧のJSONファイルを手元に持つことになるうえに、jqでの検索が遅いという問題が出てきました。

では何かMicrosoft GraphのSDKを使おうとなり、私が使い慣れているRubySDKを検討したのですが、RubySDKは"Microsoft Graph Ruby client library is not actively supported"となっており悲しみにくれました。

learn.microsoft.com

github.com

大学の研究室にいたころや、就職したての頃はJavaを少し書いていましたが、Javaで書く気持ちになれず、JavaScriptは得意ではないし、などと考えた結局 .NET で実装してみることにしました。意外とできましたが苦労はありました。

認証まわり

Microsoft GraphをC#から使ううえで、どの認証ライブラリを使えばいいのか自信を持てませんでした。結局のところ、 Azure.IdentityとMicrosoft.Graphを組み合わせて使うことでうまくいきました。

またMicrosoft Graphは複数の認証方法をサポートしていますが、ドキュメントを読んでどの方法を使えばいいのか判断するのに苦労しました。

これを使えばよいことがわかりました learn.microsoft.com

最初にこのページを見ると、大変そうだしどれを使ったらいいかわからないので、そっとタブを閉じたくなってきます learn.microsoft.com

ライセンスまわり

ライセンスの棚卸しをしたいので、各ユーザーが使用しているライセンスを特定する必要があります。ここも苦労しました。EMS E3やE5などライセンスの種類がありますが、これらのライセンスはSkuIDが付与されています。最初はSkuIDで特定できることもわかりませんでしたし、下記ページを見つけられていなかったので、なんだこれはとなりました。以下ページ覚えておくと便利です。URLが変わってしまうかもしれないですが。 learn.microsoft.com

ユーザー情報にライセンス割り当ての属性(LicenseAssignmentStates)がありますが、ユーザーは複数のライセンスを持つ可能性があるうえに、SkuIDで識別されているので、よく使うSkuIDをハードコーディングする必要がありました。(今思えば別ファイルに切り出しておいても良かったかもしれないですね。

ライセンス割り当て方法に実は複数の種類があり、直接付与とグループによる割り当てがあります。LicenseAssignmentStatesのassignedByGroupというプロパティで取得することができます。AzureADの画面で、直接ライセンスを割り当ててしまうと直接となります。管理の観点からは、グループでのライセンス割り当てが望ましいので、これらを区別する必要がありました。そのため、各ライセンスが直接割り当てされているユーザーリストや、グループにより各ライセンスが割り当てられているユーザーリストを作成して棚卸しをしました。

紛らわしい話題

最後に紛らわしい話題だけどAD Graphは非推奨になっています。Microsoft Graphは便利なので廃止されないで残ってほしいです。

jpazureid.github.io

Google WorkspaceのユーザーをエクスポートしてAzureADにインポートする際のCSV変換スクリプトを書いた

面倒なので背景をすっ飛ばすけどGoogle WorkspaceのユーザーをAzureADにもっていきたいことありますよね。Google WorkspaceでエクスポートしたCSVをAzureADでインポートするだけですが、だけと言うには面倒なCSVのフォーマット変換処理が必要です。そのCSVフォーマット変換スクリプトRubyでチャッと書きました。

プログラミングができる人ならば、この処理はパッと書けると思うのでブログにするつもりはなかったのですが、情シス界隈でこれからプログラミングを学んでいこうという人とかのニッチな困りがあるかもしれないと思って書くことにしました。

Google WorkspaceからエクスポートしたCSVを各行ごとに処理し、AzureADのCSVインポートフォーマットに変更していくだけの適当なスクリプトを書きました。各自のパスワードをバラバラに作れるようにはできていないし、jobTitleやdepartmentは入ってないこと前提になっているし、usageLocationもJapan決め打ちでとてもアレだけどGoogle Workspaceに情報が入っていればそれを使うようにしてあげればいいですね。

ちなみに、Google WorkspaceのCSVフォーマットか、AzureADのCSVフォーマットのどちらかが変更されると使えません。

gist.github.com

このスクリプトの動作には、Google WorkspaceからエクスポートしてきたCSVと、AzureADのCSVインポートをしようとしたときのCSVテンプレートをダウンロードしてazuread_header.csvという名前で保存しておく必要があります。

CSVのヘッダーと、データが別の2ファイルから1つのCSVファイルを作る方法は以下の記事のyancyaさんによる技を使いました。

qiita.com

learn.microsoft.com

最近気がついたこと

自分の身体に関わることで、最近気がついたことがあった。メモしておく

  • 週一度スーパー銭湯に行くと、肩こりのレベルが下がる。月一度の鍼のときに痛いところが減ってて気がついた
  • お風呂でしっかり体をあたためておくと、一度のぬるめサウナと水風呂でもいい感じのすべてがどうでもよいあの状態になれることがわかった