ブックマーク / yigarashi.hatenablog.com (18)

  • エンジニアが仕様案を手戻りさせるアンチパターンはもう終わりにしよう - yigarashiのブログ

    プロダクト開発のアンチパターン プロダクトオーナー(PO)が仕様案を持ってリファインメントや計画に臨み、エンジニアが実現可能性や曖昧さの観点からダメ出しをして手戻りが起こる……スクラムやデュアルトラックアジャイルを志向する組織においては、一度は目にする光景だろうと思います。しかしこれは、以下のふたつの理由からひどいアンチパターンであると言えます。 ひとつには、仕様案を持って臨むPO側の精神的な負担があまりにも大きいやり方だからです。ちゃんとした仕事をしているPOならば、そもそも仕様案なんていう細かいところにたどり着くまでに、とてつもない量の不確実性を捌いてボロボロになっているのです。プロダクトのミッション、戦略、プロダクトゴール、ユーザーの課題、仮説検証の設計、MVPの特定、そういった大上段からのヘビーな分解を繰り返して、ようやくたどり着くのが具体的な仕様案なわけで、それを実装が難しいとか

    エンジニアが仕様案を手戻りさせるアンチパターンはもう終わりにしよう - yigarashiのブログ
    toshikish
    toshikish 2023/11/20
  • パスキーが快適すぎる - yigarashiのブログ

    パスワードレスな認証方式である「パスキー」が急速に普及しています。OS、ブラウザ、パスワード管理ツール、サービス提供者のどれもが整いつつあり、ついに当にパスワードが必要ない世界がやってきたことを感じます。この記事では、腰を入れてパスキーを使い始めて快適になるまでの様子をまとめます。技術的な厳密さ・網羅性には踏み込まず、いちユーザーとしての入門記事という位置付けです。 パスキーとは パスキー - Wikipedia 認証、セキュリティに関しては門外漢なので、Wikipediaのリンクを置いておきます。私よりはWikipediaのほうが信用に足るでしょう。 そこから辿れるホワイトペーパー:マルチデバイス対応FIDO認証資格情報を読むと、多少ストーリーもわかります。FIDO2というデバイスに格納された秘密鍵に依存したパスワードレス認証の仕様に、暗号鍵(と訳されていますが秘密鍵のことで良い……

    パスキーが快適すぎる - yigarashiのブログ
    toshikish
    toshikish 2023/10/13
  • 「 ITエンジニア採用入門」を読んで採用活動の全体像を学ぶ - yigarashiのブログ

    最近エンジニア採用に関わる機会が増えました。エンジニアリングマネージャーとして、採用プロセス全体を機能させチームを組成する能力を獲得したいと考えており、その足掛かりとして面接官の役割を積極的にアサインしてもらっています。それなりの件数をこなして学ぶ土台ができてきた感触があるので、このあたりでエンジニア採用の全体像を学ぼうと考えました。 採用に関する書籍は数多くあり、どれを自分の教科書とするか迷いましたが、以前見つけてブックマークしていたITエンジニア採用入門がよさそうに見えました。自分が関わる採用市場とかなり近い文脈で、具体的な情報がエンジニアの目線から簡潔にまとめられています。全体像を学びたい自分にうってつけの資料です。これが無料で読めるのは当にありがたいことで著者の方には頭が上がりません。 主要な学び EVPとアトラクト ITエンジニアの採用は競争が激しく、採用プロセス全体を通して「

    「 ITエンジニア採用入門」を読んで採用活動の全体像を学ぶ - yigarashiのブログ
    toshikish
    toshikish 2023/08/09
  • マイスキルマップでエンジニアとしての己を見つめ直す - yigarashiのブログ

    最近テックリードのロールを手放し、働き方がEMに近づいた。折に触れてEMになりたいと言ってきたが、だからと言って最初からうまくできるわけもなく、ここ1ヶ月くらいは悶々としながら過ごしている。特に今回困ったのは、自分の現在地がぼんやりしていて漠然と据わりが悪い感触に苛まれている点だ。もう少し課題や方向性を精緻にして、自信を持って前進できる環境をつくりたい。その一環としてマイスキルマップを作ってみたので紹介する。 マイスキルマップへ至る思考 自分が大事にしている心構えのひとつに「練習していないことはできない」というのがある。十を知るには十を聞き、繰り返し実践することでしか一人前にはなれないという、ごくごく当たり前のことだ。この心構えでひとつひとつ丁寧にやっていくのが、ここ5、6年の自分の強みだと思っている。 しかしこの心構えを維持するのは簡単ではない。何かができるようになると、自分の能力のイメ

    マイスキルマップでエンジニアとしての己を見つめ直す - yigarashiのブログ
    toshikish
    toshikish 2023/04/04
  • 安定して成果を出せるエンジニアへの近道 - yigarashiのブログ

    ソフトウェアエンジニアとして安定した成果を出したいと思っている人は多いでしょう。妥当な方針を危なげなく定め、素早く的確に実装し、滞りなく仕事を片付けていきたいものです。しかし、いつでもそのように成果を出せるようになるのは簡単ではありません。言語、ミドルウェア、クラウド、アーキテクチャと、身につけるべき知識が無限に並んでおり、それら全てに習熟する日は永遠に来ないとすら思えてきます。 にもかかわらず、この記事を読むみなさんの同僚には、安定して成果を出せるエンジニアが相当数いるだろうとも思います。これは一体どういうトリックなのでしょう。彼ら彼女らは全てを勉強しているのでしょうか。もちろんそれに近い研鑽を積んでいる人もいるでしょうが、多くの人はそこまでしていないと予想します。少なくとも僕はそこまでやっていませんが、技術面でもそこそこバリューを出して、テックリードを1年勤め上げました。この記事では、

    安定して成果を出せるエンジニアへの近道 - yigarashiのブログ
    toshikish
    toshikish 2023/02/14
  • User Agent文字列を使ったブラウザ判定の事例 2022年版 - yigarashiのブログ

    やむを得ず、User Agent文字列を使って特定のブラウザ向けにJavaScriptの処理を分岐する必要が生まれてしまったので、調査・検討のログを記事にまとめます。 基的にはバッドプラクティスである ユーザーエージェント文字列を用いたブラウザーの判定 - HTTP | MDN まずはMDNがドキュメントを公開しているので読みましょう。要点は以下です。 基的にUser Agent文字列に基づいて処理を出し分けるのはバッドプラクティス 多くのケースではUser Agent文字列を使うよりも良い手段がある 例えば特定の機能の実装状況に基づく分岐を行いたければそれを直接検出する それでもやむを得ない場合、User Agent文字列からブラウザ名、レンダリングエンジン、バージョン、OS、端末といった情報を取得することができる ただし各ブラウザのUser Agent文字列は嘘をついていることもあ

    User Agent文字列を使ったブラウザ判定の事例 2022年版 - yigarashiのブログ
    toshikish
    toshikish 2022/06/27
  • Four Keysがなぜ重要なのか - 開発チームのパフォーマンスを改善する方法について - yigarashiのブログ

    ソフトウェアエンジニアとして働き始めて以来、ずっとソフトウェアデリバリーのパフォーマンスに興味を持って、さまざまな改善活動をしてきた。当初はスクラムを中心としたプロセスの改善に注力したが、最近はチームの成熟に伴って技術的なプラクティスに興味が移りつつある。より広い視点からデリバリーについて考えるのは非常に楽しい仕事だ。 デリバリーのパフォーマンスを改善していくには、定量指標として確立されたFour Keysを計測し改善するのが業界標準となりつつある。恥ずかしながら、私はこれまでこのFour Keysが腹落ちせず、積極的に計測してこなかった。しかし、多方面に興味が向いて知識や経験が蓄積するにつれて、猛烈にFour Keysの重要性が腹落ちしてきた。この記事では、現時点における自分のFour Keysに関する理解と解釈を整理してみようと思う。 Four Keysとは Four Keysの妥当性

    Four Keysがなぜ重要なのか - 開発チームのパフォーマンスを改善する方法について - yigarashiのブログ
    toshikish
    toshikish 2022/05/30
  • チームのベロシティを上げる vs. 安定させる - yigarashiのブログ

    タイトルの議論はよく見られるもので、スクラムコーチの間ですら(一見すると)意見が分かれることがあるようです。自分は「安定させる」派だったのですが、CSPO研修を受講したチームのPOが「上げる」派のコーチングを受けてきて、改めてチームとしてどういうスタンスを取るか考える機会を得ました。結論から言ってしまうと、そもそもこれは二項対立ではなく、「上げる」派の人も「(安定させた上で)上げる」と言っているだけで、単に目指している高さが違うだけだろうと解釈しました。その上で、チームの現状に合わせて適切な目標設定をすれば良いと考えました。以下でもう少し掘り下げてみます。 大前提 まずソフトウェア開発の大前提として、開発チームには常にベロシティを下げる方向に様々な力がかかっています。これは「変化」と呼ばれて恐れられ、プロダクトや開発チームに次々と襲い掛かります。例えば以下のようなものです。 市場が求めるも

    チームのベロシティを上げる vs. 安定させる - yigarashiのブログ
    toshikish
    toshikish 2022/04/26
  • 「エラスティックリーダーシップ」でソフトウェア開発をうまくリードする方法を考える - yigarashiのブログ

    僕にはリーダーシップがわからない。 しかし無策で取り組むべきでないことだけはわかる。 ということで、自分の周囲で共通言語としてよく参照されている「エラスティックリーダーシップ」を読むことにした。自分は新米リーダーとして困りをたくさん抱えているのだが、そこから脱出するための知見が山のように書いてあった。適用しやすいシンプルな枠組みや考え方が提示されていて、最高のリーダー、そして最高のチームを目指して頑張ろうという気になった。初版は2017年5月で今さら感もあるが、学んだことや考えたことを整理してみる。 エラスティックリーダーシップモデル ここが書の中心であり一番有名なところだと思う。チームにはサバイバルモード、学習モード、自己組織化モードの3種類があり、それぞれでリーダーは異なるリーダーシップを発揮するべきというもの。具体的には、サバイバルモードであれば指揮統制でチームが学習する余裕を生み

    「エラスティックリーダーシップ」でソフトウェア開発をうまくリードする方法を考える - yigarashiのブログ
    toshikish
    toshikish 2022/04/06
  • がんばりすぎないふりかえりのススメ - yigarashiのブログ

    がんばりすぎてふりかえりを嫌いになった 自分たちのやりかたを検査して改善するふりかえり。巷には様々な思想やフレークワークが出回っています。チームからうまく情報を引き出したり、教訓に昇華したり、SMARTなアクションを設定することも大事です。そういう情報がどんどん襲ってきて、しっかり会を設計してバリューの高いふりかえりをやらなければという気になってきます。 それで工夫して上手くいくなら良いですが、自分にとってはあまり良い道標として機能しませんでした。会を頑張って設計しても、そもそも参加者が喋ってくれなかったり、ファシリテーターと1対1の会話が起こるだけになったりして、手応えを得られないことが多くありました。それでもちゃんとバリューを出さなければと焦って、なんとかアクションをまとめたり、無理やり教訓ということにしてチームのドキュメントに追記したりしていました。そういうぎこちない会を回すのはとに

    がんばりすぎないふりかえりのススメ - yigarashiのブログ
    toshikish
    toshikish 2022/04/05
  • テックリードとしてシステムの未来を示して品質の期待を合わせる - yigarashiのブログ

    最近チームのテックリードを拝命して、テクノロジーマネジメント領域もリードすることになりました。興味の中心は開発プロセスやデリバリーで、エンジニアリングはまだまだひよっこなので苦労の日々が続いています。この記事では新米テックリードとしての取り組みをひとつ紹介します。 私のチームでは10個近いコンポーネントのオーナーシップを持っています。それらの品質の期待度は大きく異なり、変更頻度、採用技術、システムに占める重要度といったパラメータから決定されます。この期待を見誤ると、変更頻度が極めて低いコンポーネントを頑張ってリファクタリングしたり、モダンな技術が採用され寿命の長いシステムを雑に拡張したりと、成果の小さいアクションを取ってしまいます。逆にこの期待を適切に捉えられると、チームのリソースがコスパが高いアクションに向かっていくことが期待できます。変更頻度の高いコンポーネントのCI/CDを改善し、重

    テックリードとしてシステムの未来を示して品質の期待を合わせる - yigarashiのブログ
    toshikish
    toshikish 2022/03/10
  • エンジニアの異動は推奨すべきなのか? - 組織の成長について考える - yigarashiのブログ

    最近エンジニアの異動について軽く議論することがありました。自分はチームの安定性の側面からやや否定的な立場だったのですが、その議論で刺激を受けて周辺領域も含めて考え直したところ、組織の成長という軸で色々な知識がつながって面白かったのでまとめてみます。 議論の前提 異動も含めてエンジニア組織について考える時、まずは外せない前提がひとつあると思います。それは、安定したチームないしバリューストリームを維持することです。「チームトポロジー」の3章では以下の言葉を引用し、複雑なシステムの開発にはチームの効果的なパフォーマンスが欠かせないことを論じています。 ハイパフォーマンスなチームを解散するのは、単なる破壊行為では済まない。企業レベルのサイコパスと呼ぶべきものだ。 現代のソフトウェア開発の変化速度や複雑性に対処するには個人では限界があり、チームとしての活動が欠かせません。チームメンバー間で強い信頼関

    エンジニアの異動は推奨すべきなのか? - 組織の成長について考える - yigarashiのブログ
    toshikish
    toshikish 2022/01/31
  • エンジニアリングマネージャーを目指す若者の戦略 - yigarashiのブログ

    企業でWebアプリケーションエンジニアとして働き始めて2年と4ヶ月ほど経ちました。様々な仕事を経て、自分が向いていることや楽しく感じることが徐々に明らかになり、数年後になりたい像がぼんやりと浮かび上がってきました。そして、その将来像が世間的には「エンジニアリングマネージャー」(以降EM)と呼ばれていることもわかってきました。この記事では、EMについて自分が周囲から受け取った知識を整理するとともに、そこに向けてどんな戦略を取ろうとしているかをまとめてみます。マネージャーというとネガティブなイメージも拭えませんが、EMは年を重ねて吸い込まれるものではなく、積極的に取りに行くに値する面白いポジションであると思います。この記事を読んでEMに魅力を感じる同世代の仲間が増えると嬉しく思います。 EMについての理解 エンジニアリングマネージャーという職務についてのオーバービューは、広木大地さんによるエン

    エンジニアリングマネージャーを目指す若者の戦略 - yigarashiのブログ
    toshikish
    toshikish 2021/08/02
  • KPTのKがいまいち膨らまないチームに贈るパワフルな質問 - yigarashiのブログ

    ふりかえりでKPTのようなポジティブ/ネガティブな話題を出すような手法を使っていると、悪いところの掘り下げはサクサクできる一方で、良いところをうまく膨らませるのが意外と難しいように思います。書いた人に話してもらって、ファシリテーターが「いいですね」とコメントして終わりとか、「コメントないですか」と聞いて誰も話さなくて終わりとか、そういった場面を見たことがある人は多いんじゃないかと思います。悪いところを解決するのは慣れていても、良いところを伸ばすための道具箱が空っぽという状態ですね。 そんなチームの最初の道具として次の質問を贈ります。 それがうまくいった要因は何かありますか? これです。なんとかのひとつ覚えで良いので、ちょっとでも話が広がらないなと感じたら、まずはこれを聞いてみると良いです。この質問が優れているのは、出来事や人の経験から単刀直入にプラクティスを抽出できることです。何か聞き

    KPTのKがいまいち膨らまないチームに贈るパワフルな質問 - yigarashiのブログ
    toshikish
    toshikish 2021/05/12
  • VSCodeで複数リポジトリを扱うなら結局Open Recentコマンドが最強という話 - yigarashiのブログ

    大学時代から長らくEmacsで暮らしていたのですが、最近ついにVSCodeに完全移行しました。各種設定やプラグインのエコシステムが使いやすかったり、コマンドパレットの感じがEmacsに似ていたりしていい感じです。 そんなVSCode、基的には1フォルダ1ウィンドウの世界観なので、大量のリポジトリを相手にするときに困りがちです。何も考えずにフォルダを開いていくとウィンドウが散らかって生産性がどんどん下がります。典型的な解決策としてWorkspace機能がよく紹介されますが、以下の理由から個人的にはあまりフィットしませんでした。 仕事で扱うリポジトリは巨大なものが多く、それをひとつのウィンドウにいくつも押し込めてしまうと複雑すぎて手に負えない ひとつのウィンドウで複数リポジトリのファイルを開けてしまうというのも厄介で今度はタブの管理が大変になる Workspaceの設定は基的に手動管理なの

    VSCodeで複数リポジトリを扱うなら結局Open Recentコマンドが最強という話 - yigarashiのブログ
    toshikish
    toshikish 2021/04/30
  • 『正しいものを正しくつくる』を読んだ - yigarashiのブログ

    会社の人がおすすめしていた正しいものを正しくつくるを読みました。その読書感想文です。 書のざっくりとした主張としては、仮説検証を繰り返すことによって「正しいもの」つまりユーザーにとって価値のあるプロダクトを探索し、それを「正しく」つまり不確実性をコントロールしやすいようにアジャイルに作りましょうということ。特に後者のアジャイルな開発についてはフレームワークとしてスクラムが厚く紹介されています。また、帯に「あるいはアジャイルのその先について」とあるように、素朴にアジャイル開発を適用した際の困難とその対応策が議論されています。書の貢献は特にこの「アジャイルのその先」についての議論でしょう。その中で、自分の体験とも絡む特に印象に残った議論を少し掘り下げます。 問題の出発点は、スクラムにおけるプロダクトオーナーに機能が集中しすぎており、そこに期待を押し込めて分断してしまってはチームのパフォーマ

    『正しいものを正しくつくる』を読んだ - yigarashiのブログ
    toshikish
    toshikish 2020/08/09
  • GraphQL API を悪意あるクエリから守る手法 - yigarashiのブログ

    実サービスで GraphQL API をインターネットに公開する際は、悪意あるクエリに対する防衛が欠かせません。この記事における「悪意あるクエリ」とはサービスに意図的に負荷をかけるクエリのことです。GraphQL では 、木構造や再帰的な構造を利用して、一回のクエリで容易に数百万・数千万件のデータを取得することができます。そのようなクエリを実行してしまうと、アプリケーションサーバーや、その後ろにいる別のサービスに甚大な負荷がかかります。これは攻撃者からしてみれば恰好の的で、なんらか対策を講じる必要があります。 幸いこうした問題はよく知られており、クエリを静的に解析するライブラリがいくつか存在します。しかし、そうしたライブラリをどう使うかといったことはあまり議論されておらず、効果的な対策を行うのは依然として難しい状況だと感じます。この記事では、典型的な負荷の高いクエリとその具体的な対策を紹介

    GraphQL API を悪意あるクエリから守る手法 - yigarashiのブログ
    toshikish
    toshikish 2020/05/07
  • 見積もりの基礎知識と「ストーリーポイント vs 理想日」の考察 - yigarashiのブログ

    昨年の10月頃から締め切りのある大きなプロジェクトに参加し、部分的にではありますがプロジェクトマネジメントを担当しました。この記事では、その業務を通して得た見積もりに関する知見をまとめます。教科書的な知識は「アジャイルな見積もりと計画づくり」に依りますので、詳しくはそちらをご参照ください。 見積もりの基礎知識 見積もりは、提供したい機能をどれくらいの期間で実装できるかを予想し、計画について議論をするために行います。見積もりを行うことによって、全くアタリがつかない状態から、「プロジェクトのフェーズがこの辺りなので、平均で N 週間、最悪で 2N 週間くらいかかる可能性があります」などと答えられるようになります。さらに、プロジェクトのフェーズが進んで不確実性が減少すれば「平均で M 週間、最悪で M+1 週間くらいかかります」と答えを正確にできるかもしれません。まさにこれが「アジャイルな計画づ

    見積もりの基礎知識と「ストーリーポイント vs 理想日」の考察 - yigarashiのブログ
    toshikish
    toshikish 2020/04/11
  • 1