Posts for: #Issue Management

コードレビューで1日が終わる日

0時に寝て2時に起きて6時半に起きた。旅行から帰ってきて睡眠の質が上がってきた気がする。

コードレビュー

週明けから毎日ずっとコードレビューをしているわけだけど、今日は scim の id 連携の実装ができたのでそのコードレビューを半日以上やっていた。変更内容は2000行弱ぐらい。以前にも scim の調査 について少し書いた。

担当者は前マイルストーンのときから調査していて、今マイルストーンで初期実装は入れてしまおうという話しを昨日の 1on1 でしていた。また qa レベルのテストは来月末ぐらいでやるので詳細を作り込むよりもまずは大きな機能として入れておきたい。いまマイルストーンの期間を2週間に設定している。調査も含めて実装まで2つのマイルストーンを費やそうとしている。理想的にはどんな機能であっても、メンバーには2週間で完了する粒度で issue を分割して作業できるようになってほしいという狙いがある。

それは過去にどんな新機能を作っていても2週間を超えることはなかったという私の経験則でもある。これは2週間でどんな機能でも完成するという意味ではなく、2週間でマージできないような区切りのつかない機能開発はないという意味だ。機能実装のような issue でマイルストーンをまたぐ開発をしていると、進捗が不透明になったり、開発がダレると私は考えている。ダレるというのは短い期間に集中して開発した方が効率も品質もよいものができるのではないか。記憶の仕組みからは理屈上そうだと言える。開発のメリハリをつけるという働き方に範を示していきたい。

徳島のコワーキングスペース訪問

23時に寝て4時に起きて6時に起きて8時に起きた。今日はお休みをとって徳島のコワーキングスペースの見学へ行くことにした。当初は明日の午前中だけ見学しようかと考えていたけど、宿泊もした方が気付きが多いんじゃないかと思って一昨日に予定変更した。結果的にこれはとてもうまくいった。

ADLIV さん訪問

以前 カフーツさんのオンラインイベント徳島県美馬市脇町 のコワーキングの取り組みを伺っていた。機会をみつけて行きたいと考えていたのを今日行くことにした。10時過ぎに実家を出て、途中 道の駅いたの で休憩して、11時45分には ADLIV さんに着いた。

近くのラーメン屋さんでお昼ご飯を食べて12時半過ぎに ADLIV さんに着き、少し待たせてもらう。宿泊は4,500円で13時からチェックインできる。翌日のチェックアウトまでのコワーキングスペースの利用料も込みだという。13時まで待ってスタッフさんが来られて施設を案内してもらうことになった。

2Fはシェアオフィスになっていて通常コワーキングスペースの利用者には案内しないということなんだけど、他に利用者が少なくて余裕があったのか、私が伊藤さんの紹介だとメモに書いたおかげなのか、2Fも案内してもらえた。ラッキー。外国人が来たときも2Fをみたいという要望も多いと話されていたのでちょくちょく案内しているように聞こえた。

コワーキングスペースに宿泊できるが、ホテルではないのでスタッフは19時にはいなくなって翌8時ぐらいまでいない。それは全然構わない。チェックアウトもとくにスタッフに声をかけなくても勝手に出ていけばよいらしい。お世話になったので挨拶はして出ようとは思う。

今日の宿泊者は私だけなので自由に使ってよいとのこと。カプセルのカーテンを締めると暑いから他に宿泊者がいないから開けっ放しの方がよいとお奨めされた。他に誰かいたらコワーキング的な話を聞いてみようかと思っていたが、週の半ばでそれは叶わなかった。

チェックインして普通に作業していたら、オーナーのなかがわさんが来られて名刺交換して軽くご挨拶した。小さいスペースの方が涼しいからこちらへどうぞとハンモックがあるスペースで作業した。

その後、18時過ぎから一緒に晩ご飯行きましょうとなかがわさんに声をかけてもらって、自転車も貸してくれて、うだつの街並みの案内を受けながらお好み焼き屋さんへ行った。あとから地元の農家さん夫婦も合流して4人で雑談していた。

