Posts for: #2021/12

新型コロナワクチン接種証明書アプリを使ってみた

23時に寝て1時過ぎに起きて4時半に起きて6時半に起きた。寝てないわけじゃないけど、うまく眠れなくなった。

スマホのマイナンバーカードの読み取りは位置がシビア

ワーケーションで ふるさと応援!ひょうごを旅しようキャンペーン を利用する条件の1つにワクチンの接種証明を提示する必要がある。ちょうどデジタル庁から 新型コロナワクチン接種証明書アプリ がリリースされた。このアプリを使えば接種の原本の書類を持っていかなくて済む。

朝からアプリをインストールしてマイナンバーカードを使って接種証明書を発行しようとしたのだけど、マイナンバーカードの読み取りができない。エラーも表示されなくてうんともすんとも動かない。パスワードがロックされていたらエラーが表示されるように思えるのでなんかおかしい状況だった。そのことをツィートしたら、とのきさんがマイナンバーカードの読み取りはシビアで位置があっていないと読み取りできないとアドバイスしてくれた。

午後から JPKIMobile を用いた有効性の確認方法 を確認しながら再挑戦した。ここに書いてあるようにちょっと離したり、カードの位置を少しずつずらして調整したりしてたら読み取りできた。この時点でパスワードロックではないことを確認できた。

iPhone端末にICカードをセットします。画面が変わらないようであれば、一度ICカードを離してから再度セットしてください。

JPKIMobile で読み取りできたので同じ要領で接種証明書アプリでもやってみたら今度はすんなりと読み取りできて発行できた。位置さえあえば読み取りはすぐできた。今朝はたぶん机に置いて位置を調整せず、読み取りには時間がかかるのかな?とずっと動かさず待っていたのがよくなかったみたい。とのきさんのおかげで区役所に行く無駄な時間を削減できた。感謝。

スクラム開発の所感

0時に寝て2時過ぎに起きてだらだらして7時に起きてだらだらして8時に起き上がった。休日は自然とだらだらしがち。

log4j2 の脆弱性対応

たまたま sns で新たに脆弱性が発見され 2.17.0 がリリースされたことをみかけた。Apache Log4j Security Vulnerabilities をみて、午前中に対応して pr を作成して dos 攻撃の脆弱性と書いた後に次のツィートをみかけた。私は詳細を理解できていないのでこの内容が 2.17.0 で fix されているのかどうかまでは調査できていない。いずれにしても rce 攻撃はこわいから緊急度が跳ね上がるなとみていた。

アジャイル開発とスクラム 第2版

昨日の続き。素晴らしい本だったので所感をまとめた。スクラム開発の理解がより進んだ。

スクラム本を読了

0時に寝て6時に起きてだらだらしてて8時に起き上がった。

ストレッチ

今週もお仕事に注力してた。ストレッチは2-3日/週かな。普通ぐらいの頻度。夜は寒くなって外に出掛けるのが億劫で1日ウォーキングしたかなぐらい。今日の開脚幅は開始前169cmで、ストレッチ後170cmで、久しぶりに170cm台に戻した。いい感じ。右股関節の不可動領域がよくなっているのが実感できるようになってきているので調子はよさそう。今日は全体的に右半身 (太もも後ろ、腰、大胸筋) と張りがあって疲労もやや溜まってそうに思えた。基本的に週末もなにかしら作業していて疲労が蓄積していないのは毎週のストレッチの効果も大きいと考えている。

次の bizpy 勉強会

1月の bizpy 勉強会のイベント、Python で機械学習をやってみる勉強会 を公開した。次回はわたなべさんに講師をやってもらう。このイベントページも作っていただいた。運営が2人になったのでお互いの忙しいときは分担しながらコミュニティを運営していける。本当にありがたい。わたなべさんが担当している間に私も次のネタの下調べや仕込みをする余裕がもてる。メタバースの勉強会やってもいいなとは考えているけど、私だけではコンテンツが弱くて、よそから詳しい人を招いてこないといけない。どうしたものか。

