mongolyyのブログ

開発(Javascript, Typescript, React, Next.js)や開発手法(スクラム, アジャイル)、勉強したことについて色々書ければと。

「ピープルウエア 第3版」を読んだら、オフィス環境整備の重要性に気づいた

はじめに

メーカーのコーポレート部門でソフトウェアエンジニアとして働いているmongolyyと申します。
「ピープルウエア 第3版」がkindleのセールで安くなっていたので買って読んでみました。

感想を書きたいと思います。

感想

人間中心な観点から語られており、アジャイル開発に通づる話が多かったので、大体の話はスッと入ってきました。
そんな中でも、次の話が特に気になりました。

  • 立てる目標によって、アウトプット量が異なる話
  • 快適なオフィスとは?働く環境とは?の話

それぞれについて、簡単に触れたいと思います。

目標の話

立てられた目標の高さによって士気が変わるので、目標が高ければ良いというわけでもなければ、低くてもだめで、適切な量を設定するのが良い。なんなら、目標を設定しないほうがアウトプットの量は多いという研究結果があるということが書かれていて、前者はわかるなーと思いつつ、後者はどうなんだろう?と、思いました。

ここらへん、スプリントゴールを設定せずに、スプリントを実施してみるとベロシティは良くなったりするのかな?と、思いました。
(ベロシティが上がったとしても、チームの一体感は無くなり、長期的な生産性は落ちるようにも思いましたが、、、)

オフィスの話

オフィスへの投資が生産性向上に対してコスト効率がいいこと、オフィスのレイアウトはチームによって様々であること、静かなオフィスが生産性を向上させること、創造性のある仕事をする際は音楽をかけるのが良くないこと等が研究結果とともに書かれていました。

適切な配置はまさしくその通りだなと思っており、昔、一週間ごとに役割を見直し、チームの席を入れ替えて、うまくいったことを思い出しました。
また、今の会社で、「自分たちの部屋が与えられて、自由に組み替えていいよー」と言われれば、静寂も訪れるし、モブや相談などしやすい配置にできて効率良くなるなーという妄想もしていました。

また、音楽が良くないという話も興味深く、ブレストでアイデア出しをしているときに音楽をかけることがありますが、あれはあまり良くないことだったりするのかな?とか思ったり、音楽をかけたときと、かけなかったときで比較してみたいなと、思ったりもしました。

まとめ

「チームの活動をもっと生産的にしたい!」と考えられているマネージャーの方におすすめの本でした。
特に、オフィスについてここまで言及れている本はあまり出会ったことがなかったので、そういう観点で意見がほしい方は、是非本書を読んでみると良いと思います。

NVC(非暴力コミュニケーション)を学んで、自分の中の視点が増えた話

はじめに

最近、アジャイルコーチから以下の動画を薦められて見てみたのですが、これを見たことで新しい視点を手に入れることができた気がするので、その思いを綴ろうと思います。 (とか言いつつ、実は四分の一しか見ていないので、冬休みに残りを見ようと思います。。汗)

マーシャル・ローゼンバーグ NVC(非暴力コミュニケーション) 入門編4の1

マーシャル・ローゼンバーグ NVC(非暴力コミュニケーション) 入門編4の2

マーシャル・ローゼンバーグ NVC(非暴力コミュニケーション) 入門編4の3

マーシャル・ローゼンバーグ NVC(非暴力コミュニケーション) 入門編4の4

どんな視点で見るようになったのさ?

  • 良い悪いという一つの評価軸で物事を捉える機会が減った
  • イメージで語るということを無くそうと意識し始めた
  • 他者の話について、イメージで話しているかどうか注意するようになり、どこまでが実際に起きた事象なのか把握するように努めるようになった

以上のような効果があったと思います。

1個目について補足します。
良い悪いという二元論的評価については、物心ついた頃から、学校、親から次のような教育を受けていると思っています。

  • 正解を取ること、成功すること = 良いこと、褒められる
  • 間違いをすること、失敗すること = 悪いこと、怒られる

この考え方は他者を躾けるという意味では便利なのかも知れませんが、
現実の事象ではこの二元論で分類できないこともありますし、アジャイル的な考え方をすれば、失敗することはむしろ学びの機会でもあり良いことだったりもします。

つまり、正しい、正しくないというのはあくまでイメージでしかなく、それ自体に分類する意味はないし、仮に分類するにしても、表裏ではなく隣同士くらいの関係なので、少しずらして考えてみるだけで、意味はひっくり返るということになると、思っています。

結果どうなったのさ?

  • 人の話を聞くときに、課題にフォーカスできるようになった
  • イメージに囚われなくなり、精神的負担が減った

