Posts for: #2024/03

キャンセルが続くような日

3時半に寝て7時前に起きた。昨日はコーディングに集中していた。

今日の運動は腹筋ローラー,腕立て,スクワット,散歩をした。統計を 運動の記録 にまとめる。

明石海峡大橋海上ウォークのキャンセル

明石海峡大橋海上ウォーク の当日。こみやさんが関東からわざわざ来るというので私も付き添いで参加することにしてした。朝起きて準備して元町駅から8時半頃の電車に乗って舞子駅へ向かう。途中で slack に一報したらこみやさんから今日は中止だよと連絡が入る。新長田駅で折り返して三ノ宮に返ってきた。当日6時に強風予報のため中止になっていたらしい。普通に晴れているのに。橋の上を歩くイベントは強風で当日中止とかになるんやということを学んだ。

雑談会のキャンセル

毎年行っているある大学の先生との雑談会を13日に予定していた。大阪のバーで飲むイベントだったのだけど、家族全員がコロナにかかってしまったという話しで周りへの感染予防のためには飲みに行くわけにはいかないという連絡がきた。それでお店の予約をキャンセルした。早めに連絡をいただいたのでキャンセル料を支払う必要はなかった。感謝。私も開発合宿と出張の移動疲れで疲労困憊になっているのでこれはこれでよかったのかもしれないと思えた。

ordered map の開発の続き

複雑なデータ構造のときに map (json で言えばオブジェクト) のキーの順序を保持できないことにもテストを書いていて気付いた。そこの部分も作り直さないといけないとデバッグしたり設計をやり直したりしていた。

昨日の続き

json を自前でパースしないといけないという判断を下し、json パーサーを探してみて ujson というパーサーを使ってみることにした。今日は ujson を使った json のデシリアライズの処理を設計したり実装したりして試行錯誤していた。こういうシンプルなライブラリは私のやりたいことを邪魔しないので好み。

ストレッチ

本当は午前中に明石海峡大橋海上ウォークへ行くつもりだったからストレッチは夜の時間帯に変更していた。先週は開発合宿でお休みしたので2週間ぶり。散歩する機会が多くなったせいか、右足の太ももが筋肉痛であることは自覚症状があった。今日の開脚幅は開始前150cmで、ストレッチ後155cmだった。トレーナーさんのストレッチを受けて、足は左右とも前も後ろもあちこち痛かった。トレーナーさんからもあちこち張りがあるという指摘があった。運動の成果というのか、散歩をたくさんするようになって足に負荷がかかっているのは間違いないようだ。こういうときこそプールを使うべきなんだけど、なぜか夜に予定が入りまくっていてなかなかスケジュール調整ができない。土曜日が一番時間の調整しやすいのにプールの制約によって利用できない。カラダが疲労していると脂肪燃焼の効率が悪くない。カラダを休めるのも必要なことかもしれない。

ordered map 開発のきっかけ

0時に寝て6時半に起きた。神戸に戻ってきてようやく落ち着けた。

今日の運動はスクワットをした。統計を 運動の記録 にまとめる。

ordered map の開発

金曜日は打ち合わせが何もない曜日の1つ。疲労困憊で神戸に戻ってきたので今日はずっとコーディングに集中していた。本当はお仕事終えてからプールへ行こうと思っていたものの、逆にコードを書くのに集中し過ぎて晩ご飯に一旦帰って食べた後も、もう一度オフィスに来て、さらに1時ぐらいまでコードを書いてた。

go の map をイテレートすると意図的にランダムに key-value を返す仕様になっている。これは開発者がキーの順序に依存した実装をしてしまって潜在的バグを混入させてしまう懸念を取り除くため。その設計思想は理解できるものの、go の map を json で返すときに ux の視点からキーの順序を保証したい場面がある。そんなときに ordered map のようなものが必要になる。go のコード内で ordered map を実装しているライブラリはいくつかあるものの、json のシリアライズ/デシリアライズも考慮してキーの順序を保証するライブラリはあまりみつけられなかった。それを考慮しているライブラリの1つに mapslice-json がある。しかし、このライブラリの実装はイケてなくて致命的なバグを1つみつけて PR を送ったものの、おそらく3年ぐらい保守されていない。あとジェネリクスを使うと使い勝手がよくなるからコードを書き換えたい。

