不具合調査の翌日

1時に寝て4時半に起きた。昨日22時過ぎまで作業して23時頃から晩ご飯食べてから寝たわりに、というかそのせいか、パッと起きて金朝ツメトギみて、そのままオフィス行って、午前中は昨日の続きの不具合調査をしてた。

Kindle 本の返品

ある kindle 本を購入したときにアカウントを間違えていることに気付いた。amazon のアカウントは法人アカウントと個人アカウントがある。アプリでアカウントの切り替えは面倒なので、業務で購入する kindle 本も個人アカウントで購入して読んでいる。誤って法人アカウントで kindle 本を購入してしまったので返品したい。システム的に kindle 本の返品機能は提供されていないが、Kindle本を返品する を読むとカスタマーサービスから返品できる。次の記事はスクリーンショットで操作も説明しているのでわかりやすい。

カスタマーサービスのチャットを開いて、ボットの質問にいくつか回答して、購入した kindle 本を選択して「その他」からオペーレーターにつながる。6時過ぎだったのにオペレーターがチャットに出てきて、kindle 本を返品したいと書き込んだらすぐに確認して返品処理してくれた。オペレーターは24時間体制なのかな?おそらく購入してすぐだったし、ダウンロードもしていなかったので返品処理がすぐできたのだと推測する。実際の返金処理には2-3日かかるとのこと。チャットで2-3のコメントを書き込めば手続きできたのでシステムはよくできていると思った。そのことを twtter に書き込んだらすぐ Amazon Help にいいねされて、みてるぞって感じでこれはちょっと怖くなった。

オフィス内覧

オフィスの引っ越し調査のために fabbit神戸三宮 に行ってきた。フリースペースは開放感があって、外の光も入っていて、雰囲気がよさそうにみえた。サービスで1日分のドロップインチケットをもらったので今度使ってみる。個室は2名と4名部屋の2種類。2名部屋はあまり広くないので1名で利用している会員も多いとのこと。

  • 月額利用料: 66,000円
  • 郵便受けサービス: 1,100円
  • 法人登記サービス: 11,000円

法人のオフィスとして使うときは郵便受けと法人登記サービスに入る必要があるとのこと。個室の設備なども含めて比べると、いまのオフィスより割高な料金設定になっているように感じた。その他デメリットもいくつかわかった。

  • 法人登記の場合、入会するときに入会金が44,000円かかる
  • 部屋に備え付けの机や椅子がいらないときは保管場所を自分で用意しないといけない
    • 椅子を変えたかったら備え付けの椅子を自宅に置いとくとか
  • 個室の仕切りがガラス張りで外から中がみえるので社外秘などのセキュリティがやや気になる
    • 顧客情報が流出する可能性があるのと、マット敷いてお昼寝しているときに外からみられたら恥ずかしい
  • 郵便受けが施設内にあるのでスタッフがいないと郵便が届かない (土日に郵便物を受け取れない)

datadog-agent のログ連携の不具合調査

0時に寝て4時に起きた。朝から1時間ほどドラクエタクトやってた。

ログ連携の不具合調査

少し前に本番環境で datadog-agent からログが (クラウドの) datadog に連携されていないことがわかった。kubectl logs のコマンドで確認すると、アプリケーションのログは出力されているので datadog-agent から datadog にログを送信するところの問題であるように推測された。たまたま今日、同じような現象をテスト環境で確認できた。ちょうどスクラムのプランニングでログ調査のための作業をするチケットの承認を得たところだった。満を持して発生したような障害だったので私が調査すると明言して調査してた。半日ぐらい調査して、pod 内の credential 情報が置き換わってしまうことが原因っぽいと特定できたが、なぜ置き換わってしまうのかはまだわからない。もう少し調査して解決したら会社のテックブログにいいなと思ったので、日記に書いてた内容を移行することにした。

レビュー待ちのストレス

0時に寝て6時に起きた。6時半頃に動くバッチ処理がエラーになって朝から原因を調べてた。

ユニットバイアスとツァイガルニク効果

