マネージャーになってから1年が経った

9月になりました。
「おっ、そういえば」という事で社内ポータルの人事発令を掘り起こしてみたら、2021年の9月から(エンジニアリング)マネージャーに任命されていたということで、気付いたら1年が経っていた。
どんな1年を過ごしたのかな〜というのを何となく振り返ってみる。
全然短い期間だけど、この間に自分なりに積み上げられてものは少なくないとも感じるので。
「開発者からマネージャーになること」は、職位の移動というよりもキャリアチェンジであるという事がリーダーの作法 ―ささいなことをていねいにで述べられていたので、その観点で書いてみよう〜

ふわっと時系列で見てみると

この立場になる前からを思い返してみると、
2020年8月入社→11月にテックリードに→2021年8月に打診があり→9月から今の立場。ということで、いつの間にかリード(技術職)よりもEM(マネジメント)の方が長くなってたんだなぁ。

その前後で(テックリード時代に)、「スクラムに興味を持つ→コーチングやファシリテーションに興味を持つ」「リードになる→組織変容に興味を持つ」といった文脈で組織開発にも関心が強くなったり。
この立場を打診される前、6月くらいに「これは自分はマネージャーをやることになるんだろうか」という予感を覚えたタイミングで、コーチングのスクールにも申し込むなどした。実際に受講したのはスケジュールの関係で8月になったが、これは結果として自分にとって非常に大きな経験になったし今でも最大限に利用しているリソースの1つだなぁという感触。

そこから発展して、(RSGT2021で存在を知って興味を持った)CAL-1を受講したりも。これもまた、自分の中での「リーダーシップのスタイル(好きそうなもの、目指したいもの)」について非常に大きな影響を与えているし、探求し続けているトピックの1つになっている。

どういったことを学んだのかな

この1年で読み終えた本のタイトルたちを眺めながら、自分が「意図的に知識を取り入れようと能動的に動いたトピック」というものをまとめてみる。

統制・監査、管理会計、カスタマーサクセス、アジャイルスクラム、XP、プロジェクトマネジメント、組織開発、コーチング、ファシリテーション、メンタリング、心理学、組織デザイン、マネジメント、リーダーシップ、コミュニケーション、、、、とかとかって感じになるのかなぁ。
ジャンル分けの粒度とかもバラバラだけども。
アジャイル系のは微妙なところなのと、この立場関係なく趣味として読んでいそうなものも非常に多いけど。とはいえ「どうにか職務を良い形で全うできるようにする」「関わる範囲が広くなった分も、どうにか会話ができるようにカバーする」みたいな動機で幅を広げたものが、こうしたジャンルになるのかなーという気がする。

やってみてどうだったか

学ぶべきことが多い

良い意味でも悪い意味でも。
そもそも、この会社には「環境に油断せずに+求めすぎずに、自律的にしっかり学習を続けて成長を手に入れられるようにする」というテーマを自分なりに掲げながら入社してきた。

その意味で、(座学や研修の受講を通じて形式的な知識を手に入れて・・・という)狭く意味を切り取った「学習量」は、半ば強制的にor強迫的に増えたし広がったのではないかな?と感じる。
そこには、もし上長が「ぴよぴよの駆け出しのくせに、自分を高める努力も何もしてねぇ」という状態で自分の上に座していたら非常にムカつくだろうなーと足掻いている面も多々ある。(どうにかやれてるのかな?分かららんけど)

また、技術系の職種のマネージャーでもあるので、↑でキーワードとしては上げていないが「ちゃんと技術的にも強くなっていっている」というのは人の立つ上でマストだと思っているので、技術書も読む量は増やそうと意識している。出来ているはず・・・
「ちゃんと技術者としても前進し成長できているように」という意味では、phpcon2021(19本)→phperkaigi2022(7本)→phpcon2022(11本)とプロポーザルを出し続けているのも関係している。

誰かと話す機会、相手が増えた

とても普通なことかもしれないけど、これは「実際にやってみると今までの仕事とぜんぜん違うなぁ」と感じるところであり、自分に与えている影響はかなり大きい。
メンバーと1on1をする!といった時点で毎月10−20人ほど話すことになるし、同じレイヤーにいる横のつながりも出てくるし、上の人とも話すことになるし。
今までだと、キャリア全体を見てみても、プロジェクトだったりチームだったりの輪の中で話すことが主だったのだけども、コレが唐突に多様な人と対面して話すことになる。

嬉しいなと思うこと

「マネージャーって楽しい仕事なのだろうか」みたいな話はあるのだが、自分にとっては、明確に「あぁ良かったなあ」「嬉しいなぁ」と感じられる瞬間は少なからず有った。というか、メンバーから元気をもらっているなぁと思える場面で言うとほぼ毎週くらいな感じもするけど。

  • メンバーから何かグッとエネルギーを引き出せた感じがする時
  • 良い意味で「人は人」「自分は自分」が染み付いてきたと思う
    • 今までと違い、「自分とは仕事に対する気持ち的なコミットの度合いや技術力等の能力が大きく異なる」という相手とのコミュニケーションが増えた
      • ・・・しかも、それを「自分が支える」という役割付きで!
    • 普通に「チームの一員」として働いている時は、そこそこ似通った相手との関係性が主になりがち
      • しかも自分はCTO室とか基盤チームみたいな所属が長かったから余計に、かも

