Building Better People: How to give real-time feedback that sticks.
依頼、調整、合意、承認、etc. こういったコミュニケーションがチーム境界を越えて頻発すると、ソフトウェアプロダクト開発のフローは遅々として進まなくなります。いずれも、機能追加や機能改善を進める上でのクリティカルパスを引き伸ばす要因を生み出すからです。 機能追加や機能改善といったひとつひとつの開発は、アイデアを生み出し、それを価値に変えるまでのフローです。フローが進む過程で、組織内の様々な人の手で、様々なタスクが実行されます。その全てを1つのチームで完結することは、プロダクトの規模が大きくなるほど困難になり、より多くの人々が関わるようになります。そこに、チーム境界を越えた「依頼、調整、合意、承認」といったコミュニケーションが発生するのです。 開発フローのクリティカルパスを悪化させるこのようなコミュニケーションの頻度をどれだけ減らせるか。組織設計、チーム設計で最も注視すべき観点の1つは、そこ
『タスク偏重のデザインはなぜ生まれるのか?』の続きです。 簡単だから 画面を見て悩むデザイナーが「全体はよくわからないから別にしてこの中だけ作るか」と言いながらボタンの先に画面を連ねようとしている オブジェクト指向のUIにするには手順を解体し、オブジェクトを中心に構造化する必要があります。重複しているものはマージし、必要に応じて新しいオブジェクトを定義したり新しいイディオムを検討することもあります。 (例:「簡単に新規作成する」という機能に対して複製、テンプレート、マスターというイディオムを検討する) これらはそれまで作ってきたものとうまく整合するようにしなければいけませんし、整合しないならどこをやめたら全体としてひとつの形にできるのか考えることになります。これは大変です。 対してタスク指向のUIデザインは簡単です。 新しいタスク用に新しい入り口を作って、必要な入出力を線形に並べ、例えばウ
1. マイクロサービスアーキテクチャ マイクロサービスは、独立した小さなサービス群でソフトウェアを構築するアーキテクチャです。これにより、迅速なイノベーションと新機能の迅速な展開が可能となります。一方、モノリシックアーキテクチャは、全てが一つのサービスとして結合され、変更や障害が全体に影響を及ぼしやすいです。マイクロサービスは独立して動作するため、各サービスのアップデートやスケールが容易です。特徴として、自律性、特殊化、俊敏性、スケーリングの柔軟性、容易なデプロイ、技術的自由、コードの再利用、耐障害性が挙げられます。 マイクロサービスの概要に関しては以下の記事が非常にわかりやすくシンプルにまとめられているので、ぜひ読んで頂くのがベストです。なお、本記事ではマイクロサービス支えるアーキテクチャ・技術をAWSのリソースに絞って紹介します。 (1)API Gateway パターン API ゲート
SPAやモバイルアプリから利用するAPIを開発する際の、トークン認証のお話です。 どの認証ライブラリを使うべきという話ではなく、トークン認証の論理的な設計について考察します。 私自身も結論が出ていないので、色んな意見が聞けると嬉しいです。 出発点 ユーザテーブルにアクセストークンを持つのが最も安直な発想だと思います。 ログイン成功時にアクセストークンを発行し、該当ユーザレコードにセット。 同時に有効期限もセットします。 認証時には、アクセストークンが存在し有効期限内であれば、認証を通過させ、 そうでなければ認証失敗とします。 ログアウト時には、該当ユーザレコードのアクセストークンを空にします。 発行日時を持ち、システム内に定義された有効期間をもとに、認証時に計算する方法もあると思います。 Laravel Sanctum 等はそういう実装です(しかもデフォルトでは有効期限なし)。 有効かどう
不正アクセスによるIDとパスワードの漏洩を受けて、MD5によるハッシュ化について話題になっていました。システムを作る上で、パスワードの管理や認証はどう設計すべきかを考えるために、少し整理をしてみます。もし事実誤認があれば、どしどしご指摘ください。 == 2023/8/21追記 == この記事は、ハッシュの保存の仕方一つとっても、沢山の対策方法が必要であるということをお伝えするために記載しています。そして、これから紹介する手法を取れば安全とお勧めしている訳ではないので、その点をご留意いただければと思います。攻撃手法に応じての対応策の変遷を知っていただくことで、セキュリティ対策は一度行えば安全というものではないことを知って頂くキッカケになれば幸いです。 == 追記終わり == パスワードのハッシュ化 まず最初にパスワードの保存方法です。何も加工しないで平文で保存するのは駄目というのは、だいぶ認
2023/5/23開催「オブザーバビリティ最前線 〜 事例LTから学ぶ、オブザーバビリティの成熟度〜」
などの領域を経験しました。 その中で様々なプロジェクトで開発サイド、ビジネスサイドにおいて色んな職種の人と一緒に仕事して、 それぞれの考え方や悩みを見て聞いてきました。 (自分も皆さんに大変お世話になって、おかげて成長してこられました。とても感謝です(❁´ω`❁)!) 今度はEMになって開発組織の成長に取り組むチャンスを頂き、責任をもって、皆さんが認める良い開発組織を作って行きたいと思います。 「良い開発組織とは」 に対して会社の文化、携わる事業の内容、目標によって理想な姿が様々なので、正解はないと思いますが、色々模索中の中、ソフトウェア設計思想から、「生産性、メンテナンス性性、拡張性」を軸に考えたら、いい組織設計のヒントになるのではないかと思いました。 本記事は ソフトウェア設計思想「SOLID原則」から開発組織設計に適用したらどうなるか? とのお題でお話させて頂きたいと思います。 また
こんにちは, プロダクト開発部の今村です. ここ一年ほど, 主にグノシーのプッシュ通知基盤の部分的なリプレイスや機能追加をしていました. この記事ではプッシュ基盤の構成を紹介したいと思います. 概要 FCMのAPIを呼び出す部分 サーバーのスケーリング 送信対象の読み込み 送信の流れ その他の工夫 重複配信の防止 パフォーマンス調整 おわりに 概要 まずはプッシュ通知の種類を整理します. 今回扱うのは, 多数のユーザーに同じ内容を送るような通知です. 重要なニュースが発生したときに送る速報や, キャンペーン情報の通知などが該当します. 対照的に, ユーザーごとに異なる内容を送る通知もあります. 例えば社内で定時プッシュと呼ばれている機能では, ユーザーごとにパーソナライズされた記事を毎日決まった時間に送ります. このような通知はこの記事では (ほぼ) 扱いません. プッシュ通知基盤に求めら
はじめに この記事は10X 創業6周年アドベントカレンダーの15日目の記事になります。 昨日はアプリケーション開発部のjojoさん*1が、「10Xに入社した、そして4ヶ月後…」という記事を公開しています。 本記事では2023年5月に10Xに入社した私が、入社1ヶ月目に実際に行った、ソフトウェアテストプロセス(以下、テストプロセスと表記)に基づいたテストケース作成についてお話しします。 目次 はじめに 目次 テストプロセスに基づいたテストケース作成を行おうとしたきっかけ 前提:プロセスとは何か? プロセスの例 テストプロセスを考えよう 今回定義したテストプロセス テスト分析 テスト対象分析 テスト要求分析 テスト設計技法の選択 テスト設計 テスト実装 記事冒頭の例が分かりづらかった理由 実際に適用した例 レビュー内容 今後の展望 おわりに テストプロセスに基づいたテストケース作成を行おうとし
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
昔から、「OpenIDは認証でOAuthは認可だ」などということが言われます。しかし、その言語の意味を取り違えている方が結構多い気がしています。「もうOpenIDなんていらね。OAuthだけでいいじゃん」というような言説がよく流れてくるのがその証拠だと思います。OAuth認証というのもその類ですね。 そこで、今日はOAuthとOpenIDの違いを考えてみたいと思います。 OpenIDは紹介状、OAuthは合鍵 まずはOpenIDの概要の復習です。「OpenIDは認証」という言葉の内容をまずは復習してみましょう。 「認証」とは大変広い言葉でいろいろな場面で使われますが、「OpenIDは認証」という使い方の時は、「OpenIDは、いま来ている人の身元を認証」(ユーザ認証)という意味です。図にすると図1のような流れになります。 この例では、有栖さんがお客としてサービス提供をしているサイトである伊
はじめに Terraformとは、「Infrastructure as Code」を行うツールで、例えば、AWSリソースをコードベースで作成できたりします。「Infrastructure as Code」を行うツールは、たくさんありますが、Terraformでは「モジュール」という機能があります。 このモジュールと言う機能は、ソースコードをテンプレート化して、パラメータを開発用と、本番用で分けることでソースコードを再利用しながら2環境つくれるような機能です。(ざっくり言うと) ただ、そのモジュールの構成について正解は無くネット上でも色んな構成であふれています。 なので、今回は、以下のAWSのCloudFormationのBlackBeltやGCPの記事を参考に、モジュールを使いテンプレート分割する(作成単位をアプリケーションやログとかの運用で分ける感じ)アーキテクチャでリソースを作成し、以
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近、IT業界における「心理的安全性」の重要さは広く知られるものとなってきました。 一方で、心理的安全性が誤解・誤用されるケースも見聞きすることもあります。 よくあるパターンは、「心理的安全性」とは「居心地の良さ」である、という認識でしょうか。なんとなく似た意味にも感じますが、実際はまったく別物です。 しかし上記の違いを説明するのはちょっと大変なため、『心理的安全性 最強の教科書』を頼りながら要点を押さえてみようと思います。 心理的安全性は「ゴール」ではない まず心理的安全性とはなぜ必要なのでしょうか。本書は次のように説明しています。
ソフトウェア開発における品質のメトリクスについて、新旧2冊の本を比べてみました。 1冊は、『初めて学ぶソフトウェアメトリクス』。 原著『Five Core Metrics: The Intelligence Behind Successful Software Management』(Lawrence H. Putnam、Ware Myers著)は、2003年に出版されています*1。 初めて学ぶソフトウエアメトリクス~プロジェクト見積もりのためのデータの導き方 作者:ローレンス・H・パトナム,ウエア・マイヤーズ日経BPAmazon もう1冊は、『アジャイルメトリクス』。 原著『Agile Metrics in Action: How to measure and improve team performance』(Christopher W. H. Davis著)は、2015年に出版されて
今年のGWや夏休みは旅行を計画している人も多いのでは?そんな楽しい瞬間を切り取るのに必須なのはカメラですよね。でも、いざ撮影をしてみるとおしゃれな写真がとれず残念な思いをする……なんてことも。 そこでおすすめなのがiPhone。最新機種のiPhone 14 Pro & iPhone 14 Pro Maxでは多くの革新的な機能が追加され、カメラの性能も格段にアップ。サッと取り出して撮っただけなのに、すてきな写真が撮れるんです! 今回はiPhone14Proと一緒に京都フォトトリップに行ってきました。プロから教わる撮影テクニックも紹介!旅先でもすぐに実践できることばかり、ぜひチェックしてください。 ◎iPhone 14 Pro & iPhone 14 Pro Maxの詳細は公式HPをご覧ください iPhone 14 Proで最初にやっておくべきカメラの設定 まずは、iPhone 14 Proで
ReactのuseEffectは、フックの中でも使い方が難しいものの一つです。そこで、この記事では筆者が考えるuseEffectの望ましい使い方を皆さんに伝授します。 基本原則 技術やその要素の使い方を考えるにあたって、筆者が好んでいるのは基本原則を置いてそれに基づいて判断することです。ということで、この記事ではまず筆者が考えるReactの基本原則を紹介します。 筆者がもっとも重要視する原則は、ReactはUIライブラリであるということです。つまり、ReactにはUIの管理をさせるべきであって、その他のことはReactの役目ではないということです。Reactが難しいと思う人がいる場合、何でもかんでもReactにやらせようとするから余計に難しくなっているのだと思います。 例えばアプリケーションのロジックの管理やそれに付随するステートの管理はReactの役目ではないので、Reactの外部で処理
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く