いまのお仕事は火曜日にリリースして水曜日にプランニングしているため、1週間のうちの火曜日と水曜日がだらけがちになっている。火曜日に作成したリリースしない開発途中の PR が保留され、水曜日もプランニングやその後の調整にだらけていると PR が滞留しやすいからだ。昨日と今日で作成した PR が7つレビュー待ちで溜まっていて、他の作業を並行して進めるやる気をなくしてしまった。ここでなぜ作業を中断していると、自分の中でストレスが溜まったり、他の作業のやる気が削がれるのかを考えてみた。私が知っている認知心理学の知見からだと次の2つになる。

  • ユニットバイアス
    • 量や大きさに関係なく、やり終えることに満足を感じる
    • チケットやタスクを小さく分割することで小さな課題に集中して作業できる
  • ツァイガルニク効果
    • 途中で挫折したり中断してしまったことの方がよく記憶に残る
    • 心理的リアクタンスが高いほどこの効果が発生しやすくなる
      • 他人から行動を制限される反発して自分のやりたい欲求が高まる
    • レビュー待ちが多いと中断している課題のことが気になって集中力を削がれる

普通の開発者は1日3-5個ぐらいのチケットを fix するんじゃないかと思うけど、レビューが止まっているせいでそれが阻害されてストレスを感じる。しかも、レビューが有意義であれば待つ価値もあるが、レビューのほとんどがノーコメントで approve されるだけだと待ち時間だけが積み上がる。

普通のプログラマの普通の設計

タイムラインでたまたまみかけて 普通のプログラマの普通の設計 に参加した。設計の話しはコンテキストやコードがないと抽象的過ぎてふわふわして勉強会で扱うには難しいテーマだけど、その懸念通り、ふわふわした内容だったと思う。おもしろくなかったわけではなく、発表者それぞれの考え方や大事にしている価値観などを知ることで多様性を認めるというか、他人のやり方を受け入れることにもつながるのかなとは思えた。

コードのない設計の話しは言葉から連想される概念が広過ぎてあまりよくわからない。現実の設計でも言葉でやり取りして同意していたのにコードは全然違うみたいなことはたまに発生する。だから言葉で設計のやり取りするよりも、2-3日でプロトタイプを実装できるならコードを先にみせてもらった方がよいとすら私は考えているところがある。あと一度設計をやったら終わりと考える開発者も多い。設計とは運用してからのフィードバックを受けてさらに改善していくことも含まれる。だから開発を継続している限り、設計したということはなくてずっと設計しているという考え方が正しい。matz もコードとは設計であると話していたと思う。

歴史と地政学

1時に寝て6時半に起きた。今日はリリース日でリリースに間に合わなかった PR 群の説明を書いてそれらをまとめたり、チケットの整理をしたりしていて、あんまり他のことの記憶がない。

地政学に関心がある

プーチン大統領が「地政学的に言えば……」という枕詞をよく使う (印象を私が勝手にもっていて、実際にそういう発言をググっても検索ヒットするわけではないので勝手な私の思い込みかもしれないが) ので地政学という分野に以前から関心をもっている。とくにプーチン大統領のファンだというわけではない。地政学といえばプーチン大統領という連想が働くだけだ。たまたまはてブのエントリーでみつけた記事を読んだらおもしろかった。

記事に触発されて 恐怖の地政学 を購入した。いま私が地方都市に住んでいるというのもあって、地方に根付いた産業とか文化とか、いくらかそれは地理的な要因もあるだろうとは思っていて、せっかく地方に住んでいるのだからそういう分野の歴史や背景を調べるのもおもしろそうだと思い始めたところでもある。

雑談の効果

4時に寝て7時半に起きた。休日にだらだら過ごしてたので生活のリズムが狂ってしまった。

開発者同士の雑談

リリース作業前の検証のときにそれぞれの開発者が対応した課題の検証をやりながらハドルで雑談するのが定例になってきた。オンラインミーティングをするときに打ち合わせのリソースを作成する必要がないので、ハドルぐらい手軽にオンラインで繋げられれば雑談もしやすいということが少し理解できてきた。slack アプリは常に開いているので打ち合わせのために特定のアプリ(ブラウザで特定のページ)を開くという作業がないだけで心理的な障壁が下がる気がする。チャットツールに音声通話の機能がつくのは大きなメリットがあるなと、zoom や google meet と比較して思うようになってきた。定例会議やイベントなどは zoom や google meet でかまわない。だけど、「いまからリリースやるからみんな集まって」みたいなノリはハドルの方が集めやすいし、参加しやすい。フルリモートワークはオフィスと同じような雑談がやりにくいという課題の、技術的な課題はハドルが少しずつ解決していきそうな未来があるのかもしれない。