経営者しか経営者の気持ちがわからないとはよく言ったもので本当にその通りだと思う。うちみたいなお気楽な1人会社であっても、経営者という立場にになって初めて考えることや悩むことが多々ある。そして、経営者は会社の中では孤独な役割になる。経営者は経営という共通の話題をもっていて、他社の経営的な話しに共感しやすく、普段相談する相手もいないことから経営者同士は打ち解けやすい。学校で友だちを作る感覚に似ている。徳島県は淡路島から近いし、なかがわさんとはまたなにかの機会で縁があるといいなと思えた。

  • プロジェクトを通してそれぞれの専門家が一緒に働く仕組み作り
  • 寄せ集めのメンバーを統括してプロジェクトを為すマネージャー大事、超大事
  • 人と人との信頼はアウトソースできない
  • コワーキングスペースをやっていると、向こうからおもしろい人がやって来てくれる
  • 気付きを得て自律的に働く人とそうじゃない人の見極めは難しい
  • 社員にやってほしいことをやれと指示しても自律的に働くようにならない
  • 楽しく働く

18時半から21時までお好み焼き屋さんでわいわい雑談して ADLIV さんに戻って休むことにした。田舎なので閉店も21時半と早めだ。

寝る前に眠くなるまで、書架にあった 史記 を読んでいた。歴史好きなので読み始めると止まらなくなる。

課題管理の雑談会の準備

疲れて18時過ぎに帰ってきて軽く野菜サラダを食べてそのまま寝てた。22時に起きたのでそれからオフィスへ行って2時過ぎまで作業してた。3時から寝て6時半に起きてそのまま8時半まで寝てた。

ストレッチ

出張から戻ってきた後の大事な体調管理の1つ。今回の出張はいつもより離れた場所にホテルをとってあちこち歩いたし、interop の展示会にも参加してたくさん歩いた。昨日はバテて早めにお仕事を終えて寝てたりもした。ストレッチを受けてみると、足の張りはいつもより大きかった。とくに右足すね・ふくらはぎの張りがひどかった。関節周りの痛みも気持ち分大きかったかもしれない。腰の張りは思ったよりひどくなかったのでそこまで歩き過ぎたというわけでもないみたい。ちょっと負荷の高い運動をしたぐらいかな。今日の開脚幅は開始前155cmで、ストレッチ後158cmだった。数値はほぼいつもとあまり変わらない。

課題管理の雑談会へ向けての準備

来月、東京出張したときに コパイロツトさんと雑談会 を予定している。課題管理の雑談をしたいといっても一般の人にはなんのことか理解できないので事前に資料を送るために過去の資料を見返していた。過去に勉強会で使った資料と、直近のお仕事の内容も踏まえての課題管理についての資料をいくつか整理し直した。選択した3つの資料でスライド数は100を超えている。

気付けばコンテンツは十分に蓄積しつつある。これからそれらのコンテンツを体系化したり整理したり、うちの会社がどういう切り口でビジネスしていくかのコンテキストを構成していかないといけない。これがとても難しいと私は考えていて、時間がかかる作業だし、もしかしたら実際にやってみてうまくできないということもあるかもしれない。来月はどんな雑談会になるのかまだわからないけど、課題管理の話しをできる人は少ないので新たな視点が出てくればいいな。

予定調和な会議

2時過ぎに起きて、3時過ぎにおきて、5時台に起きて、6時半に起きた。なんか1時間おきにトイレに起きるみたいな空気で寝てた。

大門近くのホテル

いつもは五反田のホテルに泊まっているが、今回はたまたま系列ホテルの全国旅行支援適用の部屋が大門近くのホテルにしかなかったのでそちらに泊まってみた。五反田-大門間は都営浅草線で9分なので近い。過去に東京で働いていた頃、その近くに住んでいて、勤めていた会社もあったので、街そのものが懐かしくて、大門、浜松町、新橋のエリアをあちこち散策した。それでいつもの出張よりめっちゃ歩いた。15年前と変わらず残っているお店やビルもあれば、まったく違う店舗に変わってしまったお店もある。新橋とか、コロナ禍も過ぎたせいか、めっちゃ飲み歩いている人たちで活気があった。

プロジェクトの進捗報告

出張したときの月例報告の7回目。前々回の進捗報告はこちら 。5月の報告は書いてないな。そのときは他の会議がたくさんあったから省略してしまっている。他の会議と出席者も重複しているしな。