役に立ったな、重要だなと感じたスキル

傾聴

サブとして発問。

傾聴に関してはこのあたりだろうか

発問に関してはこのあたりがオススメ。

健全に「今のままに満足していない」こと = 影響力と向き合う、ビジョンを描く

期待を持つ・伝えることに直結すると思う
これはTL時代からだとは感じるけど、「もっとよく出来る」「だとしたら何が足りない?」っていうのを考え続けるし、自分だけでは出来ないところも含めて「こう思うんだけど、どうにかしてみない?」という話をしてる。「できそうな気がするよねー」というのも、場合によって。

目的志向

要するに「そもそも」を設定して、そこに向かっていこー!という。
自分自身に対しても、関わる相手に対しても、この意識を持ちたい・共有したい。

2つ効果があると思う。
コーチングの人たちがいうところの「Creative Tension」であり、内発的な動機を引き出す所。
もう1つが、「ゴールから振り返ってみてみる」「俯瞰し、道筋を逆算してみる」という行動のための、リフレーミング(を促す)効果。

to be continued!!!

雑感としては「お、なるほど、思ったより全然やれるのでは?」という感じ。
何にせよ正解がない・・・けど、だからこそ自分で考えるのは楽しいし、気楽とも言えるなーと。責任は重大すぎるくらい重大だけども。
特に、「新卒で入ってきて、この会社が1社目です!他を知りません!!」っていう人(若手。ミドル以上はまぁ良いとして)にとって、この環境が持ってしまう意味は非常に大きいので、あまり大げさではなく「人生を変えてしまう」・・・って考えると今でもたまに吐きそうになる。

面白い部分と、全く足りないと感じる部分がどちらも濃いし多いので、引き続きやっていくぞ

セキュアベース・リーダーシップを読んだ

読みながらメモとかはとっていなかったのだけど、これは記録に残しておきたいなーと思ったのでざっくりと読書記録を。
GWに対話や関係構築に関する本を読んでいたり(問いかける技術、アサーション入門、フォーカシング)、直近でもシャイン博士が語るキャリア・カウンセリングの進め方: <キャリア・アンカー>の正しい使用法を読んだりなどで、「コーチングとかマネジメントとかリーダーシップについては、色々と知らなきゃいけないことがあるぞ・・無限にあるぞ・・・そしてそれを自分が知らないことによって周りの人が失敗する確率が上がったり、本来望めたレベルが下がったりするのは嫌だな・・・」「知れば知るほど武器になるな、面白いな」っていう気分が高まっていたので。
とりわけ、キャリア・アンカーの話を見ていて「周りの人の実力・才能をもっと豊かに引き出すには?」を深めたいなーという意欲を濃くしてくれたので、積んであった本書を手にとった次第。

どういう本

「セキュア」という言葉が含まれていることから、心理的安全性とかそういう方面の話と関連があるのだろうなーと思いながら読んでみたけど、そうっちゃそう。
読了後に、この本を知った&買ったきっかけは何だったっけ・・・っていうのを思い出そうとしたんだけど文脈が掘り出せずに残念。購入タイミング的に、LeanとDevOpsの科学を読んでいた時期っぽかったので、その関連かな?

原題が「Care to Dare: Unleashing Astonishing Potential Through Secure Base Leadership」で、「思いやりで勇気を与える」「セキュアベースリーダーシップで驚愕的な才能を開花させる」みたいなニュアンスなのかなー

言うまでもなく、この「セキュアベース」が本書の中核的な概念であり、それがどのような効果をもたらすか?どのように実装・実行するか?を伝える本。

セキュアベースリーダーシップについては、まえがきの言葉を借りれば以下のように定義されている。

守れられているという感覚と安心感を与え、思いやりを示すと同時に、ものごとに挑み、冒険し、リスクをとり、挑戦を求める意欲とエネルギーの源となる人物、場所、あるいは目標や目的
『まえがき (P9)』

個人的なイメージでは、「私はここにいて良いんだ!という肯定感をもたらし、内発的な意欲をもって挑戦を促す」ような施しをもたらす「いつでも帰ってこれると信じられる基地、ホーム」的な存在なのかな〜という捉え方。
その存在は、からなずしも「接点をもった誰か」である必要はなくて、精神的支柱となるような「目標」であったり「過去の経験、エピソード」などでも良いよーと。ふとっちょのオバサンの為に靴を磨く、というのも近いだろうか。遠いか。

1冊を通じて、他人(フォロワー)にとっての「セキュアベース」たるようなリーダーになることを目指す。それは「具体的な何かの行動や思考」よりも総合的な、「人としてのあり方(P13)」として語られる。
そのために必要な「資質」を9つの要素に分解し、しかもそれを「明確で、現実的で、習得可能なもの(P61)」と断言している。
それぞれ、どうして必要なのか?具体的にどんな行動・心理に顕れてくるのか、表せるのか?自分自身がそう振る舞えているかを、どう点検すればいいのか?どのように獲得・強化すればいいのか?
─といった話が展開されていくのだ。

論理的な話であり、自己啓発的な側面も多分に含みながら、具体性・実践的なレベルによく落とし込まれているな〜と読んでいて嬉しかった。