いままでのほほんと雑談していただけだったが、こういう機会にどんな会話をしているか、その会話からどういった情報共有が行われているか、会話することで人間関係や心理的安全性に影響を与えるかなど、雑談の意義や効果に注意を向けながらやってみるとなにかしら発見があるような気もしてきた。

フィードバックの書き始め

0時に寝て8時半に起きた。今日は雨降りだったのもあって1日お休みしてた。

3ヶ月フィードバック

はらさんと 雑談したこと を整理しながら wiki に書き始めた。勢いで2つの項目を書いた。書き始めにすごく時間を要するけど、書き出すとわりと推敲もしながら進む。

  • 開発プロジェクトに参加して気付いた3つの大きな課題
  • 初めてスクラム開発をやってみた所感

あと課題管理システムのことや情報共有の考え方やレベル、PR のルールやレビューと開発の生産性について書く。三分の一ぐらい書いたところかな。少しずつ空き時間をみつけて書いていく。

バーで会食

4時に寝て10時に起きた。昨日は体調悪くて夕方仮眠して、体調よくなった22時頃から作業を再開したので3時ぐらいまでやってた。

ストレッチ

今週もあまりストレッチができなかったものの、今日の開脚幅は開始前172cmで、ストレッチ後170cmだった。特別なことは何もしてないのだけど、数値がよくなった。開脚の仕方によって3cmぐらいは変わってきたりするのかな。開始前に測ったときに172cmになった理由もよくわからなかった。太もも後ろの張りは先週よりよくなっていたものの、腰の疲労は溜まっていて毎週毎週コンディションが違うなというのを実感する。

会員制バーでふりかえり

先日 予約した会員制バー へ行ってきた。バーとか連れられてしか行ったことないので慣れる意図もある。bizpy の機械学習勉強会 のふりかえりも兼ねてわたなべさんと行ってきた。ビジネスパーソンという対象者の属性や前提知識などを確認したり、コンテンツの細分化や進め方、次回の予定など幅広くわいわいやってた。

バーについては思ったより店内は広くて10席ほどのカウンターのみだけど、幅広の椅子が置かれているのでパーソナルスペースが広くてゆったり過ごせる空間な気がした。19時に行ったら他のお客さんは誰もいなくて21時までいて誰も他のお客さんは来なかった。貸し切りみたいな感じだった。オミクロン株が流行も関係しているのだろう。うちらにしたら他のお客さんがいないから感染リスクが減ってよかったと思う。コース料理を頼んでいた。一品一品凝った感じの料理で接待にはちょうどよい。普通の晩ご飯に食べるにはお洒落過ぎて私には無用のものだと思う。量がたくさんあるわけでもないけど、1品ずつ出てきて2時間かけて食べるので割とお腹はいっぱいになって満足した。それなりの値段もするので当然おいしかった。

第1回オフィス内覧調査

0時に寝て6時に起きた。起きたときは普通だったけど、午前中に働き始めてからまた頭痛がしてきた。内覧後は帰ってベッドで仮眠してた。夕方に頭痛のピークがきたものの、21時ぐらいにはおさまって元気になったのでそれからまたオフィスに戻って作業してた。

隔週の雑談

顧問のはらさんと隔週の打ち合わせ。開発のお手伝いを始めて3ヶ月経つので私の気付き事項のレポートを書こうかと考えている。組織や開発の改善やよくないところは、外部から入ってきたときに一番気付く。だんだんとその組織や文化に慣れていって違和感を感じたかどうかがわからなくなっていく。そのため、11月から働いていて気付いたことをずっとメモし続けてそれが3ヶ月分たまったのでそのメモを総括してレポートにまとめようという話し。そのふりかえりみたいな話しをさらに部外者のはらさんとあーだこーだと話してた。雑談レベルなのでそういう話しをすることで書くときの思考整理の前準備にもなる。

  • 課題管理システムやチケット駆動開発の実践についての話し
  • 聞かなくてもわかる というコミュニケーションコストの話し
  • コードの品質と業務形態の話し
  • PR のルールやレビューと開発の生産性の話し