イメージが先行したり、良い悪いの話になると、同情して、解決策を見いだせずに終わったり、ミスリードによって本質的な課題にたどり着けずに終わることありましたが、事実のみを捉え、良い悪い等のイメージを排除することで、課題にフォーカスできるようになりました。
また、「間違ってしまった!!!」みたいな負い目の感情も和らぎやすくなったり、「なんであの人は〇〇してくれないんだ!これが正解なのに!!!」みたいなことでイライラもしなくなりました。

他にも、議論で感情的になることが少なくなったように感じます。

終わりに

  • 物事を俯瞰したい方
  • 心の安定を手に入れたい方

は、是非、この動画を見てみると良いと思います。

また、こういう何が正解とか無いよねという認識に達すると、一見、負に見えるようなことも、受け入れられるようになると思っています。
こういう認識により「無知の知」の認識も得られるようになりそうだなとも思いました。

私のドラッカー風エクササイズの進め方

はじめに

今までもいくつかの会社でドラッカー風エクササイズをやって来たのですが、毎回説明資料を作るのが面倒なので、ここに整理してまとめておこうと思います。

進行役としてやること

  • 事前準備
    • スプレッドシート、miro、notion等で表を作っておく
      • サンプル用に自分の回答を最右列に書いておく
    • 説明資料をwiki等に書いておき、参加メンバーに事前準備の依頼をする
  • 当日やること
    • 楽しんで進行する

以下説明資料

チームビルディングの目的

心理的安全性」と、「信頼関係」を構築するのが目的です。
これからチームで仕事に取り組むためには上記2つが大事だと思います。

Googleの研究( Google re:Work - ガイド: 「効果的なチームとは何か」を知る )では

効率的なチームで重要なことは「誰がチームのメンバーであるか」よりも「チームがどのように協力しているか」である

という研究結果も出ています。

ドラッカー風エクササイズの目的

アジャイルサムライ」という本にはドラッカー風エクササイズが以下のように紹介されています。

次の質問に答えることを通じて、チーム内の対話と信頼関係をかたちづくる。どちらも高いパフォーマンスを発揮できるチームなら必ず備えているものだ。

  • 自分は何が得意なのか?
  • 自分はどうやって貢献するつもりか?
  • 自分が大切に思う価値はなにか?
  • チームメンバーは自分にどんな成果を期待してると思うか?

私は、 メンバーの志向の把握、自分への期待感をすり合わせることで、すれ違いを減らし、やりがいを持って働ける状態に近づける というのがドラッカー風エクササイズの目的だと解釈しています。

事前準備

スプレッドシート、miro、notion等に表が用意されているので、そこを埋めていってください。
具体的には、表の次の項目を穴埋めしてください。
それぞれの項目について、箇条書きで1,2個書くようにしてください。箇条書きは1項目につき最大3個にしてください。
最右列に私のサンプルを書いておきます。

  • 名前とあだ名
  • 自分は何が得意か?
  • 仕事のやり方
  • どうやって貢献するか?
  • 自分が大切に思う価値はなにか?
  • チームメンバーは自分にどんな成果を期待していると思うか?
  • ストレングスファインダー(やっていれば)

当日の流れ

  • アイスブレイク (2分)
    • 今のお気持ちを書く時間 (1分)
    • 共有する時間 (1分)
  • 改めて説明 (3分)
  • 一人ずつ (8分/人)
    • 自分が書いたことの発表 (3分)
    • 他の人が期待することを書く (2分)
    • 他の人が期待することを共有 (3分)
  • クロージング (30秒/人)
    • 一人一言感想を言う。気づいたことでも、今後の抱負でも。

参考資料


終わりに

ドラッカー風エクササイズの問いに対する答えは自分の成長とともに変わってきます。
人が増える等プロジェクトの節目に見直すと良いと思います。

私は、こういう風に進行しているよ!など、意見ありましたらコメントを書いていただけると嬉しいです。

プロジェクトマネージャ試験をどう勉強して、一発合格したか?

はじめに

メーカーのコーポーレート部門で働いているmongolyyです。
令和3年秋のプロジェクトマネージャ試験に一発合格することができたので、自分が実践した勉強法をここに書きたいと思います。

勉強期間と時間

勉強期間:約1~1.5ヶ月
勉強時間:40時間程度

勉強の順番

午後Ⅰ対策→午後Ⅱ対策
スキマ時間に午前Ⅱ

午前対策

以下の「プロジェクトマネージャ試験ドットコム」というサイトで勉強しました。

www.pm-siken.com

このサイトの特徴としては

なので、スキマ時間に勉強しやすくなっています。
私は電車の移動時間などでこのサイトを利用して、5年分ほど解きました。

IPAの午前は類似問題がよく出るので、このくらい解いて中身を理解している場合、8割はほぼ確実に取れるようになります。

午後対策