結局このライブラリからアイディアだけもらって自分で再実装することにした。そして、array や map が入れ子になるような、複雑なデータ構造のときに map (json で言えばオブジェクト) のキーの順序を保持できないことにもテストを書いていて気付いた。そこの部分も作り直さないといけないとデバッグしたり設計をやり直したりしていた。これは会社の oss ライブラリとして作ってもよいかもしれない。

本業以外のことはやらない宣言

23時に寝て4時に起きて少し起きていて2度寝して7時に起きた。

今日の運動は腹筋ローラー,腕立て,散歩をした。統計を 運動の記録 にまとめる。

4次開発の要件打ち合わせ

前回の所感 。この打ち合わせは2時間とってがっつりやった。前週に別チームのトップの方と雑談して顧客要件に近い方の要件の洗い出しをしていた。プロダクトに必要な基本的な機能はほとんど作ってしまった。残っているのは高度な機能や、顧客要件への対応、運用上起こり得る厄介な問題への対応、競合製品との差別化になりそうな課題の検討など、チーム全体でいろいろな話題を話せた。打ち合わせそのものにも2時間を割いて、この打ち合わせの議事録を書くのにも2時間ほどかかってしまった。累積疲労でしんどいから普段よりも時間がかかってしまった。合間にメンバーから尋ねられた開発の相談や質問に答えたりしていると、議事録をまとめるだけで業務時間の大半を終えてしまった。残っている課題の内容をまとめるだけでも、背景が複雑だったり機能が難しくなってきたりしていて時間がかかるようになってしまっている。

チームランチ

久しぶりにチームのメンバー3人がオフィスに揃ったのでチームランチしてきた。たまたま前日に五反田周辺を散歩で歩いていて とん清 というとんかつ屋さんをみつけた。とてもよかったのでまた機会をみて行ってみようと思う。

精神的な疲労

ここ数年あまりこういうことを思うことはなかったのだけど、今回の東京出張はプロジェクトを始めて1.5年で最も疲れた。出張の打ち合わせが大変だったわけではなく、開発合宿前から準備で通常業務よりも高い負荷がかかっていたのに加えて、たまたま私がイニシアティブを取らないといけない打ち合わせをたくさん入れてしまったことで資料作りに疲弊した。さらに自社の新しい人間関係が出来つつあってそれ自体は悪いことではないけれど、新しい人間関係を築くところにも時間と集中力を使って普段よりも疲れた。この先1-2ヶ月は本業以外の余分な労力を必要とすることは一切受けないようにしようと思う。今週あるイベントの登壇依頼があったけれど、イベントの趣旨と私の直近のキャリアとあわないことから丁重にお断りした。

いまは物理的にはハードな生活をしているわけではないが、ここ2-3週間で責任を伴う意思決定が多かったせいか、精神的にかなり疲れた。いまはビジネスの土台作りの大事な時期だし、経営判断を誤ると取り返しがつかないことを過去に働いた会社でもよくみてきた。疲れて誤った判断をしないよう、少しペースを落としてゆっくりと進む。

提案の説得力

21時半から寝始めて何度か起きながら6時に起きた。昨日は雨降り、且つ移動疲れでしんどくてたくさん寝ることにした。

今日の運動はスクワット,散歩をした。統計を 運動の記録 にまとめる。

会議の準備

6時に起きてシャワーを浴びてから今日の打ち合わせの資料作り。ある程度は作ってあったものの、最終チェックしながら修正していく。9時前まで資料作りをしてオフィスへ出掛けた。

プロジェクトの進捗報告

出張したときの月例報告の14回目。前回の進捗報告はこちら