今回はわりとしっかり資料も作っていって、特異なネタもいれて、コンテンツとしては手応えをもって臨んだ。しかし、会議をしてみてそれほど盛り上がらなかったので私の自己満足だったのかもしれない。もう半年以上やっているからそんなものなのかもしれないが、肯定も否定もなくて、淡々と準備した資料の内容を説明して、ちょっと雑談して終わるといった、予定調和な会議になってきた。「本気でそんなことやるの?ちょっと待って!」みたいなツッコミが入るような取り組みをしないといけないのか?内容は悪くなかったと思うんだけど、会議が退屈だったら申し訳ないなとか思った。

課題管理ができると働き方がどう変わるかを示す GitLab のアクティビティ図があって、その図の利用許可をもらった。また後日、会社のコンテンツを作るときに活用する。

メリハリの付け直し

23時ぐらいまで作業して、1時から2時ぐらいまで仮眠した。いつも通り普通に寝ないで始発の新幹線に乗って寝てた。寝ていて体があちこち痛くて、月に1回ではあるけどこの生活を続けるのもよくないかもなと思い始めた。

新しい定例会議の初日

6月から新しい開発がスタートして 新しい定例会議の進め方 に変更した。ふりかえりと情報共有の定例を1時間に詰め込むので時間が足りないかも?と時間を意識しながら進めた。その甲斐もあってか、ちょうどぴったり1時間におさまった。これも一種のパーキンソンの法則のようなものが働いているのかもしれない。

仕事は、完成までに利用可能な時間を使い果たすように拡大していく

パーキンソンの法則

メンバーが2人なので機能開発が2つずつ並行に進む。1つは開発が完了し、もう1つも大半は完了している。完了できなかったことは残念だが、私からみても着実にステップアップしているのでそれほど問題視していない。ドッグフードテスト の導入も完了こそしなかったが、これも社内インフラの都合や管理者の工数を調整してもらったりするので着実に進捗しているのであれば、それほど厳密にスケジュール管理しなくてよいのかもしれない。

イテレーション開発のルール的には優先度を付けた issue はそのイテレーション内でやり切るという目標をもつように促している。但し、まだ開発の序盤であるので現時点ではそれほど重要ではない。これも1つのメリハリだとみなすこともできる。また様々な状況の変化や調整をしながら期限を意識して働くのは一定のスキルと自律的な行動を取れる開発者に限られる。

なんのために働くかの答えを見い出せていない若い人にそれを求めるのもまた違うなと思えて、この状況を作り出しているのは、働く目的そのものを導くようなリーダーシップを取れていない私自身の責任だと実感した。つまり私が自身の規律を緩めているのがメンバーに伝わって、結果的にスケジュールを守ろうとする最後の底力を支えられていないと思えた。開発の仕切り直しに私自身も切り替えていかないといけない。

厄介なインフラの問題 x 2

ちょうどインフラに関する、特定の状況においてパフォーマンスが劇的に劣化したり、意図しない振る舞いをしたりする事象を2つ確認している。これこそ私が面倒をみる issue だなと思って着手した。m2 macbook はこういったインフラの再現環境を作るのに向いていない。2022年に virtualbox 7.0 で m1/m2 に対応したという changelog があるけど、少し前にインストールしようとするとエラーになって動かなくて諦めた。

macOS host: Providing a Developer Preview package for systems with an Apple silicon CPU. This is unsupported work in progress, and is known to have very modest performance.

Changelog for VirtualBox 7.0

アプリケーションのコンテナイメージも、現時点では amd64 向けにしか提供していないため、どのみちコンテナでの検証が必要になったら m2 macbook では動作させられない。そういう厄介な issue を抱えた。帰ったらオフィスのデスクトップマシンで再現環境を作るところから始める。

一期一会

1時に寝て何度か起きて6時に起きた。鬼滅の刃を読みながら寝落ちした。

近況報告の資料作り

来週また東京出張することになり、あわてて資料作りしていた。5月に落ち穂拾いして6月は開発始まりだし、経費削減の意図もあって出張しなくてもよいんじゃないか?と緩く考えていた。しかし、先方は全然そんなつもりなくて「当然出張してくるよね」的なノリだった。毎月の顔合わせというリズムもあるし、新しい定例会議の進め方 を初めて実践する上でもオフラインでやるのが大事かもしれない。