アジャイル開発とスクラム 第2版

読了した。全12章の後にもコラムと対談があって、この内容も読み応えがあっていくつも示唆を与えられるものだった。

  • コラム 野中理論とスクラム
  • スペシャルトーク 野中氏と平鍋氏の対談
    • イノベーションに必要なのは、対話を通じて共振・共感・共鳴する実践知リーダーシップであり、それがスクラムの心だ
  • おわりに

12章で出てきた実践知について、実践知とは何か、実践知リーダーシップとはどういうことかというのが対談の中でも繰り返し出てきてその理解が深まった。私の中では暗黙知と実践知の境界が曖昧だったが、暗黙知と形式知を行ったり来たりすること、そして身体性を伴っているというのが実践知であること。そこには「もの」や「こと」の目に見えない関係性を洞察しながら判断し、本質を考え抜く知力が必要であると述べられていた。昔は 知行合一 と言ったらしいが、90年代以降の日本は分析過多、計画過多、コンプライアンス過多になってしまったという。また時間のあるときに所感をまとめようと思う。

知識創造と実践知の考察

0時に寝て6時に起きた。ここ最近は晩ご飯作って食べてアイスクリーム食べてドラクエタクトやって寝るみたいな業後の過ごし方が多い。

朝活: アジャイル開発とスクラム 第2版

金朝ツメトギ 2021-12-17 AM 6 金曜朝6時開催のもくもく会 で第11章スクラムと知識創造と第12章スクラムと実践知リーダーを読んだ。

第11章では知識想像モデルとして SECI モデルが紹介されている。ふと読んでいて、私が課題管理システムでやっていたのはこの「表出化」の活動で、多くのスクラムをやっているチームは「共同化」を主にやっているように思えた。ソフトウェア開発方法論の歴史的に、チケット駆動開発 → イテレーション開発 → アジャイル開発/スクラムの時系列に発展してきた経緯から、私のようなチケット駆動開発をがっつりやってきた開発者が言う対話が重要だと言うことと、最初からスクラム開発で「共同化」しかやらず「表出化」していない開発者が言う対話が重要だと言うことは、背景事情からして根本的に指している内容が違うのではないか?という仮説を思いついた。対話が重要だと言う開発者がドキュメントや文章を書くことをなおざりにするのを見かけて違和感を感じていた。チケット駆動開発をがっつりやってきた開発者は文章を書いた上でそれだけでは解決できなかった問題を解決するために対話が必要だと言っているわけであり、文章すら書けない開発者は対話だけで開発を進められるわけではないと考えると、これまでスクラム開発に抱いていた私の違和感の正体に近づいたように思えた。

第12章では実践知という概念とそのリーダーシップが紹介されている。以前 実践知 — エキスパートの知性 という本を読んで、メタ認知も含めた認知心理学の知見を踏まえた知識創造や実践知を獲得するに至る背景や教育と課題管理との間にある関係性を考えていたことがあった。スクラムにおいても実践知という概念を扱っているのを読んで、ここにはなにかしらの関係性を見出したり体系化を行う余地があるように考えている。やや哲学的な話題も出てくるので人によって賛否がわかれるかもしれないが、私は自分の考えている中長期的な思考や教育への考え方の価値観が合致していて、これが日本的な経営スタイルの鍵だという意見には一定の同意ができる。自分自身も中長期的な展望を大事にしながら課題解決していきたいという想いもあるからだ。

ワーケーション準備

ワーケーション準備 の残タスクを少しずつやっていく。宿泊先の きのいえ に電話してチェックイン前に駐車場にレンタカーをとめさせてもらえないかを問い合わせた。当日に宿泊客がいれば13時以降、いなければそれよりも早めにとめてもよいとのこと。スタッフがいれば声をかけていなくても勝手にとめてよいと教えてもらった。先方からも ふるさと応援!ひょうごを旅しようキャンペーン が本来は12月末で終了だったのが2月28日まで延長されたため、宿泊者が兵庫県在住であればその手続きをしたいとのこと。一旦、オンラインで決済済みの予約をキャンセルして、現地決済で兵庫県の割り引きの手続きをしてくれるという。メンバーは4人中3人が兵庫県在住なので4,000円/人の割り引きで合計12,000円の割り引きになった。