続きを読む

GWを振り返る

読みたい本がたくさんあるんだ〜〜!って気持ちのままに迎えた連休ということで、本を読みました。

↓1年前 daisuki.nichiyoubi.land

最近の本の読み方

タイトルとか、Twitter眺めてて言及されてた本とか、本を読んだら紹介されていた本とか、「何となく興味を持った」とか「コレはどっかで読む可能性があるんじゃないか?」と思った本をば〜って買っていくスタンスになっているので。
どちらかというと、「1冊を丁寧に読む」っていうよりも「どんなことが書いてある本なのかを知る」みたいな読み方をする割合が増えているかも?という気がする。
(もちろん、じっくり読んだりちゃんと理解して掴もうとする本もある)

年末年始のアドベントカレンダー期間に「とりあえず読了だけはする」と決めて付き合った本が何冊もあったり、4月に入門〜基礎レベルのプログラミングの本を1日?半日?で8冊ほど目を通したり・・・というのを体験したので、なんというか「読み流す」みたいな読み方が上手くなった気がする。感覚を掴んだよな。

そういえば昔から「雑にやっても大事なことだったら何度もでてくるし定着するでしょ」っていう思考なので、まして今みたいに積ん読が膨れ上がっている状態だと、こういう風な読書のモードを簡単に取り出せるっていうのは良いことなのかもなーって感じ

雑感

4/29-5/8までで10冊読んだので、ペースにしてちょうど1日1冊くらいかなー。
前から読んでいてこの期間に読み終わったものもあるし、逆にこの期間に読み始めて今も読書中のものもありつつ。
あと、「1冊は読み終えられるように軽そうな本を挟む」みたいな事もしてた。この辺り、去年のGWに結構たくさん読んだな〜っていうのが1つの目安にしてたなぁ。

ソフトウェア設計、コーチング、PjM、DevOps、PdM、ファシリテーション、「他人に勧められるかな?」目線でレベル的に自分にとっては易し目な本・・・と、自分の興味のあるものを我儘に手にとった感じ🤗

あと洋書が段々と自分の読書リスト(実際に読んだ本)に含まれてくるようになったのは嬉しいな。
これもアドベントカレンダー2021に訓練みたなものができた点だと思う。

アナリシスパターンを読み切るぞ!!!って思ってたけど、結局まだまだ途中だなぁ。

読んだ本の記録↓

読了順に

Domain-Driven Design in PHP

猫も杓子もDDDじゃないですか、っていうことで「PHP利用者にはグッと来やすい」みたいな書評をどこかで見かけたような見かけなかったような気がして積んでた本。
GW初日(その前日の夜だけど)に読み始めて、この期間では1番最初に読み終えて。

いや〜〜〜コードがPHPだとすごい分かりやすいな!?脳みそが楽だ!!!みたいな気持ちになった。
直近でアジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技を読んだ際に「コードが視覚を通じて脳みそに届いて理解に至るまで」の摩擦係数がすんごい高ぇ〜・・・みたいな経験をしたばかりなので、この「ざっと全体俯瞰してもポイントや言いたいであろう事が目に飛び込んでくる」くらいの読みやすさはとっても気楽で嬉しかった。

それもあって、かつ難易度としてもそんなに高くなくわかりやすかった気がする。
コードが具体的、ある程度の「DDDとは」的な所の端折りを許したことで「つまり何」がテンポよく出てくる、みたいな感覚。
どうしても「養殖物」なコードではあると思うのだけど、「集約」とか「ドメインイベント」とか「ドメインサービスとアプリケーションサービス」とかの戦術的DDDを扱う上で出てくる掴みにくいような概念も、自分にとってはスッと頭に入って来やすい感じがしたなぁ。
それは「PHPだから」もあるだろうし、「説明も簡潔だから」ってものあるだろうし、それこそ「何度も似たような本を薄く広く読んできたから解像度が上がる」って効果も感じつつ。

動作可能なサンプルコードもGitHubに上がっているということで、本書にて触れられていないコードとか全体のつながりは補える。
勉強がてら、CakePHPで書き換えてみたいなーって思ったり。

なるほど感が多かった1冊。DDDの「入り口の次」くらいに良いんじゃないかなー
最近、社内でもDDDだったり設計に興味ありそうな人がチラホラ目に入ったり、あと「PHPのコードリーディングを練習してみたい・良い題材がほしい」って人も居たりするので、勉強会してみても面白そうだ。

PMBOK対応 童話でわかるプロジェクトマネジメント

yokohamanortham.63 で言及されていた本。

anchor.fm

まず「なんで童話で語ろうとしたんだwww」っていうお茶目さを感じつつ、全体的にそういった軽快さで記述されているので、読み心地としては軽いしとっつきやすいんじゃないかな〜!という印象。
これ1冊で「プロジェクトマネジメントができるぞ!!」というものではないけど、例えば「自分が参加しているPJでマネージャーがどういう事を考えていそうか、何に気を遣っていそうか」が薄っすらと感じ取れるようになったり、自PJの「なんとなく上手く行ってないかも?やりづらいかも?」を観察するためのメガネにはなってくれるかも。

問いかける技術 ― 確かな人間関係と優れた組織をつくる