オフィス内覧

オフィス引っ越し調査のために 神戸国際会館のレンタルオフィスの内覧 に申し込みしていたので行ってきた。必須条件は窓があって外がみえること。いま借りているレンタルオフィスもリフォームした後から入っているので新築みたいなもので施設や設備に関しては不満はない。参考までにいま借りているレンタルオフィスの料金はこんな感じ。

  • 月額利用料: 35,000
  • 共益費: 5,000

神戸国際会館というグレードの高いビルにあるレンタルオフィスは普通に文句の付け所がなくて素晴らしい。1人部屋は窓がないけど、いま借りているところより少しだけ広い。一方で料金は3倍ぐらいになる。

  • 月額利用料: 110,000
  • 共益費: 5,000

窓がないと引っ越す意味がないので窓がある部屋は2人部屋になって広さも余裕ができるものの料金も高い。ブラインドを上げたらガラス張りで22階だから見晴らしもよくて気持ちよさそう。

  • 月額利用料: 195,000
  • 共益費: 5,000

いまの財務とお仕事なら払えないような料金ではないけれど、こんな家賃を払っていると、お仕事辞めてしばらく遊ぶみたいな余裕がなくなってサラリーマンと変わらない生活に戻ってしまいそうで不安になる。今期は3ヶ月ほど働かずに遊んでいたけど、そうやってられたのは家賃の固定費が安かったというのもあったんだなとこの料金を聞いて考えたりしていた。幸いにも神戸三ノ宮はレンタルオフィスがいくつもあるのでまだまだ候補はある。おそらく一番グレードが高いのが神戸国際会館なのでこれから行くところは妥当な料金になってくるとは思う。

spring boot の xml 変換の仕組み

0時に寝て吐き気がして3時に起きて、断続的に仮眠をとってみたけど、それでも気分悪くて5時から起きてた。昨日の晩ご飯食べて寝てから吐き気が出てきた。なにかの食べ合わせなのだろうか。コロッケとその後にチョコレート食べたのが悪かったのか。普通にオフィスへ行ってお仕事してたら直った。

spring boot の xml 変換

いまお手伝いしているお仕事で spring boot で SOAP の xml 通信しているサービスがある。任意の文字列を受け取って任意の文字列を返すような仕組みで設計されていて、xml の変換処理を jackson を使ってアプリケーションコードで書いていた。

これをやるならミドルウェアでやるべきだなと思って spring boot のドキュメントを調べてみた。Error Handling のように例外が発生したときの処理をフックする ResponseEntityExceptionHandler のようなミドルウェアに近い仕組みはあるが、通常のレスポンスに対して行う処理はなかった。代わりに HttpMessageConverters という、レスポンスを変換する仕組み自体は操作できないが、変換する変換器は置き換えたり拡張したりできるようになっている。レスポンスのデータフォーマットのカスタマイズをしたい場合は HttpMessageConverters で行うというのが spring boot 的なやり方にみえる。

さらに調べていると Write an XML REST Servicejackson-dataformat-xml がクラスパスにあれば jackson の ObjectMapper を使って xml に変換するよと書いてあって、試しにレスポンスのオブジェクトを返したら自動的に xml に変換されるという振る舞いを確認できた。つまり、アプリケーションコードで xml の変換処理を自前で実装しなくてもほぼ同じことを spring boot のデフォルトの仕組みでやってくれるというわけだ。jackson の ObjectMapper のカスタマイズがしたいときもいくつかやり方がある。例えば、 @Configuration をもつ Config オブジェクトで次のような bean を生成すれば任意の設定にカスタマイズした ObjectMapper が使われるようになる。

@Bean
public Jackson2ObjectMapperBuilderCustomizer configureObjectMapper() {
    return builder -> {
        builder.serializationInclusion(JsonInclude.Include.NON_EMPTY);
    };
}

最初のフォロワー

0時に寝て4時に起きた。1時間ほどだらだらして1時間ほどドラクエタクトして6時半にバッチの初動監視をしてた。

bizpy 勉強会