traceparent の生成

1時半に寝て7時半に起きた。ちょっと疲れてて寝坊した。

W3C Trace Context の traceparent ヘッダーの生成

前にお仕事で dapr の分散トレーシングを検証している ことについて書いた。

dapr の分散トレーシングは W3C Trace Context に準拠していて、dapr 経由のリクエストは自動的にこの情報が付与されるが、そうじゃないリクエストもトレーシングできるようにするためには http ヘッダーの traceparent をセットしないといけない。試しにサーバー側に traceparent を生成するのはどうやるのかを調べてみた。Implementations of Trace Context にある java ライブラリを調べていて、Jaeger クライアントは OpenTelemetry に移行したと書いてあって、OpenTracing と OpenCensus は OpenTelemetry に統合されたと書いてあって、どうやら OpenTelemetry を使うのがよさそうだとわかった。

やりたいことは traceparent を生成したいだけだが、OpenTelemetry の Manual Instrumentation を読んでも直接的なやり方は書いてなくて、open-telemetry/opentelemetry-java のテストコードなどもみながら実装した。細かいところの仕様をまだ理解できていないけど、ひとまずこれで生成できたので検証はできると思う。

public class W3cContextUtil {

    private static final String TRACE_PARENT_VERSION = "00";
    private static final OpenTelemetrySdk openTelemetry = OpenTelemetrySdk.builder()
            .setTracerProvider(SdkTracerProvider.builder().build())
            .setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
            .buildAndRegisterGlobal();
    private static final Tracer tracer = openTelemetry.getTracer(
            "my-tracer", "1.0.0");

    public static String generateTraceParent() {
        Span span = tracer.spanBuilder("parent").startSpan();
        try {
            SpanContext sc = span.getSpanContext();
            return String.format("%s-%s-%s-%s",
                    TRACE_PARENT_VERSION,
                    sc.getTraceId(),
                    sc.getSpanId(),
                    sc.getTraceFlags().asHex());
        } finally {
            span.end();
        }
    }
}

大阪Python もくもく会

大阪Python もくもく会 #66 にオンライン参加した。コロナ禍前に大阪へ通勤していた頃はオフライン勉強会に何回か参加したことがある。主催者のやぎさんは一度 bizpy に参加してくれたこともある。11月からオフライン勉強会を再開したとのこと。久しぶりに参加してやぎさんと話していたら neosvr にも関心をもっているとのこと。私も少し前に oculus quest 2 を購入して触ってみた程度なのでメタバース関連で一緒に勉強会をしてもよいかもしれない。もくもく会では「アジャイル開発とスクラム 第2版」を読んでいて昨日の日記の記事がまさにその成果物。せっかくなので成果発表でこの本の紹介などをした。

データと業務の変遷

23時に寝てこわい夢をみて1時半に起きて、そのまま寝たのか寝てないのかよくわからない仮眠状態で5時半に起きた。

朝活: アジャイル開発とスクラム 第2版

【三宮.dev オンライン】リモート朝活もくもく会 で第10章 竹内・野中のスクラム論文再考を読んだ。1986年に竹内氏と野中氏によって書かれた The New New Product Development Game から得た概念や理論的背景をスクラム創設者のジェフ・サザーランド氏がソフトウェア開発の方法論として体系化したものがスクラムになる。そのため、原点はこの論文にある。第10章ではオリジナルに書かれている内容とスクラム開発を比較している。オリジナルの論文にある TypeC (キヤノンやホンダの新製品開発) のようなチームの特徴として次の6つをあげている。

  1. 不安定な状態を保つ

    最初に綿密な計画や指示があるわけではない、チームは自由な裁量と同時に困難なゴールを目指す

  2. プロジェクトチームは自ら組織化する

    チームは不安定な状態から自己組織化し、対話の中で自律状態を作り出す

  3. 開発フェーズを重複させる

    開発フェーズを重複させることで、メンバーは専門分野を超えてプロジェクト全体で責任をもつようになる

  4. 「マルチ学習」

    メンバーはグループ全体として学習し、専門を超えて学習する

  5. 柔らかなマネジメント

    無管理でも強い管理でもない自主性を尊重した柔らかなマネジメントが重要である

  6. 学びを組織で共有する

    過去の成功を組織に伝える、もしくは意識的に捨て去る