私は「情報処理教科書 プロジェクトマネージャ 2021年版」という書籍で勉強しました。

この本では勉強の取り組み方について記載があるのでこれに沿って、また、意識してすすめるといいと思います。
本書では午後Ⅱ→午後Ⅰを繰り返すといいと記載がありましたが、初見で午後Ⅱはハードルが高いと感じたので、午後Ⅰから先に取り組みました。

試験までの残り時間がなかったので、午後Ⅰ、午後Ⅱは本書の◎の問題のみを解きました。
加えて、午後Ⅱについては○の問題の予防接種(詳しくは本書記載)もしました。
午後Ⅰの問題を先にやっていること、午後Ⅱの予防接種により、午後Ⅱのネタを効率的に集めて整理することができたと思います。

また、午後Ⅱの問題を最初解くとき、なかなか書き出せなかったので模範解答をみながら自分の経験を踏まえて書きました。
初回以外は問題文だけを読んで論文を書くようにしました。

また、午後Ⅱ対策として、問1の書き出しのテンプレは用意するようにしていました。
実際試験を受けると、時間はギリギリだったのでテンプレは必ず用意したほうがいいと思いました。

終わりに

初めての論文試験で慣れないところもありましたが、書籍に記載の勉強法、解説が結構良かったので、それでだいぶ助けられました。
ここどうしたの?みたいなことがあればコメントいただけると嬉しいです。

来春は「ITストラテジスト試験」「システムアーキテクト試験」あたりに挑戦していこうと思います!

「Reactハンズオンラーニング」を読んだ

はじめに

普段はReact、Next.jsを使っているmongolyyです。
最近同僚から薦められて「Reactハンズオンラーニング」という本を読みました。
すごく良かったのでその記録を残しておきたいと思います。

タイトルを見たときは、Reactの入門書かなと思ったのですが、中身を読んでみると「関数型プログラミング」から始まり、「Suspense」「SSR」まで掲載されており、初級者が中級者にステップアップするため、中級者も読み応えのある本でした。

むしろ、完全な初心者の方はハードルが高い一冊かもしれません。

わかったこと

制御されたコンポーネントと非制御のコンポーネントの違い

今までは、「制御されたコンポーネントのほうがリアルタイムにバリデーションがされてユーザー体験がいいので、制御されたコンポーネントがおすすめだよ」くらいの薄い理解でした。
本書を読んで、理解が広がり、

  • 制御されたコンポーネントの場合、DOM操作はReactにより制御される
    • 私見ですが、これによりReactのルールに従ってコードを書くことになり、バグが減ったり、Reactによるパフォーマンス改善の恩恵を受けやすくなるのでは、と思っています
  • 制御されたコンポーネントは再描画されると思っていたが、propsやstateが変わっているかなどで、reconcilerがレンダーするかどうか判定するので、必ずしもパフォーマンスが悪くなるわけではない
    • ただし、関数コンポーネント自体は毎回呼ばれるので、関数コンポーネント内に重い処理を書かないほうがいい
      • useMemo, useCallbackを使うことである程度は回避可能だと思われる
  • 非制御のコンポーネントxxx.current.value = 'hoge' のような代入が入ってきて、ミュータブルになってしまう(宣言型を重視するReactの意に反してしまう)

等ということがわかりました。

サスペンス

今まで、ローディングがよしなに処理されるやつでしょーくらいで思っていましたが、ErrorBoundaryと合わせて学んだことで、一気に理解が深まりました。

サーバーサイドReact

サンプルコード含めて丁寧に説明してありました。
自分はNext.jsのコードも少し眺めて、本書で書かれていることと似たようなことが実装されていることも確認しました。
Next.jsを使われる方は、この章読むといいと思います。

おわりに

トピック自体は、Reactの公式ドキュメントにも記載がある内容も多いですが、違う角度であったり、サンプルコードも豊富で理解が深まりました。
脱初級者を目指す方、中級者で理解を深めたい方におすすめしたい一冊でした。
みなさんも是非読んでみてください。

"持続可能な"社内勉強会のコツ

はじめに

一年ほど前からいくつか社内勉強会の主催/参加をしていて、いい感じな勉強会の特徴や、それを受けて、気をつけるとよさそうなことがわかってきたので共有したいと思います。

勉強会の効果とは?

そもそも、勉強会の効果は何でしょうか?
「自分で勉強すらええやん」と言う同僚もいました。
個人的には以下のような効果があると考えています。

  • アウトプットすることが強制されるので、それによって参加者の成長が促される
  • 普段議論しない人と議論することで横のつながりができる
  • 議論によって、ゆるーーく認識共有したり、新しい知見を得ることができる
  • 新しいことを効率的に知ることができる