組織開発系の本、ということでいいのかなー。
「問いのデザイン」とか「問いかけの作法」とか(どちらも同じ著者だけど)が「どうやって引き出すか」というよりも、こちらは「どうやって向き合うか、聞き手の態度として何が大事か」のような、より内省的な話を扱っているような印象。
(同著者の「企業文化」「人を助けるとはどういうことか」も積んでる、面白そうだから読みたいんだよなー)

この本は「謙虚に問いかける」という事を重視していて、「謙虚さとはなにか」「なぜ大事なのか」といった話を展開している。
ただ単純に「相手に大して丁寧な態度で接する」みたいな話だけではなくて、もっと受容を重んじるような、「自分の意見を出したり主張したり誘導することなく、本当に相手の中にある/出そうとしているモノを引き出す」といったような話。 相手に興味を持つ、先入観を排除する、「聞く」のに集中する・・・

面白くて新鮮だったのは、「思考プロセスに影響を与えるようなの問い」がアンチパターンとされている点。
例えば「内面に何を持っているのか」とか「根底にどういった思考や価値観があり、そういう思考に至っているのか」といったような、会話(=発言など、表面にできていているもの=コンテンツ)を生み出している原因だったり過程だったりといったレイヤーに意識を向けるような問いのこと。
「よく聴く、相手を立てる」みたいな実践であるはずのコーチングにおいて、こうしたものこそが「相手への興味の向け方」とされているような感じがあり、明確に違うなーと。

もちろん「どっちが良い、悪い」という話ではなくて「適切に使い分けるべき」という話になるのだけども。
いわく、このような問いかけは「本人は思おもよらなかったことを考えさせる」ような方向づけになってしまい、相手の考えようとしていた事柄の道筋に大きな影響を与えてしまう。言ってしまうと「思考プロセスを乗っ取る」「会話の主導権を握る」ような状態に陥ってしまうのではないか、と。

問いや会話の実践を通じて、信頼関係を築いていく事を指向した1冊。
今回はちょっと駆け足気味に読んでしまったけど、分量もそんなに多くないので、またどこかで再読したいなー

アサーション入門

アサーションとかアサーティブコミュニケーションっていうのを初めて知ったのはどこだったっけか・・・というのがパッと出てこないのだけど、どこかでしっかり修めてみたいなと思っている分野の1つ。

こうした考え方を知ることは、単純に「他者と上手くコミュニケーションをとる」みたいな事にも効果を発揮すると思うのだけど、もっと抽象的な部分での「自分が自分を大切にできているか」「何にこんなにも傷つけられているんだろうか」を取り出す力が育まれるのかな〜という気がする。

その点で言えば、第3章「考え方をアサーティブにする」で触れられているものが大事そうな感じも。

フォーカシング

コーチング、カウンセリング文脈の本を引き続き読んで見る。
フォーカシングはとてもおもしろいし強力だなぁ・・・と思うのだけど、自分の場合、マインドフルネスやU理論みたいな「実際に自分が感じてみないと、どういう感覚なのかを掴むのが難しいもの」という引き出しにフェルトセンスは入っているような。
自分の場合、コーチングを習う過程で少しは体験していたので、最後まで「面白いなー」って気持ちを維持しながら読めた気がする。

フォーカシング、「自分の内面や感覚に意識を向けて、何が起きていてどんな事を感じているのか・・?を知ったり理解したりする」みたいな話で。これが出来ると、例えば「なんでそんなにイライラしてしまうのかが分かった!!」とか「私が本当に望んでいたのはこういう事だったのかも!」みたいな感じで、気持ちや感覚がほぐれたりと。

特に印象的だったのが、

うなくフォーカシングができているときにはどんな感じが出てきてもうれしく感じるものです。「死んでしまえ!」という内面の感じが聞こえてくるかもしれません。これをおだやかに、理解を示しながら吟味することになるでしょう。たぶん「おや、面白いな。宣告されてる感じだ。道理で行き詰まってるという感じがしてたんだ─もしそこにこんな感じがずっとあったのだとしたら。(後略)」 (P51)

のあたり。
こういう、「めちゃくちゃ憤っているのは自分自身」であるはずなのに、その感情の変化や激しい反応自体も切り離して客体化していくことで、そこから踏み込んで「何がそうなれるのか」についても理知的に分析できるーっていう作用の仕方にはすごいパワーを感じる。

これもまた、「こういう考え方もあるんだな」っていうのを知っているだけでも救われる面はあるのでは?といった1冊。

コミュニティ・オブ・プラクティス

実践コミュニティの話。
会社で考えようとしていたことに関連して、連休の狭間に「ちょっと明日のミーティングに持ち込もうとしているネタについて、うまい説明ができると良いなー」ってことで優先度を上げて読了。

「お互いに知見を共有し合う、同じ領域に興味や課題感を持つ人同士で集まって研究や学習をすすめる」って意味でのコミュニティと、「実際に起きた出来事や行動から得た知識や考察を重んじる、得た知見は現場で活かす」って意味での(理論知でない)実践を、ということで「実践共同体」とか「実践コミュニティ」「プラクティスコミュニティ」とか「PoC(s)」とか言われているものについての本*1