今回は3次開発を無事完了させたこと、昨日の 大きなふりかえり からみえることの、経営陣向けの私なりの見解や視点を報告していた。プロジェクトの状況について報告した後は、私の気付きや視点の共有、チームの新たな取り組みとしてテックブログを読む会の狙い、今後の予定などを共有した。少し前からメンバーの指導や育成についても経営陣へ向けて私の考えを述べるようになった。その1つとして運用と開発の兼任は不可能だと明確に提案した。その結果、新規メンバーのお手伝い先の組織体制や業務の分担なども大きく変更されて、新規メンバーがフルタイムで開発に参加できるようになった。私は組織を変更したり他業務を見直すことはできないため、これには経営陣の協力が不可欠となる。プロダクト開発はチーム開発をしながら適正な実績を示しつつあるので、私の意見も説得力をもって伝わるようになっていると推測する。そして、私自身も独り善がりや見当違いの施策に陥らないよう、月例のタイミングで私の気付きや考えを経営陣と共有するようにしている。どんな状況であっても、私の目的はプロダクト開発を成功させること、そのために必要なことは何でもやる。自身の保身も見栄もなにもないから自然体で共有している。そうしているうちに、私の雑談から組織も変えていくような話題へ発展したりもしている。

開発完了後の社内向け報告とデモ

いつも開発のイテレーションを完了したタイミングでお手伝い先の全社員向けに新機能の紹介やデモをしている。他チームと連携したり営業さんに向けにプロダクトの現状がどのようなものかを知ってもらうことをこのイベントの目的としている。どんな新機能があるのか、何が出来るのかを社内に伝えないと、チーム外の社員さんがお客さんと話すときに話題にもならない。多くのケースで質問がくるのは開発者からの技術的なものではあるけれど、コンサルや営業さんからお客さんの要件にあうかといった質問も歓迎している。今回は新たに作った一般ユーザー向けの画面の UI や機能などを紹介した。

よい開発文化をもつチーム

今回は寝台列車であまり寝付けなかったのか、fitbit に睡眠時間が記録されていなかった。おそらく2-3時間は寝たと思う。

今日の運動は合宿明けと移動疲れがあるのでお休みにした。統計を 運動の記録 にまとめる。

会議の準備

この3日間で私が主催の打ち合わせが5つある。主題だからそのすべてに私が資料を作らないといけない。もちろん先週から準備はしていたものの、完全ではなく、週末には城崎温泉でいっぱいいぱいになっていて余裕がない状態のまま出張になってしまった。打ち合わせの成否はそれまでにかけた準備時間に比例する。私の持論だ。最低限このぐらいの資料や段取りを組んでやらないといけないという私なりの基準がある。今回はぎりぎりまで資料を作ったり、打ち合わせ内容を練ったりして自身の基準すら満たすのにとてもしんどかった。

定例会議

いつものマイルストーン単位の定例会議。

特定の path 配下の web api にミドルウェアで認証や認可を適用している。こうしておけば認証しなければいけない web api の認証設定を実装し忘れるということが絶対に起きない。一方で未認証の web api もある。/auth/login/status/ping といったものだ。これらは未認証で呼び出せるのでトップレベルの path をわけたい。そうすると、既存のトップレベルに設定してある /api/xxx という名前が論理的におかしい。web api は他にもあるのに認証を要するものだけ api というトップレベルの path を付けるのは奇妙に思えてくる。

/api/ping

チームで話し合ったり、私が思いついた最終結論としては1文字の path を設けることにした。ミドルウェアを適用したいという目的なので path さえあればよい。認証を要することを表す単語をつけると path が長くなってそれはそれで違和感を感じるし、開発者はタイプ量が増えることを嫌う。そこで一文字にしようと提案した。

/p/ping

permit, private, protected の意図で p という文字を使う。

3次開発の大きなふりかえり

事前に資料を作っておいた 開発の大きなふりかえり。2時間を使ってふりかえりを行う。前回の大きなふりかえり を経て、今回も若手のメンバーが大きく成長してくれて、その成長度合いが課題管理システムの統計からみてとれた。私がプロダクト開発に参加してチームを組んで1.5年経った。初期からのメンバー2人はどちらも十分に課題管理をうまくできるようになった。その結果、チームがよい開発文化を形成するようになった。

今回は新たに入りかけた若いメンバーはうまく立ち上がらなかったという反省があるだけで、その他のことについては開発全般うまくいっているし、プロダクトの品質も上がっているし、バックログの課題もたくさん自分たちで見つけられるようになってきた。私からみてもこのチームは十分によい開発チームに育ったと思う。マネージャーとしての私にとっての次の課題は途中からチームに参加するメンバーをいかに早く開発に馴染んでもらうか、よい開発文化を形成するようになってもらうかという取り組みになる。