能は一回限りの公演

武田宗典さんという能楽師が1分25秒頃から次のように話している。

能は全部一回限りの公演なんですよね。
すべてそのときだけに集まる人たちなので、
そのときにしかできない空間の作品が出来上がる。

観世流 能楽師シテ方・武田宗典

プロジェクトマネジメントも同じところがあるなと親近感をもって聞いていて印象に残った。プロジェクトマネジメントの目的はプロジェクトの再現性にあるわけだけど、実際には、あるプロジェクトでうまくいったもの (いかなかったもの) を完全には再現できない。それはまったく同じ状況、同じ要件、同じ開発メンバーでプロジェクトに取り組めないことが大半だろうし、仮に同じ開発メンバーであっても、人は時間とともに成長するので成長前に戻ることはできない。「歴史に if はない」という言葉と同様に過去のプロジェクトマネジメントや、よそのプロジェクトマネジメントになにかを言っても意味のない行為である。

ぼくのかんがえたさいきょうの定例会議

1時に寝て何度か起きて8時に起きた。昨日ブログを書き終えてほっとしたのか、珍しく寝坊した。

課題管理の定例会議の進め方

5月31日から 新しい開発がスタート していてイテレーションを2週間に、そして定例会議も同様に隔週とした。その狙いは先日の日記に書いてあるが、これまで毎週やっていた定例会議の進め方はあわないので新規に会議の進め方を刷新した。これまでふりかえりと定例会議を別にやっていたのを1つにした。またふりかえりの会議のときに、ふりかえり作業そのものもやっていたのを、定例までに事前にメンバーがそれぞれやってきて、結果を定例のときに共有しようというやり方に改めた。ネガティブなふりかえりは発生時点で課題管理システムに登録してフィルター可能というのがアピールポイント。いまチームのメンバーが3人なのでこれでも会議は1時間でおさまる見積もり。メンバーが増えたらふりかえりと定例は別の時間にわけてやるかな?会議時間が長くなるとダレるので1つの会議は1時間以内で締めるというのは徹底したい。

  1. 現マイルストーンのふりかえり (目安時間: 25分)
    1. fun/done/learn を使ったポジティブなふりかえり で共有
    2. ネガティブなふりかえりは課題管理システムに Postmortem ラベルを付与して issue 登録したものを共有
  2. 次マイルストーンでやることの確認 (目安時間: 25分)
    1. 課題管理システムにある次マイルストーンでフィルターした issue を共有
  3. issue になっていないもので聞きたいことや分からないことを聞く (目安時間: 10分)
    1. メンバーが自由に意見を表明
  4. 雑談 (余り時間)
    1. メンバーが自由に雑談

事前準備を済ましてから、スクラムでいうところの、レトロスペクティブとプランニングを同時にやるといったもの。実践としてうまくいくかどうか、今回の開発で試してみる。

落ち穂を拾い集めて課題管理を促す

2時に寝て何度か起きて7時に起きた。能の本を読みながら寝落ちした。

落ち穂拾いの終了

4月末にリリースしてその後 GW に入って、5月は「落ち穂拾い」として 開発全体のふりかえり をやったり、次の開発の要件を整理 したりしていた。ドッグフードテスト の導入もまだ作業中ではあるが、社内のシステム管理者にも協力していただいて進めている。私の作業でも十分な余裕をもって次の準備につなげることができたので開発の区切りで1ヶ月ぐらい準備期間があることはよいように思える。経営者はもっと働かせたがるかもしれないが。

これまでの開発は定例会議も 1on1 も毎週行ってきたが、次の開発ではこれらの会議を隔週にしてみる。口頭による同期コミュニケーションのコストを減らし、より開発そのものに時間を割いて注力できるようにする。もしかしたら、これによって私も開発に参加する時間を作りやすくなるかもしれない。もう1つ 必要なときに必要な人とすぐに話す (会議の日まで待たない) という狙いがある。毎週会議があると、すぐ聞けばよいことを次の会議まで待ってしまうということがある。私もある。私ですら待つときがあるのだからおそらくメンバーにもそうしてしまうことがあると推測する。会議の頻度を下げることでこの待ち時間を削減して即時問い合わせ、即時解決するといったコミュニケーションに移行していきたいという狙いがある。開発者の自律性を高めるためにはこういった取り組みも必要だと思える。もっと言えば、毎週会議しないと情報共有できないというのは開発者を子ども扱いして堕落させるのではないかと考える。実際に意図したようにうまくいくかどうかはやってみてから考える。