オリジナルの論文の解説を読んでいると、古きよき日本の家族ぐるみの職場やチームの働き方のように思えてくる。時代が違うのでいまからこういった働き方に戻るのは現実的ではないだろうが、その中で重要だった概念や要素を、いまソフトウェア開発方法論としてのスクラムで実践できるのはいろいろと私の中でも思うことがある。私の考える課題管理の方法論にも竹内・野中氏のオリジナルの論文の概念は影響を受けるように思えた。章末にコラムとしてジェフ・サザーランド氏のインタビュー記事もあった。マイクロファイナンスのプロジェクトを通して、小さなグループに小さくお金を貸し出すことが、貧困から抜けすための小さなきっかけ (ブートストラップ) になるという体験からスクラム開発の動機づけになったという話しは哲学として印象に残った。なにかを成すには哲学が大事だと思う。

データがあると同期したくなる

お仕事でスクラムのふりかえりをやっていて mirobacklog のデータ同期という話題が出た。業務チームはブレインストーミングで要件を洗い出したりする作業のときに miro を使っていて、miro ベースでメモを記述した後でバックログアイテムとして backlog に登録する。このとき backlog に登録した後で miro を捨てるならいいが、残したまま次の展望や要件の洗い出しにも再利用したりしていると、miro と backlog のバックログアイテムの内容が乖離したり不整合が発生したりする。チームとしてはバックログアイテムに書いてある内容が正という運用をしているため、miro のみに最新の情報がある状態が続くと課題になる。私の知る限り、miro と課題管理システムのデータ連携のツールはないと思う。

私からみたら最初からすべてバックログアイテムに文章で書けばいいやんで話が終わってしまうが、人によって使い慣れたツールは異なるため、そんな単純な話しでもない。一方で昔は miro や backlog がなかった時代もあって、そのときは物理的な付箋紙をホワイトボードに張りながら作業をしていたから、本来は同期したいという概念もなかったはずという意見も出た。たしかにツールがデジタルになって電子データとなった瞬間からデータの再利用を考えるようになるんだなと私も思えた。あと付箋紙をホワイトボードに貼り付けていた時代は何週間もその状態のまま放置するといったこともなかったのではないか?という気もした。

github actions のワークフローカスタマイズ

0時に寝て6時半に起きた。

github actions の並行ビルド

1-2日でできると思ったら想定したよりややこしくて3日かかった。既存処理でかかっている時間を40-50%ほど短縮できた。1つの job で複数モジュールのビルドや docker イメージの生成、aws ecr への登録、eks の pod 更新などをしている処理を複数の job に分割する。job を分割すると、ビルド成果物を共有できなかったり、env のスコープも変わってくる。独立した job 環境で効率よく処理できるよう、ビルドキャッシュを導入したり、カスタムの composite アクションで処理を共通化したりと、あれやこれやを変更する量が増えていった。変更すること自体は問題ないけど、動作検証は github actions 上で動かさないと分からないところがあって、その検証に時間がかかる。複雑なワークフローを実装していると、github actions のかゆいところに手が届かないのにも気付けた。まだまだ circleci は企業向けに使われるのかもしれないなと思えた。

log4j2 セキュリティ対応

log4j2 セキュリティ対応

23時に寝て5時に起きたが、だらだらしているうちに2度寝して6時半に起きた。