スライドのあちこちに次の文言を埋め込んである。

ふりかえりなくして成長 (改善) なし

初期から課題管理に取り組んでいる2人のメンバーはどちらも成長が著しいし、ふりかえりの効果を実際の業務で体感してもらえていると思う。私自身も初めてのマネージャー経験、初めての課題管理をプロジェクトマネジメントとして導入するという経験、それらの PoC としての答えは出たと思う。間違いなく、課題管理は開発プロジェクトをよりよくするものだし、適切に課題管理すればプロダクトの品質も高くなっていく。今回のふりかえりは課題管理をビジネスにすることへの確信につながった。

神戸の会社と初めてのパワーランチ

0時前に寝て7時前に起きた。合宿帰りで疲れていたからよく眠れたと思う。

今日の運動は腹筋ローラー,スクワットをした。統計を 運動の記録 にまとめる。

ハニカムさんとパワーランチ

先日の わかばやしさんの紹介Honeycome さんという会社が神戸にあることを知った。そのときは小一時間ほど雑談して、またご飯でも行きましょうと誘われたので行ってきた。創業者のやまとさんが神戸在住のようで一応は神戸本社になっているが、神戸にエンジニアは在籍しておらず東京の営業所が業務の主体になっている。今後は神戸でも採用をしていきたいという話しだった。神戸本社はうちの会社の近所にあり、やまとさんはそこで働いているみたい。

やまとさんがうちのオフィスに来られてから軽く30分ほど打ち合わせした。おーいお茶のペットボトルをいただいた。捨てるときにラベルを剥がせなくてよいよう、ペットボトルそのものに「おーいお茶」がデザインされている。さらっとこういうペットボトルを渡せるのはカッコいいと思う。うちの会社でも買ってみようか検討してよさそう。

軽く話してから、私の紹介で ヒシミツ醤油 さんにランチへ出掛けた。三ノ宮近辺のお仕事のランチで使えそうなお店をいくつか開拓してきた。ここは醤油屋さんが経営している、醤油にあいそうな料理をよい感じに出してくれる定食屋さん。お昼のみ営業している。ご飯を8種類から選択できておかわり自由。1杯目は卵かけご飯にして、2杯目は柚子もろこし味噌的なお茶漬けにした。食べ終わったらお茶菓子も出てくる。ここのお客さんは8割以上が女性客で、回転率も悪いので、お昼どきは30分から1時間は並ぶことになる。おそらくヒシミツさんは醤油作りが本業だから定食屋で儲けようと思っていない。

お店に入るまで並んでいる間もやまとさんとあれこれ話したりして、それはそれでパワーランチとしては話す時間を設けられてよかったのかもしれない。11時半にうちのオフィスに来られてお昼ご飯を食べて解散したのが14時前だったのでわりとがっつり話して仲良くなった気がする。また今度飲み会にも招待されたので行ってくる。

資料作り

今晩から東京出張。いつもなら出張のときに使う打ち合わせ資料を週末に作ったりしていた。しかし、この2-3週間は開発合宿の準備に追われて週末にあまりお仕事に時間を割けていなかった。大慌てで打ち合わせの資料を作っている。またこんなときに限って明日からの出張では私が主催する打ち合わせを5つも入れてしまった。オフィスに出向いたときに打ち合わせをたくさん入れるのは出張そのものの費用対効果が大きくなって望ましいことではある。それで調子にのって入れまくったのが後になって開発合宿の翌週で余裕がない状況になった。それでも先方からみたら私は先週の金曜日もお休みとっているのだからここで弱音ははけない。スケジュールをうまく段取りしなかった私が100%悪い。1つ思うことは金土日で行くような合宿は今回で終わりにする。次回からは土曜日に帰ってくる予定で段取りを組む。休日に当たり前のようにお仕事している私が言ってもまったく説得力がないけれど、合宿イベントが日曜日まで消費するのはよくない。

寝台列車

前回の寝台列車 がよかったので今後は予約を取れる限りは寝台列車で行こうと思う。月曜日の夜に出て火曜日の早朝に東京駅へ着く。列車の騒音の中で眠れる人はゆっくり向かえる。これまでは新幹線の始発に乗って東京へ向かっていた。これは朝4時半に起きるのと新幹線で長時間移動することの両方がしんどい。寝台列車はこの2つを解消してくれる。列車の騒音は人間の適応能力を使って慣れればいいのではないかと思う。