ユニコーン企業のひみつ」で紹介されているSpotifyモデルでいうところの「ギルド」とかもコレの1つなんじゃないかな?って思っているのだけど、どうなんだろう。
あとLeSSでも触れられていたり。 調整と統合 - Large Scale Scrum (LeSS)

「こういう取り組みがあるんだな」というのを知るためには十分な1冊だなーと感じる反面で、そもそもの性質として「上手くいくやり方を紹介する教科書的な本」っていうのは難しい話題なのかもな、とも感じた。
事例研究を集めて統合した内容にはなっているけど、かといって「どこにでも当てはまる公式」なんてのは無いよなー人や状況に応じて観察して最適化していくしかないよなー・・みたいな。

他方で、「企業活動としてやらなければいけないこと」みたいなのは抑えている気がして、例えば「業績や評価とどう結びつけるか」「組織内でどう位置づけるか」などなど。 逆に、(例えばアジャイル系な本とか組織開発系な本であるような)「個人としての喜びをどう描くか、どうエンパワメントしていくか」みたいな側面はあまり触れられていないような印象も受けた気がする。最近割とそういった本ばかりを読んでいたからなのだろうけども。

こういったトピックについて興味がある人は目を通してみても良いかもしれない、ただ「やってみるしかない」「上手くいくかどうかは、まずリーダーシップを」(あと上役の理解と支援!)的なところなので、端から端までしっかり読んで頭に入れる〜〜っていう必要性は薄いのかも。
どうやっていくか?という面では、むしろ、Fearless Changeとか学習する組織とかに必要なことが散りばめられているかも。

The DevOps 逆転だ!究極の継続的デリバリー

システム運用アンチパターンのまえがき(だっけな)で触れられていたので買った本。
ビジネスフィクションで描かれた「最悪な状態からどうやってDevOps的なコンセプトの実践・実装で大きな成功を勝ち取っていくか」を紹介する本であり、「DevOpsとは〜」とか「○○のプラクティスを紹介します!」といったものではなく。前情報なく読んでみると面食らうかもw

ある意味では「理念」「価値観」「哲学」といったものをまざまざと描き出して伝えてくれる1冊でありつつ、全てが物語の中で展開しているので、「ここから何を(具体的なプラクティスや進め方として)学ぶか」については、読者自身がしっかりと要約したり抽象化する必要がありそうかな?っていう印象。

中身としては(対立者がめちゃくちゃ最悪でストレスが溜まる、っていうのを除けばw)スルスルっと読めるし「あるある」的な内容もふんだんに盛り込まれているし、読み物として楽しめる内容でもあったし〜で面白かった

現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法

良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方をGW前(配信開始日)に読んだことをきっかけに、未読だったな〜と思って手にとった本。
今の所の自分だと、何かめちゃくちゃ目新しいことを学ぶぞ・・・!という期待よりも、「何か会社とかで若手に勧めやすい本があるといいな」「他人に説明する時に分かりやすい文章とかを吸収したいな」という期待が強めだった。

読んでみて、評判に違わず「色々な人にオススメして良さそうだな、早い段階で出会ってほしいな」という印象に。
これ1冊で「設計が出来るようになる、引っ張っていける!!」っていうものではないにせよ、大事な心構えが埋め込まれていると思うし、「ガンバに持って帰って実践する」のに能う本だなーと。
「業務ルールにしっかり目を向けておけ!」みたいな点が強調されていたり、「データベースとアプリケーションコードがどういう関係になるべきか (変な癒着を避けないといけない)」という罠っぽいところも抑えてあったりと、抑えているポイントが気持ちよかった。

A Philosophy of Software Design

どっかで読まないとな〜〜って思って読めていなかった1冊、これが読めてよかったな。。
必ずしも全面同意ではないものの(モジュール(というかクラスか)についてのスタンスなど)、考えは明快で力強いな!!と思うものがとても多く。
あと英文も読みやすかった印象!

Deep Moduleって単語はこの発表で初めて聞いたものだったのだけど、やっぱりオリジナルを読むと「なるほどな!!」感がまた1つ変わってくると言うか。
あと、個人的には、コメントについての考え方がとてもおもしろかった。
General puserposeとSpecial purposeも共通性可変性分析に通ずるものを感じたし、レイヤー分けとか”Pull Complexity Downwards"とかに繋がっていったりと。
複雑性とは何か?という定義(解釈)についても、シンプルによく言い切っているな〜って感心して納得したり。

仕事でコードレビューをする際に机の片隅に置いておきたいし、そういう仕事をする人には1回読んでみてほしいなぁとも感じる。
名著と名高いだけあるなー

本の最後に「Summary of Design Principles」「Summary of Red Flags」が載っているのも助かるし、著者の想いとか願いとか苛立ちみたいなものを感じる

プロダクト・レッド・オーガニゼーション 顧客と組織と成長をつなぐプロダクト主導型の構築

ば〜〜っと駆け足気味に読み流した感じ。より思想的な部分、哲学的な部分を期待していたけど、どちらかというと「数字をどう設定するか(何をインジケーターとして扱うか)」だったり「運用をどうするか」みたいな具体の話の方が、この本においては面白かった印象。
そういう意味では、少し物足りなかったり期待が満たされなかったのかも。
組織文化やコアとなる精神といったもので、「根本的に今とは考え方を変えないと強くなれないぞ!!!」と思わされるようなガツンとくる衝撃は無かったかもなー的な。個人的には、プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届けるの方が好きそう。