log4j2 セキュリティ対応

CVE-2021-44228 が金曜日のお昼から私のタイムラインを賑わしている。私がお手伝いしているお仕事はイントラのシステムなのでやや余裕をもって情報を眺めていた。issue のコメント をみても log4j 1.x にも影響があると書かれて、その後に実際には影響ないと書かれて、さらにその後に条件付きだけど影響はあると二転三転してた。自分で実際に試してなくて世の中の開発者の情報をみているだけ。そのため、公式の情報を信頼するといったポジションでしかない。関係者の方々には敬意を払いたい。私は spring の公式ブログで公開されている Log4J2 Vulnerability and Spring Boot を読みながら対応した。

ターコイズ

ふとしたきっかけで ターコイズ の記事を読んだ。12月の誕生石らしく、それでいまの時期に紹介されることも多いのだと推測する。別の記事でターコイズは喉によいと書かれていて、以前 喉に違和感がある ことを書いた。日常生活に困るほどではないけど、もうこの歳だから体調が良くなることはなく悪くなる一方だろうという見通しも含めて験担ぎのような感覚で喉というキーワードでつながったから購入してみた。

近所の原石屋さんに行って尋ねてみたら1-2cmぐらいのサイズ1個240円ほどで売っていたので3個買って、近所のダイソーで入れものを買って、それっぽくオフィスに置いておくことにした。うちのコーポレートカラーはグリーンとブルーなんだけど、ターコイズも ターコイズグリーンターコイズブルー の2種類の色がある。創業も12月なので誕生石としても合致する。共通点があって相性がよさそうなのでうちのコーポレートストーン (そんな言葉ない) はターコイズでいいや。

ワーケーション準備

2時半に寝て7時に起きた。なんか眠れなくてだらだらしてた。

ワーケーション予約

参加予定者に最終確認をとって3人参加してくれることになった。感謝。私を含めて4人で行ってくる。レンタカーと きのいえ の予約を確定させた。1月28-30日で 城崎温泉 でワーケーションしてくる。宿泊は金曜日の夜しか予約があいてなくて4月まで土曜日の夜はすでに予約が埋まっていた。もし金土と連泊で予約するときは3ヶ月以上前に予約をとらないといけないということがわかった。宿泊人数によって料金が変わってくるため、多少の人数変更に対応できる条件で予約できるのが望ましい。今回泊まることでオーナーの人とやり取りできればそういったことも聞いてみようと思う。その後、旅のしおりを作り始めた。まだ1ヶ月あるので調べながらゆっくり準備を進めていく。移動や作業のための時間、食事、親睦会などタイムラインを作りながらやり方を検討していく。

ショコラ・シュバルツ

山梨県北杜市のふるさと納税 の返礼品として ショコラ・シュバルツ(Chocolat Schwartz) が届いた。試しに1本飲んでみた。香りがよくて黒ビールなんだけど、普通の黒ビールとは異なる風味でそれがショコラなのかどうか、私にはよくわかってないけど、あまり味わったことのない黒ビールという点からはおいしかった。毎日飲むようなビールではないと思うが、イベントや記念日など普通のビールとは異なるビールを試したいときには向きそう。お土産などにもよさそう。

ワーケーションのシミュレーション

1時に寝て7時に起きた。久しぶりに遅くまで飲んでたのでやや気分が悪い。全体としてあまり大したことしてなかったんだけど、日記のふりかえりしたり、スクラム談義したり、log4j の脆弱性のその後の状況を静観したりしてた。

ストレッチ

今週もお仕事に注力してたらストレッチは2日/週とあまりできなかった。夜も外に出掛けるのが億劫になったり、勉強会に参加してたりしてウォーキングもやってない。今日の開脚幅は開始前167cmで、ストレッチ後169.5cmだった。さぼってたわりにはまぁまぁだった。特別なことはなにもしてなかったけど、右太もも後ろの筋がやや張っていて右足はあまりよくない。一方で右股関節の不可動領域がよくなっていることが自分でストレッチしててもわかるようになってきて半年以上やってきた甲斐があったと言える。