うちの開発メンバーは半年前より見違えて課題管理に習熟したので次の開発がどうなるかが本当に楽しみだ。

開発の隙間の終わり

1時に寝て何度か起きて7時に起きた。23時に帰ってきて一昨日にお土産にもらったロールケーキだけ食べてしまった。あかんねんけど、おいしかった。

ドッグフードテストと運用談義

リリースしたばかりのプロダクトを社内に導入するべくインフラ作業をしている。社内の管理者が運用を考慮していくつか質問がくる中で、開発側としても運用の考慮の足りないところがあったりして、実運用における不測の自体に対する運用を想定しておく必要がある。こういうやり取り自体が、開発者だけでは得られない知見なので貴重と言える。追加の検証をして、場合によってはなんらかの機能を作ったりする可能性もある。

ドッグフードテストは本当によく出来た仕組みだと思っていて、仮になにか大きな障害が発生してもそれはお客さんのところで発生する前に自社でみつけられればよかったと考えられる。もちろん障害がなければそれはそれで構わない。障害が発生してもしなくてもどちらも開発にとって大きな資産となる。いわゆる win-win のような関係と言える。開発視点から言えばドッグフードテストを行うと決めた時点でうちらはすでに勝っていると言えよう。

プロダクト説明会

毎週やっているチーム勉強会の時間を使って社内向けにプロダクトの説明会を行った。リリースを終えて、その後のドキュメント作りやパッケージングの最適化なども行えた。インフラは十分に機能しているし、ドキュメントも一通り揃っていて、機能はまだまだ足りないけれど、プロダクトとしての体裁はうまくまとまっていると自画自賛している。リソースをかけた分だけスケールするといった開発体制に変化しつつある。おそらく私がマネージャーとして必要なのもあと3-6ヶ月といったところではないか?重要なことは 開発方法論/開発ガイド に書いてあるし、課題管理 + イテレーション開発は特別なことをしなくてもうまくいくことも立証された。メンバーが私と同じように振る舞えば誰でもマネジメントはできるはずである。

来週からは次開発のマイルストーンに入っていく。メンバーが成長して私のマネジメント工数が減るようになってくれば、私も開発に入って下支えすればいいと考えている。まずは3ヶ月でどのぐらいの追加の機能開発が出来ていくのかを見定めたい。

開発合宿の日程確定

そろそろ宿を予約しないといけない。冬の開発合宿 の予定を2024年3月1-3日に決めた。現時点で参加者は4名確定していて、前向きに検討してくれている人が3名いる。昨年が4名だったので倍増して今年は8名程で行ければいいなと希望をもっている。不特定多数に声をかけられるほどキャパシティはないけど、もう3人ぐらい声をかけてもよさそう。

クラフトジン: YOHAKHU

クラフトジン: YOHAKHU

遅く帰ってきたわけではないが、うまく眠れなくて3時に寝て7時に起きた。

開発方法論/開発ガイドの更新

今週が開発の谷間の最後の週。毎週いろいろ資料を作ったり、あちこちのドキュメントを更新したりしていた。最後に残ったものの1つ (を2つに分割した) として、うちのプロダクト開発における開発方法論と開発ガイドを仕上げた。開発方法論は開発のマネジメント手法やプロセスの概念などを抽象的な表現で説明したもの。簡単に言えば、アジャイル開発とかスクラムとか、そういった概念の説明やなぜそれが大事なのかの意図や背景を説明したドキュメントになる。当初はこの1つしかなかったのだけど、実際に課題管理システムを使ってイテレーション開発をする具体的な話しと抽象的な話しを一緒に書くのはまとまりが悪いように思えてきた。抽象的な内容と実務に近い内容は分けて書くことにした。

  • 開発方法論: プロダクトで採用している開発方法論の概念をまとめる
  • 開発ガイド: 開発方法論を具体的に実践する方法についてまとめる

