yigarashiのブログ

学んだことや考えていることを書きます

User Agent文字列を使ったブラウザ判定の事例 2022年版

やむを得ず、User Agent文字列を使って特定のブラウザ向けにJavaScriptの処理を分岐する必要が生まれてしまったので、調査・検討のログを記事にまとめます。 基本的にはバッドプラクティスである ユーザーエージェント文字列を用いたブラウザーの判定 - HTTP…

Four Keysがなぜ重要なのか - 開発チームのパフォーマンスを改善する方法について

ソフトウェアエンジニアとして働き始めて以来、ずっとソフトウェアデリバリーのパフォーマンスに興味を持って、さまざまな改善活動をしてきた。当初はスクラムを中心としたプロセスの改善に注力したが、最近はチームの成熟に伴って技術的なプラクティスに興…

スキルマップに採用する予定の技術も書いてみている

スキルマップとは スキルマップは、チームで使っている技術を各メンバーがどのくらい習得しているかを集計したものです。スプレッドシートで表を書いてメンテナンスしているチームが多いのではないかと思います。このアクティビティのメリットは以下のような…

「職能横断チーム」の実践におけるアンチパターンと対策

近年のアジャイルムーブメントにおいて「職能横断チーム」は当たり前の概念になっています。ユーザーに価値を届けるのに必要なあらゆる機能をチームが備え自律的にコントロールすることで、リードタイムを短縮するとともに、イノベーションが起こりやすい環…

チームのベロシティを上げる vs. 安定させる

タイトルの議論はよく見られるもので、スクラムコーチの間ですら(一見すると)意見が分かれることがあるようです。自分は「安定させる」派だったのですが、CSPO研修を受講したチームのPOが「上げる」派のコーチングを受けてきて、改めてチームとしてどうい…

チームが重要な目標にリソースを使えているか可視化する

リソースを集中させるのは難しい プロダクト作りにおいては、一番効果が高いところにリソースを集中しリードタイムを縮めるのが良いとされています。スクラムをやっているなら、ただひとつのプロダクトゴールが掲げられていて、そのためのプロダクトバックロ…

がんばりすぎないふりかえりのススメ

がんばりすぎてふりかえりを嫌いになった 自分たちのやりかたを検査して改善するふりかえり。巷には様々な思想やフレークワークが出回っています。チームからうまく情報を引き出したり、教訓に昇華したり、SMARTなアクションを設定することも大事です。そう…

高すぎる認知負荷が生むサービスの袋小路とエンジニアリングマネージャーの役割

最近流行りの「チームトポロジー」では、フローが改善するようにチームの認知負荷をコントロールすることが述べられています。そのためには組織とアーキテクチャをうまく変化させていく必要があり、いくつか主要な考え方やパターンが紹介されています。詳し…

「エラスティックリーダーシップ」でソフトウェア開発をうまくリードする方法を考える

僕にはリーダーシップがわからない。しかし無策で取り組むべきでないことだけはわかる。 ということで、自分の周囲で共通言語としてよく参照されている「エラスティックリーダーシップ」を読むことにした。自分は新米リーダーとして困りをたくさん抱えている…

テックリードとしてシステムの未来を示して品質の期待を合わせる

最近チームのテックリードを拝命して、テクノロジーマネジメント領域もリードすることになりました。興味の中心は開発プロセスやデリバリーで、エンジニアリングはまだまだひよっこなので苦労の日々が続いています。この記事では新米テックリードとしての取…

Scrapboxの献立リストから食べるものを自動で決める

今日は豚の味噌漬けを食べた。コロナ禍に入ってから食事のほとんどを自炊でまかなっている。週に2回スーパーに買い出しに行くのだが、そんなに長居したいご時世でもないので、買い出し前夜に献立を計画して何を買うかメモするようにしている。 しかしこの計…

上司とのシンクロ率を高める

最近、指揮系統ツリーの真ん中くらいでリーダーシップを発揮することが増えてきました。つまり自分に上司も部下もいるという状態です(業界的には上司、部下という雰囲気ではないですが便宜上)。そこでうまくやる方法を色々と考えているのですが、そのひと…

計画は総量を増やす! - プロジェクト進行と計画の量のイメージ

※本記事では継続開発をしているスクラムチームがまとまった機能をリリースする状況を想像してください。関係者は多くとも10人程度で、期間は3ヶ月程度のシンプルなものです。 プロジェクトのフェーズごとに適切な計画の量をイメージして共有できると上手くい…

エンジニアの異動は推奨すべきなのか? - 組織の成長について考える

最近エンジニアの異動について軽く議論することがありました。自分はチームの安定性の側面からやや否定的な立場だったのですが、その議論で刺激を受けて周辺領域も含めて考え直したところ、組織の成長という軸で色々な知識がつながって面白かったのでまとめ…

「Measure What Matters」を読んで思うOKR導入の困難さ

ここ半年でメンティーを2名持ち、1on1によるメンタリングと評価プロセスの一部を担っています。その過程で、目標設定や評価をもっと良くしたいと思うようになりました。せっかく時間を使うなら、成長を支援する、パフォーマンスを引き出す、上位の目標を意識…