冬の城崎温泉の終わり

2時半に寝て4時半に起きて6時半に起きた。寝る前から寝ているときも何度もトイレに行った。寒かったせいかな。

開発合宿期間中なので運動はお休み。

開発合宿の最終日

2泊3日はとても短い。今日は11時にチェックアウトして帰らないといけない。そして日曜日に帰るのも翌日からお仕事でしんどい。旅行の最終日を土曜日にしたい。この次の機会に出来るかどうかはわからないが、いずれ水曜日から土曜日までの3泊4日のイベントにしたい。土曜日に帰る。そうするとサラリーマンの人にとってはフル参加で3日、木曜日からでも2日休まないといけないから参加が難しいかもしれない。個人事業主やマイクロ法人の人たちが主に参加するイベントになっていくのかもしれない。とはいえ、私もお客さんのお仕事をフルタイムで請け負っていると3日休むというのは厳しいかもしれない。現実的には、まずは木曜日から土曜日までの2泊3日のイベントに移行するのが先になるかもしれない。

朝風呂を入ってきて、モーニングを食べて、その後にお土産店へ行っていくつかお土産を買った。私も歳をとって必要かどうかに関係なく、適当にお土産を買うようになった。要は自分が気に入ったものや観光地にお金を落とすことでこの空間や環境がなるべく長く続いてほしいという願掛けのようなものになってきた。

帰り準備も片付けも順調に進み、行きは6人で来たが、帰りは5人になる。荷物を積み込むのも少し余裕ができる。帰りは豊岡駅の近くでお昼にお蕎麦を食べて、丹波篠山の城跡を軽く散策して、16時20分には三ノ宮に戻ってきた。みんなを降ろして、レンタカーを返し終えたのが16時40分、17時前には私も家に帰れた。18時から用事があったのでちょうどよかった。2時間ほどの用事を終えて、今日はやりきった感の、疲れと達成感で少しぼーっとしてそのまま寝てた。

今回の開発合宿はうちの会社主催だったので、なんというかイベントそのものの責任のようなものを感じていた。初対面の人たちもいる8人でうまくいくのかという不安も少しあった。参加者みんなの協力もあって、仲良く過ごせて、いくらかの自信にもなった。帰ってきて一番に感じたのはトラブルなく終えられて本当によかったという安堵の気持ち。

冬の城崎温泉の中日

1時に寝て5時半に起きました。気をつけて寝たんだけど、やはりいびきがうるさかったらしい。加齢や肥満もあって昔よりひどくなっているようなのでこれから睡眠外来に通いながら直していく。たぶん年単位で時間がかかる。

開発合宿期間中なので運動はお休み。

開発合宿の真ん中の日

あとで会社のブログにも開発合宿について記事を書くので日記は簡単に覚えていることを書く。

昨日から冷え込んで雨が雪に変わって、雪の城崎温泉をみることができた。昨日はまだ雨降りだったので浴衣の上に半纏 (またはどてら?) を羽織って外湯に行ったり、居酒屋さんに行ったりしていた。今日はさすがに雪降りの中を同じ格好で歩くのは寒いと思えて洋服に半纏を羽織って外湯に出かけたり、買い出しへ行ったりしていた。

朝風呂に入って、喫茶店でモーニングを食べて帰ってきたら、やぎさんから朝市やっていると教えてもらって、地元の人たちと話しながらお米と野菜と漬け物を買ってみた。これも余白の1つだと思う。

お昼はきのいえの設備のスクリーンチェックをする。デバイス操作、AirPlay 接続の確認。ここでずっと AirPlay 接続していると、広告をみないと5分ごとに切断されるようになった。これでは夜の親睦会の発表に支障が出る。宿のオーナーさんとも相談しながら、ワンタイムのサブスクリプションにお金 (382円) を払って切断されなくなった。こういう困ったときオーナーさんに line で連絡すると、すぐに返信が戻ってきて相談にのってくれる。親切なオーナーなので信頼できる。

2つの鍋と調理