ワーケーション計画

参加者の目処がついてきたので城崎温泉に出掛けるワーケーションの計画をシミュレーションしていた。たとえば電車とレンタカーでどのぐらい料金の差になるかというと、三ノ宮発でレンタカーを借りて移動 (2泊3日) するときの料金 (高速道路/ガソリン代含む) は 35,648 円、電車は往復11,000円/人になる。3人いればレンタカーと同じぐらいの料金で、4人いればレンタカーで移動した方が安くなる。3人だったとしても移動の勝手の良さを考慮するとレンタカーの方がよさそうに思えた。

ワーケーションの思いつき

0時に寝て6時に起きた。

朝活: アジャイル開発とスクラム 第2版

金朝ツメトギ 2021-12-10 AM 6 金曜朝6時開催のもくもく会 に参加した。今回はてらださんも来られていた。第9章を読んだ。KDDI さんの事例紹介で2013年から取り組みしているらしい。フラクタルスプリント を実際の業務で実践している稀な事例としておもしろかった。1週間のスプリントの中に1日のスプリントが4回あるといったフラクタル構造のスプリント。また金曜日は「仕事をしない日」としてレトロスペクティブと OST (オープンスペーステクノロジー、自由な発表と議論の時間) に割当てている。20%ルールに近いものと言えるかもしれないが、自己研鑽のための時間をスプリントの中に組み込むという、組織の理解があってこそできる取り組みを実践していてすごいなと感心した。

隔週の雑談

顧問のはらさんと隔週の打ち合わせ。スクラムの話題として だいくしーのスクラム Bar #1Scrum Masters Night! Online 〜第10夜〜 に参加してやり取りした内容や考察したことなどをいろいろ話してた。そのうちの話題の1つに、スクラムマスターの役割とは何だろうかがある。スクラムマスターはプロダクトをよくすることに責任をもち、メンバーが働きやすいように支えるような役割である。ここまでは共通認識として、その範囲がどこまでかは人によって意見が異なるように思えた。あくまでプロダクトやチームの範囲内で行動するスクラムマスターと、スクラムを組織全体に広めたり、人事・評価制度や経営にも参加していくスクラムマスターがある。スクラムマスターは社外の人間でもできるという考え方があるが、必然的に後者の役割も担うなら社内の人間に限定される。後者の役割は越権行為ではないか、いやいや、チームのために働いたメンバーの評価が下がってしまえば現場でよりよいプロダクト開発はできないから大事ではないかという意見も出た。便宜上、前者を (普通の) スクラムマスター、後者を「意識の高い」スクラムマスターと呼ぶ。私の考えでは、意識の高いスクラムマスターの言わんとしていることはわかるが、それをやりたいなら部長や役員などになってから職責とともに改善すべきであり、スクラムマスターという組織におけるラインではない人が経営に口出ししたりすることによる、組織の歪みはまた別の問題を引き起こすのではないかとも思えた。私も経営をやっていて経営側の視点でみるとやはりおかしい。

その後にワーケーションについて相談した。城崎温泉にある きのいえ でワーケーションをやってみようかと考えている。参加のお誘いややり方についていくつか相談しながら前向きに検討しようということになった。

忘年会

【初参加大歓迎】三宮.dev&bizpy 合同忘年会 に参加してきた。忘年会の前に運営に入ってもらった、わたなべさんと軽く bizpy の運営について話してきた。1月はわたなべさんに機械学習の勉強会をやってもらう。私は昨年も三宮.devの忘年会に出てた。昨年は3人だったのが今年は4人になった。名物の大きなポークカツレツ。4人とも勉強会の常連みたいな人たちなのでお酒を飲みながらわいわいやって、コロナ禍になる前のコミュニティの勉強会の飲み会を思い出したりしてた。ワーケーションの話をしたら2人は興味を示してくれて、メンバーが4人集まったので開発合宿の企画をしてみることに決めた。