4つ目は内容によっては、体系的にまとめられた書籍などを使用し、一人でやったほうが効率的なこともあると思います。
が、それ以外は、個人学習では得られない、勉強会特有の効果だと思います。

どんな勉強会やってるの?

いくつかありますが、大きく分けて以下の2種類があります

  • 所属するグループ(20名程度)で集まって行う週一の勉強会
  • 有志で集まる週一の輪読会

それぞれをやっていて、気づいたこと、気をつけていることを共有したいと思います。

いい感じな勉強会の特徴

参加する人たちの熱量が高い

「熱量とはなんぞや?」っという話ですが以下の3点だと思っています。

  • 全員が何か意見/質問を出し合えているか?
  • 毎回参加できているか?
  • 全員仕事に直結する/興味が持てる分野か?

上記は、互いに依存しあっており、かつ、どれかがかけることで質が低下したり、それきっかけで自然消滅することもあると思っています。

気をつけていること

私は、参加者が熱意を持ち続けるために 持続可能な程度で、意識高く保てる勉強会 がキーになってくると思っています。
これを実現するために、以下のポイントを気をつけています。

  • 自主性を重んじる
  • みんながアウトプットする機会があること
  • みんなも主催者も負担は小さく
  • 比較的時間が空いている時間で設定し、時間帯は固定する
  • 共犯者を作る

自主性を重んじる

「来るものは拒まず、去るものは追わず」の精神ですね。
そもそも、勉強するかどうかは本人のやる気次第なので、特に強要せず、もっと伸びたいと思っている方に機会を提供するというイメージで考えています。
また、会/メンバーによってはメンバーで学びたいことをプレゼンして、投票して決めるという方法を取ったり、予めいくつかメニューを用意し、参加者が選択し、各ルームに分かれるという方法を取ることもあります。

みんながアウトプットする機会があること

以下の2点に取り組んでいます。

  • 集団をあえて小さくする
  • 話を順番にふる

2点目は、勉強会中もそうですし、最初のアイスブレイクや、最後の感想/ふりかえり時にも意識し、全員に話してもらうようにしています。

みんなも主催者も負担は小さく

みんなの負担を減らすために、準備不要な勉強会を開催するようにしています。
どんなものかという例については、以前私が書いた「音読会」の記事をご覧ください。

mongolyy.hatenablog.com

主催者の負担を減らすという観点で、私が主催者の場合は、自主性とも通じますが、不参加の人に対して、調整/説得するといったことは一切していません。
また、アウトプットする話とも関連しますが、あえて小規模にする/小規模のチームに分けることで、調整コストを増やさないようにしています。

比較的時間が空いている時間で設定し、時間帯は固定する

主催者が参加できること、他の参加者も参加しやすい時間帯を意識して時間をおさえます。
リズムが大事なので、一度決めたら曜日、時間は動かさないようにしています。

共犯者を作る

なるべく主催者は参加するわけですが、業務の都合/私用でどうしても参加できないこともあります。
そのときに代わりに進行をしてくれたり、勉強会についての相談事項を相談する相手がいると、調整コストも下がり、継続性も高まります。
また、最低二人はいることになり、最少開催人数は毎回超えることになるので、参加者が他にいなくても勉強会自体は開催、継続はしていけると考えています。

まとめ

勉強会は単発で終わってしまうものもありますが、個人的には継続が一番大事だと考えています。
本記事が、皆様のお役に立ち、少しでも"持続可能な"社内勉強会が増えると幸いです。

Monthly Agile & IT 勉強会(2021/10)

今月/先月開催されたイベント

アジャイル中心にイベントの紹介や、印象深かったスライドを紹介しようと思います

スクラム系のイベント

9/18(土): XP祭り2021

xpjug.com

見積もりについてPO、開発者で読んでワイワイ感想会やりました。

speakerdeck.com

10/1(金)-10/2(土): Scrum Fest Mikawa 2021

https://confengine.com/conferences/scrum-fest-mikawa-2021/schedule

IT系のイベント

9/28(火)-9/30(木): AWS Dev Day Online Japan

aws.amazon.com

普段サーバーレスなサービスを利用してシステムを作っているので参考になりました。 チームメンバーでわいわい言いながら見てました。

speakerdeck.com

10/1(金)-10/2(土): PHP Conference Japan 2021 (phpcon)

phpcon.php.gr.jp

業務ではPHP使っていませんが、勉強になったスライドがあったので紹介しようと思います。

チームで読んでレビューについて意見を言い合いました。良い資料でした。 speakerdeck.com

今月/来月開催されるイベント

スクラム系のイベント

11/4(木)-11/6(土): SCRUM FEST SAPPORO 2021

https://confengine.com/conferences/scrum-fest-sapporo-2021/schedule

今月/来月開催されるIT系のイベント

10/26(火): pm conf

2021.pmconf.jp