例えば、開発ガイドにはマージリクエストの運用について書いてある。どこの会社へ行っても私は次のような「マージリクエストを作成しなくてよいもの」という文章を書いている。

すべての修正にマージリクエストを要求すると開発がとても遅くなる。それは人間が介在するトコロがもっともコストを要求するからである。とくにコミュニケーションコストは開発の中でも最も大きいコストの1つである。レビューしなくてもコミット履歴は誰でも把握できる。修正内容が気になる開発者は自分でコミット履歴を確認すればよい。

従ってレビューの必要がないと想定される修正は直接 main ブランチに push してよい。例えば、軽微な修正は CI/CD の自動化により品質を担保できるように努める。テストを失敗させる修正を push してしまったとしてもデプロイできないために障害を発生させることはない。

この運用は軽微な修正だと思って push したものが不具合を発生させてしまうリスクを許容している。そのときは気付きの学びとして「ごめんなさい」で終わらせる。稀に不具合を発生させることよりも、開発の速度を上げる方を優先する。

カフーツさんイベント

カフーツ13周年Jelly〜カクサク(やりたいこと宣言)第1弾〜 に参加した。私がカフーツさんへ遊びに行ったときに人がたくさんいたことはない。記念イベントだったので参加者多いかな?と思って行ってみた。10人ぐらいいた。参加者の大半は私と同じぐらいか、それ以上の年配の方にみえた。やや年齢層が高め。13年やっているコミュニティなので同じぐらい歳をとったんだと思う。みんなでわいわい話しながら0時前まで飲んでた。ここ行くと基本飲み会w

YOHAKHU というクラフトジンがあってロックと炭酸割りで4-5杯ほど飲んでいた。これまでジンをあまり飲んだことがないので、普通のジンとの比較はできないが、強烈なインパクトのある風味で圧倒されてしまった。おいしいかどうかというよりもこれは強烈やなぁという所感が先にくる。さらに「余白」という名前がよい。いとうさんに影響を受けて私が「ゆとり」と呼んでいた概念にいくつか補強がされて、最近は私も余白という言葉を気に入って使っている。人生に必要な余白を忘れない飲みものがこれだと言えるかもしれない。なんだか酔っ払ったようなコメントになってしまった。

次開発へのモチベーション

0時に寝て何度か起きて6時に起きて7時半に起きた。最近疲れからか6時ぐらいに2度寝してしまうことが多い。

定例会議

先週の東京出張で次開発の打ち合わせをしてきたので、今日はそこでいくつか絞り込んだものから決議を行った。すんなりと次の開発課題が決まって時間に余裕があったので、別の曖昧な要件の認識合わせもしていた。半年やって私自身のシステムへの理解やドメイン知識も付いてきたところではあるが、この要件の認識合わせが現状の範囲で私の理解が追いついていないところの最後のピースにもみえる。この要件の背景と解決方法の設計を論理的にやってしまえば、あとは課題管理に馴染んできたうちのメンバーがうまく開発してくれるのではないかと思う。

半年間の開発、課題管理とイテレーション開発のプラクティス、リリースできたという結果、そして主体変容を示唆して過去の自分と比べてどう変わったかをふりかえりで確認した。なんとなくメンバーの働き方が変わってきた感じがして頼もしくなってきた。少なくとも半年前より私が言っていることの意味や価値を理解して開発に取り組んでくれているのではないかと思う。次の開発がどのように展開していくのか、楽しみになってきた。今週はドッグフードテストのインフラ作業をメインにして来週の水曜日から次開発に入ることにした。

車でお買いもの

少し早めに帰ったので車で近所のスーパーへ買いものに行ってきた。過去の記録をみると1月29日に満タンで給油した。そのガソリンがまだ半分ぐらいある。うちの車は燃費のよいハイブリッドカーだ。いくつかの記事をみるとガソリンの消費期限は3-6ヶ月程度だと書いてある。目安としては3ヶ月程度で消費するのが望ましい。長くて6ヶ月程度にしないとエンジンや燃料系の故障の原因となりえるらしい。気温の変化が大きいとさらに劣化が早まるとかあるそうだ。平時はガソリン満タンじゃなくて少しずつ給油した方がよいことに気付いた。