Python で機械学習をやってみる勉強会 を開催した。わたなべさんに講師を務めていただいた。スタッフが2人いると、1人は勉強会が円滑にまわるようにサポートに注力できる。1人だと、講師として説明するのに精一杯で質問を拾い上げたり、わかりにくい説明を補足したりするといったことがリソース制約上できない。今回は私がサポート役だったので随時、質問をしたりしていた。

今回の勉強会は質問がたくさん出た。いつもは1-2人が数個といった回数なのに、今回は5-6人から十数個の質問がでて、口頭でもいくつものやり取りが発生した。あとで振り返って考えると、おそらくこれは私が質問をぽんぽんしていたからだと考えられる。

TED に デレク・シヴァーズ 「社会運動はどうやって起こすか」 がある。最初のフォロワーが重要という話が出てくる。静かな勉強会で最初に質問するのは勇気がいる。質問して他の人の邪魔にならないか?講師から質問を嫌がられないか?質問が的外れだったら恥をかかないか?など、最初に質問する人が躊躇する理由はたくさんある。私が簡単な質問や的はずれな質問、講義をぽんぽん止めているのをみているうちに、そういうことをやっても大丈夫な勉強会であることが参加者へ自然と伝わる。その結果として参加者から多くの質問が出るような勉強会になったのではないかと考えられる。

質問が多くでる=コミュニケーションが活発だとコミュニティの価値も上がると思う。今後もサポート体制のようなものはうまく仕組み化して勉強会に取り入れていきたい。

ブロックチェーン考察

1時に寝て6時半に起きた。昨日はほぼまる一日頭痛でしんどかったけど、寝たら直った。朝から集中してコードを書いてた。

ブロックチェーンは未来なのか

次の記事を読んだ。

ブロックチェーン:膨張する看板に偽りはないか - 誠実なプロセスの必要性 -

最近、私のタイムラインでも Web 3.0 というキーワードをみかけるようになってきて、どうやらこれはブロックチェーン技術をベースにした分散型のなにかを表しているらしい。間違っていたらごめんなさい。暗号資産や NFT といった投機的な目的でビジネスを展開したい人たちも多いようにみえて、真っ当にやっている人たちもいるのだろうけど、儲かればなんでもいいみたいな風潮にみえていて、私の中ではあまり関わりたくないキーワードになってきている。

記事でも書かれている通り、分散と言いながら巨大な台帳になることからインフラを管理できるコンピューティングリソースが大規模化し、運用上は個人がすべてのリソースを保持することは難しいことから、プラットフォーマーや大企業が分散台帳のリソースを管理するような在り方になっていくのではないかと推測する。結局のところ、インフラをすべて大企業が賄うのであれば、そもそも効率の悪いブロックチェーンのような技術を使わなくても既存の中央集権的なシステムで構築する方がはるかに効率的ではないか?という問いに対するアプリケーションの答えは海外送金だけしか私は認識していない。海外送金は中央集権的なシステムが存在してなく、非常にコストが高いため、ブロックチェーン技術で分散台帳を構築しても安価に済む。

いまのところ、グローバルなシステムをブロックチェーン技術をベースにした開発にすることで、各国で独立してシステム開発が進められるメリットがあるという話しでグローバルベンダーはブロックチェーン技術を使ったプラットフォームを開発しているようにはみえる。それはそれで理に適っているようにも聞こえる。一方で個人向けのキラーアプリやキラーコンテンツはまだ私からはみえない。NFT がそれになるのかな?と一瞬思ったけど、ちょっと調べてみただけでは、現時点ではそうなりそうに思えない。研究開発や新しい技術の試行錯誤としてブロックチェーンはまだまだ未知の領域があるのだろうけど、大して便利でも効率がよいわけでもないものを未来であるかのように喧伝しているのは忌避を感じるのでもうしばらくは様子を見守りたい。

会員制バー予約

先日チラシでみかけて 会員制バー に申し込みしてみた。おそらく招待会員というサブスクリプションに入ったので試しに行ってみることにした。明日 bizpy の勉強会があるのでそのふりかえりを兼ねて、土曜日に講師のわたなべさんと一緒に行くのを予約した。2018年に神戸に引っ越してきて近くに知り合いがいなくて、その後、地域の勉強会へ行ったり、会社を辞めたりしながら、コロナがあって、なんやらかんやらで近くに一緒に飲みに行ける知り合いができた。初めて行くお店はわくわくする。楽しみだ。