「製品開発、サービス提供」の分野については、いくつかのコンテキストで同様に語られることがある気がする。セールス、マーケ、プロダクト(開発)、顧客リレーション・・・例えばカスタマーサクセス系の本を読むとセールスだったり顧客リレーションが多かったり。その意味でいうと、この本はマーケティング畑の本かな?って何となく感じた。

翻訳者ご本人のスライドが https://speakerdeck.com/ykmc09/product-led-organization にあるので、先にコチラに目を通してから本書を手にとって見ると、より面白そう!

*1:長澤さんの記事 https://www.servantworks.co.jp/posts/scrum-master-community-of-practice/ や、ここでも言及されている「Scrum実践者が知るべき97のこと」でも紹介されてる

やったこと・書いたもの{2022,04}

OSS

勉強会・LT

PHPerKaigi 2022に登壇しました

その他

@hanhan1978さんにお呼ばれして、2回目のポッドキャスト出演で喋ってきました!
とても楽しかったです✨(普通に喋っているだけなので、これで良いのだろうか?っていうのは毎回思うw

anchor.fm

悲しいのはこの2日前に使っていたマイクが壊れていてEarPodsで喋らざるを得なかったこと・・・

PHPUnitの実行結果(失敗したテスト)をProblem MatcherでPRのdiffに示す

PHPerKaigi 2022でLTしてきます。

fortee.jp

で、Problem Matchersの話に触れるのですが、5分では触れられ無さそうな内容を予め残しておきます。

Problem Matchers?

↓みたいな感じで、PR時のdiff上に「ここが間違っているよ!」を示す仕組み(の1つ)。 f:id:o0h:20220409013844p:plain

ざっくりいうと、

  • GitHub Actionsのアウトプット内容(actionsの実行結果画面って、標準出力的なやつありますよね)からPRのGUIに転記する〜という感じの仕組み
  • 「標準出力をパースするための定義(regexpのパターンや、その反映先のタクソノミーとの関連付け)」を予めどこかに用意しておいて
  • GItHub Actionsのstep上で、特殊な記法(=コマンド)を使って↑の設定ファイルを有効化させる
    • ::add-matcher::{{ 定義ファイルのパス }} という内容をechoする

という流れ。

例えば .github/pm-phpunit.json に定義ファイルを置いた場合、↓みたいなworkflowを作ると動く。
run: echo "::add-matcher::.github/pm-phpunit.json" がミソ

name: phpunit
on: pull_request

jobs:
  phpunit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: latest
          tools: composer, phpunit
      - name: Setup problem matchers for PHPUnit
        run: echo "::add-matcher::.github/pm-phpunit.json"
      - name: Composer install
        run: composer install
      - name: Run PHPUnit
        run: phpunit

詳しい話は↓ github.com github.com

実際の例

例として、こんな感じの定義ファイルを用意してみる。
状況をわかりやすくするために、「patternを1個だけ設定する」ようにしている。その影響で、(実用的では無さそうな気はしつつ)「messageには、ファイル名を入れる」という指定になっている。

f:id:o0h:20220409015529p:plain

これを使わせるためのstepを用意した f:id:o0h:20220409015829p:plain

PHPUnitの失敗したテストがある。
この出力内容を、patternに従ってPR(のFile Changes)に抜き出してくれるようになるのだ f:id:o0h:20220409015420p:plain

じゃーん!

f:id:o0h:20220409015505p:plain

という感じで、「regexpに合致したところから」「パターンにあるグループと、属性(要素)に変換して」「File ChangesのGUI上に表示している」ってな様子が分かる。

PHPUnitのProblem Matcherで、お手軽に使えるやつ

shivammathur/setup-phpもしくはdecnorton/phpunit-problem-matcherを使うのが良い。
php-setupを使っていない(独自のimageをbuildしている、など)の場合は後者一択。
利用方法は、それぞれのREADMEやソースコードを参照。

これら2つも、実際に定義ファイルを用意して利用していることになる。ので、「お手本例」を簡単に見ることが出来る。オープンソースありがと〜〜

github.com github.com

ハマった所

現状、setup-phpの方はいくつかのアサーションに対応していない(ように見える)。要するに、「指定されたregexpで対応できていないものが有る」。

↓これはうまくいく。 f:id:o0h:20220409020628p:plain

↓これらはうまくいかない。 f:id:o0h:20220409020654p:plain f:id:o0h:20220409020709p:plain

setup-phpの方の定義ファイルを見てみると、↓のようにpatternが指定されている。

      "pattern": [
        {
          "regexp": "^\\d+\\)\\s.*$"
        },
        {
          "regexp": "^(.*Failed\\sasserting\\sthat.*)$",
          "message": 1
        },
        {
          "regexp": "^\\s*$"
        },
        {
          "regexp": "^(.*):(\\d+)$",
          "file": 1,
          "line": 2
        }
      ]

紐解くと、

  1. 「数字+閉じ括弧」から始まる行があって
  2. そのすぐ次の行に「Failed+スペース+asserting+スペース+that」を含む行があって
  3. 空白文字のみからなる行があり
  4. 「文字列+コロン+整数文字」の行がある

という感じ。

なので、

  • エラーメッセージがある(失敗例の1枚目には「なんか変だよ!」の出力がある)
  • expect/actualのdiffがある(失敗例の2枚目には不一致文字列の内容の出力がある)

といったケースでは、Problem Matcherがうまく拾ってくれ無さそう。

phpunit-problem-matcherの方ではこれらのケースにも対応できている(ようにみえる)ので、現状ではこちらを利用するのが良いかも知れない。

落ち着いたらPR出そうかなぁと言う気持ち

2021年もAdvent Calendarに参加しました

メリークリスマス!!!

タイトルの通りで、2021年も年の瀬にAdvent Calendarに参加しました。
(一部の界隈で言う)Advent Calendarとは、12月に入ってからクリスマスまでの日々をカウントダウンしながら、1日ずつブログを書くぞ!!という催事です。

今回は複数のAdvent Calendarに参加して、胸を張ってクリスマス当日を迎えるつもりでした!💪
が、結果として、やっと今日・・・2022年の2月11日・・・に自分の担当分を投稿し終わりました。。。大遅刻ですね気が遠くなる悲しいな病んでしまう。

何はともあれ、完走したぞ、計72日*1を経て全ての作業を終えた!!グランド・フィナーレ!!やった〜〜!!という訳です。

完走の感想

結果とか出だしとか

とりあえず、書いたのはこんな感じ。

書いた本数
12月(advent期間) 55
12月(advent期間外) 2
1月 7
2月 11

adventar.org

adventar.org

adventar.org

やろうと思ったきっかけは、各カレンダーの冒頭に書いてありますが、
「あんまり仕事で開発してねぇ・・・」という状況を自覚した上で「だからって技術や開発に関わる成長が無いなんて事になるのは嫌だ、少しでも防ぐために自分なりにやってきたことはあるだろう、であればアウトプットくらい出来て然るべきだな・・・試すか!!」みたいなモチベです。

1人Advent、2018年にやった時は完全に生活リズム崩れたし辛かった印象が強いので、やりたい気はするけど・・どうしたものか・・・と思っていた所に、知人の「今年は1人Adventやる〜」的な声がTL上を流れていきまして。

はぁ、世の中には頑張っている人がいるぞ、じゃあ自分もどうにかなりてぇもんだ・・・と思ったので決心しました。

で、「複数個やる代わりにネタ出しのハードルをめっちゃ下げる」として、「今年既にやったこと」の放出でいけるモノを〜と考えたのです。
最初は「CfP応募したネタをふりかえってみる」+「ここ1年くらいで興味を持って学んできた、アジャイル/スクラム系の本の感想みたいなやつ」で2本併走のつもりでした。
が、「どの本にしようかな〜」と思っていたら、25本は軽く超えていることに気づきます(既読/積ん読)。し、選ぶとしたらどういう観点よ???ってモヤモヤ感というか割り切れない気持ちが湧き、「あれ・・?もしかして・・?」と積ん読も完全に解禁して数えてみたところ、「ちょっと範囲を緩くしたら50冊近くあるね・・・・」「んじゃ2つに分けるか」となったのでした。

その結果、75エントリー(全部俺)が組み上がったわけです!!

やってみて

11月のうちに本を読み終わってる、少なくとも7,8割は12月に入る前に読み終わってないと厳しいぞ・・・・・と思ってたんですけどね!!
全然そんな状況になってなくて、12月に入る前から「Adventキツい」っていうのが確定しているような状況で。

実際の読了状況はブクログにある通り。 booklog.jp

てなことで、「読みながら書きながら」をやるハメになったのでした。
しかも、その内の何冊かは「重い本」「厚い本」だったり、それに加えて洋書もあると。

特に1月入ってからは、ある意味で「締切」もなくなったので一気に進捗が悪くなってしもうた。

とは言え、なんだかんだでやりきった。お疲れさまでした。 「1枚はちゃんとスケジュール通りに終わらせていたし」とか「ゆーて期限内に”普通の2倍以上”は書いてるんだよな」とかいった事実もあり、敗北感はあるものの挫折感はないかもな〜っていうのが今の気持ちでしょうか。それ以上に、ずっと続けていた&平日も休日も頭の片隅にず〜っと渦巻いていたものがコレで解消したと思うと、やった〜〜〜!って気持ちが大きいのでした。

特に、この試みを通じて「良かったなー」と思うのは、

  • プロポーザルとしては削ったことや、「自分の中の課題や気持ちでしか無いから、応募内容に含めるものではないんだよな」といった部分を、そこそこ言語化できた。それを公に残すことも出来た。
  • 難しいぞって(自分の中では)位置づけにあって、実際に過去に数度は読み始めるも頓挫していた組織パターンを読み切った
  • 洋書 * 3をしっかり読み切った(A Scrum Bookは、端から端まで読み切ったわけじゃないけど)。今まで「洋書を1冊読み切ったことってあったかな?」という感じなので、実績を作れたの嬉しい。これでハードル下がった。
  • 自分の中で、長い間「いつか読むぞ〜」って思っていたり(Advent関係なく)大きなマイルストーン的な位置づけになっていた本、「LeanとDevOpsの科学」「組織パターン」「A Scrum Book」をしっかり読むことが出来た
  • 特にXP/Lean周りは、(スクラムに比べて)知識の補給・補強があまり行われていない分野だったので、いくつかの積ん読を集中的に消化できた
  • 「エッセンシャル スクラム」「This is Lean」「スクラム現場ガイド」「アジャイルな見積りと計画づくり」「エクストリームプログラミング」「アート・オブ・アジャイル デベロップメント」など、間違いなく鉄板と呼んで差し支え無さそうな本も通読できた

とかとか。
あとは、当初から目標としていた「まぁスクラムとかアジャイルとか勉強してるんですよ〜っていう感じを、(読書記録の物量を以て)形に落とし込めんじゃない?」というのもゴールにたどり着けたのでは!

書いたもの

せっかくなので!全員集合です!!!!!

*1:記事を書いた日は40日程度

「XPエクストリーム・プログラミング導入編 ― XP実践の手引き 」

この記事は 「ひとりでアジャイルo0h② Advent Calendar 2021」のday-20です。 adventar.org

day-20は「XPエクストリーム・プログラミング導入編 ― XP実践の手引き」です。

どんな本

XPシリーズ」の1冊で、エクストリーム・プログラミング入門 の次のステップの位置づけになると思います。
名前の通り、「XPとはなにか」についての入門書的な説明の後の、「それぞれをどうやって使っていくか」といった部分に重きをおいた話になっています。 「こういうイベントを開いて○○を実施しましょう」とか「誰が関係するか」とか、「こんなメトリクスを使うと・・」とかといった話が出てきます。
XP入門が「価値原則」も丁寧に取り扱っていたのに対して、こちらは「プラクティス」よりとも言えると思います。

個人的には、「まずは具体的な話や個別的なプラクティスから理解を広げていってみたい」という人には、XP入門より先にこちらの本から手を出してみる〜というのも良いのではと思います。

お気に入りポイントかいつまみ

「XPって具体的にどんな事するの」が分かりやすい

目次をみると、まるでパターン・ランゲージのカタログのように「具体的な、解法を説明してくれそう」な予感のするタイトルのついた章が並んでいることが分かると思います。
(実際には、パターン・ランゲージのように各章で共通した形式が用いられているわけではありませんが)

目次は紀伊国屋のサイトで確認できます。

www.kinokuniya.co.jp

また、第1章・第2章は全体に関わるものなのでまず目を通した後は、その後の各章は独立して読むことが出来るので、気になったトピックからページを捲ってみる〜という使い方もできると思います。
そのくらい、具体性にフォーカスした内容であると同時に魅力的なパワーのあるプラクティスが取り扱われている、ということです。

「エクストリーム」に想いを馳せる

少なくないプラクティスが、昨今の開発の現場では「当たり前」になっていると思います。
とりわけ「11章 プログラミング」にある、コードの共同所有・リファクタリング・シンプルな設計・継続的インテグレーションコーディング標準・・などは、XPを意識しなくてもやっている!というチームも多いはずです。
名前が「エクストリーム」とイカつい手法ではありますが、その一方で「誰でも知っているしやっている」ものでもある、というのはとても興味深いことです。

裏を返せば、現在の現場にいる我々や私自身にとって「そこまでやる?」とか「歪なやり方だなぁ」と思えているものが、10年も経たない内に当たり前になっている可能性だってあるぞ、という事なのだと考えています。

「なにをエクストリームに推し進めたかったの」「どういう価値感(常識感)からの脱却があったのか」を考察することは、これからの時代を読み解く上で意味を持つのではないでしょうか。
そういう視点から「ちょっと昔に書かれた、熱狂的なXP教本」のようなXP入門、本書XP導入編を読んでみると、また違った大きな発見があるように感じます。

特に好きな章

  • 14章「テストファースト―意図を伝えよう」は、本書の中では長い部類の章なのですが*1テストファースト/TDDをすると何がどうやって楽になるの・・?が追体験できるような気がします
  • 16章「行うべきか、行わざるべきか」は、アジャイル的な振る舞いを端的に言い表しているなぁと思います
  • 27章「それはChetのミスだ」は、個々人の勇気を重んじつつも「チームとして動いているのであり、責任は(誰か1人ではなく)チームにある」というのを良く理解できる話でした
  • 20章「イテレーションを運転する」は、タイムボックスを定めて開発をしていると絶対に直面する「思ったより進んでないぞ」や「順調と言えるのだろうか?」についての対処の話です

まとめ

全体的に読みやすい・分かりやすいような文章で、躍動感を持った文体は読者にワクワク感を与えてくれるなぁなんて感じながら読み進めていました。
まだまだ「XPのすべて」という話では無いように感じますが(そもそもそんなものがあるのか?)、取っ掛かりとしては十分、そして実行してみるのにも十分!と言える1冊だと思います。

押し付けのように「XPだ、XPをやるぞ!」とやっていくのは難しいのかも知れません。
しかし、本書のように「そういうお困りごとだったら、ちょっとこれを試してみようよ!」と個別的なプラクティスを少しずつ導入していこう〜を助けてくれるものがあると、とても心強いのではないでしょうか。
そして最終的には、端から端までエクストリームになれると良さそうですね!

*1:コードがあるから、というのも1つの理由かと