「チームトポロジー」を読んで組織とシステムを設計するための知見を得た

チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計を読みました。チームの形やインタラクション、担当プロダクトの認知負荷について悩んでいたので、何かまとまった知識をインプットしたいと思って手に取りました。内容は期待以上で、組…

毎日メンティーと一緒にコードを読むと良いことがたくさんある

最近、毎朝30分メンティーと一緒にコードを読む活動を始めました。早朝に集まって稽古をつける感じが道場っぽいと思って「コードリーディング道場」と名付けました。 やり方 会話して画面共有できる環境に集まる メンティーに調査したい内容を決めてもらう …

webextension-polyfill-tsの型定義の自動生成がバグっていたので直した

Fix type generation for WebExtensionManifest.commands by yigarashi-9 · Pull Request #66 · Lusito/webextension-polyfill-ts 珍しくOSS活動をしたので簡単に報告記事を書く。 問題 最近ブラウザ拡張をよく触っている。同僚がmanifest.jsonをTypeScript…

AWS ECSのログを無難に見られるようになるための覚え書き

自分が関わっているサービスが徐々にECSに移転している。CloudWatchログのコンソールやチームのドキュメントにあるawslogsコマンドをなんとなく使ってログを見ていたものの、不必要なログが混ざったりして困ることがあった。テクノロジー面のモチベーション…

はじめてのエンジニア1on1メンター

ピープルマネジメントの文脈でエンジニア同士のメンタリング制度を設置しているIT企業は多いと思います。自分が勤める会社も例に漏れず、1on1によるメンタリング制度があります。エンジニアリングマネージャーを目指す若者の戦略 - yigarashiのブログ でも整…

エンジニアリングマネージャーを目指す若者の戦略

企業でWebアプリケーションエンジニアとして働き始めて2年と4ヶ月ほど経ちました。様々な仕事を経て、自分が向いていることや楽しく感じることが徐々に明らかになり、数年後になりたい像がぼんやりと浮かび上がってきました。そして、その将来像が世間的には…

チームが大きくなったらふりかえりをどうしたらよいのか

どうしたら良いんでしょうね。大きくなったら、というのは15〜20人くらいを想定しています。絶賛困っているので論点を整理するために考えていることを書き出してみます。 何に困っているか 素朴に1グループで会話すると発話できる人が減る 話題のスコープが…

なぜ俺たちはタスクを分割するのか

開発のプラクティスとして大きいタスクを小さく分割するというのがある。しかしよく考えると何が嬉しいかを的確に説明するのが難しいプラクティスだと思う。現在進行形でチームに広めようとしてうまく言葉が出なくて困っている。なぜ俺たちはタスクを分割す…

開発の導入準備おすすめ仕草3つ

最近、自分が先行して開発をして、地盤が整ったところで他のメンバーにも開発タスクをやってもらうという場面があった。特に、チームでは経験のないツールを使ったデータ基盤に関するタスクであったので、手厚く導入をすることが重要であった。その時の準備…

KPTのKがいまいち膨らまないチームに贈るパワフルな質問

ふりかえりでKPTのようなポジティブ/ネガティブな話題を出すような手法を使っていると、悪いところの掘り下げはサクサクできる一方で、良いところをうまく膨らませるのが意外と難しいように思います。書いた本人に話してもらって、ファシリテーターが「いい…

Goのcontextについて調査したり実装を読んだりしたまとめ

最近Goを勉強している。仕事でたまに使うというのもあるし、用途が広く色々とつぶしがききそうという期待もある。ちゃんと勉強してみると思ったより手触りが良いので、気になったライブラリについて調査しながら少しずつGo言語力を高めようと思う。というこ…

BigQueryっぽい小技を組み合わせてGA4のデータのページタイトルを最新の値に正規化する

Google Analytics 4(通称GA4)は最近利用できるようになったGoogle Analyticsの新しいプロパティで、全てのデータを簡単にBigQueryにエクスポートできるのが大きな特徴です。私もGA4を使ってこのブログのアクセス解析を行っており、BigQueryでナイスなビュ…

VSCodeで複数リポジトリを扱うなら結局Open Recentコマンドが最強という話

大学時代から長らくEmacsで暮らしていたのですが、最近ついにVSCodeに完全移行しました。各種設定やプラグインのエコシステムが使いやすかったり、コマンドパレットの感じがEmacsに似ていたりしていい感じです。 そんなVSCode、基本的には1フォルダ1ウィンド…

『SCRUM MASTER THE BOOK』を読んでスクラムマスターを何もわかっていないことがわかった

SCRUM MASTER THE BOOKを通して、偉大なスクラムマスターが備えるスキルやマインドを学びました。その学びをもとに、自分の振る舞いや考え方を改め、アジャイルなチームを作るための活動を進めています。

アジャイルなチームとアジャイルなデリバリーの仕組み

アジャイル開発をチームとデリバリーの仕組みという2つの切り口で論じます。これはチームが目指すべき姿を言語化するための武器になるはずで、こうした議論を通してひとつひとつのカイゼンアクションを尖らせていくことが重要だと考えます。