夕方からお酒班、野菜班、魚・🦀班の3チームに別れて買い出しへ。これも順調に買い出しできて、18時過ぎから鍋作りを始める。2つの鍋を作る。魚鍋と🦀鍋。この時期、城崎温泉は🦀がメインなので魚はほとんど売っていない。たまたま鱈 (たら) だけ残っていて購入することができた。

どりらんさんが白菜を「そぎ切り」していて、そんな切り方があることを初めて知った。そぎ切りされた白菜を鍋で食べてとてもおいしかった。早く火が通り、味が染み込みやすい切り方だという。白菜なんて鍋の定番の具材で、いつでもどこでもよく食べるものなのに40年以上生きていて、私の人生で白菜をそぎ切りした人は誰もいなかった。今回の開発合宿で1-2を争う大発見だった。帰ったら私も白菜を買ってそぎ切り練習してみようと思った。その後、鍋を食べて21時20分頃から発表会へと移っていく。

親睦会

参加者になんでもいいから発表してもらう。この開発合宿に参加するような人はそれぞれが個々に独自の働き方や専門的なことをやっている。誰の話もオリジナルで新鮮でおもしろい。はらさんは前回もこのイベントがとてもよかったと話されていたので、今回も踏襲して同じようにやってみた。8人いたから4人で前後半にするつもりが、話が長くなったり質疑応答が盛り上がったりして時間は後ろに押して、3人、3人、2人といった区切りになって、翌1時前ぐらいにようやく終わった。私は軽く眠くてふらふらしていた。

私はお正月から筋トレや運動をして fitibt でデータを記録していることを話してみた。いまの体重のグラフを共有してみると、それを率にして対数にして傾きを算出するとよいというアドバイスをもらった。要は体重が多いときはたくさん減るけど、体重が減った後ではだんだん減りにくくなるから減った量を単純比較してグラフに出すのは適切ではないということみたい。対数グラフは大きな変化と小さな変化を同時に表現するグラフのように感じていたが、体重の減り具合にも使えるのかと発見だった。また後で調べてみて fitbit のデータをエクスポートして作ってみようと思う。

冬の城崎温泉へ

2時に寝て6時半に起きた。よく寝た。

今日から開発合宿なので運動はお休み。

開発合宿へ出掛ける

あとで会社のブログにも開発合宿について記事を書くので日記は簡単に覚えていることを書く。

今回からこのイベントはうちの会社主催にした。具体的にはうちの会社が会場スポンサーとして宿泊費や交通費の一部を負担している。さらに参加者は8人になる。8人もいると、みんなで行動というのはかなり難しい。チームを分割するのか、それぞれが協調して動くのか、いろいろやってみないとわからないなと不安に思いながら試行錯誤してみた。さらに7人と私は面識があるものの、半分ぐらいの人同士がお互いに初対面で面識がない。そういった初めましての人たちが仲良くやれるか。

朝から トヨタノア をレンタカーで借りた。8人乗れる車を依頼して、荷物を積み込んでいて気付いた。荷室がかなり狭い。遠出の場合は8人 + 荷物があるから8人乗りの車に8人乗れるわけではないことに気付いた。もちろん8人乗れなくもないが、荷物を抱えて窮屈になってしまう。今回はたまたま乗る人が6人だったので事なきを得た。今後はワゴン車を借りたときに荷物も考慮して6人程度におさめることを前提にしておく。

あと付属のカーナビの予想到着時間が保守的に設定されていた。実際に走って目的地に近づくと予想到着時間が短縮されていく。うちの会社の車は走っていると、渋滞や信号待ちが考慮に入ってなくて予想到着時間がどんどん先延ばしになっていくように設計されている。カーナビによって予想到着時間が保守的だったり最短だったりすることを学んだ。ある地点から2時間と出た予想到着時間が実際には1時間20分だった。うちの会社の車と設計が異なっていたので2時間以上かかるんじゃないかと思って、その表示をみたときはやや焦った。

初めてワゴン車を運転してみて、サイズの大きさはそれほど気にはならなかったが、車重が重くて加速の遅さとブレーキが効かないところには少し慣れが必要だとわかった。合流や追い抜きをうまくできなかったり、信号待ちで止まるときに減速を見誤ってやや急停止になったりした。なんやらかんやらでワゴン車を運転してこれてよい経験になった。