Upgrade to Pro — share decks privately, control downloads, hide ads and more …

デザインから逆算して難易度を見積もるための観点

 デザインから逆算して難易度を見積もるための観点

2/5に開催された『みんなのアジャイル』発売記念LT大会 in 虎ノ門でのLT資料になります。

Fumiya Sakai

February 05, 2025
Tweet

More Decks by Fumiya Sakai

Other Decks in Technology

Transcript

  1. 自己紹介 ・Fumiya Sakai ・Mobile Application Engineer アカウント: ・Twitter: https://twitter.com/fumiyasac ・Facebook:

    https://www.facebook.com/fumiya.sakai.37 ・Github: https://github.com/fumiyasac ・Qiita: https://qiita.com/fumiyasac@github 発表者: ・Born on September 21, 1984 これまでの歩み: Web Designer 2008 ~ 2010 Web Engineer 2012 ~ 2016 App Engineer 2017 ~ Now iOS / Android / sometimes Flutter
  2. モバイルアプリ開発において難易度を見積もる際に重要な観点を整理する(1) 観点は様々ありますが、見積もりの際に特に重要なものをピックアップしました 😀 1. UIコンポーネントの複雑さ 2. プラットフォーム間の差異 3. データフローとステート管理 4.

    パフォーマンスへの影響 5. API連携とデータ同期 標準のまま or カスタムの必要 / AnimationやLayoutの複雑さ / 複雑なInteraction / 階層構造 UIガイドライン / プラットフォーム固有機能 / デバイス毎の画面やアスペクト比 データフローと状態管理の複雑さ(※複数の依存関係がどの様に絡むか?) 大量データの取り扱い / 画像処理 / 動画再生(重い処理)、Background処理 / Push通知(応答性) 必要なAPI呼び出し数・データの同期方法(ネットワーク不安定時・オフライン時・データ競合防止) 特にUI実装に直結する ような項目を列挙 ※本書でフォーカスしている点 ※本書でフォーカスしている点
  3. モバイルアプリ開発において難易度を見積もる際に重要な観点を整理する(2) 観点は様々ありますが、見積もりの際に特に重要なものをピックアップしました 🧐 6. セキュリティ要件 7. アクセシビリティ対応 8. ローカライゼーション 9.

    テスト容易性 10. メンテナンス性と拡張性 ユーザー認証 / データ暗号化 / Secure Storage(実装の複雑さに影響を及ぼす可能性がある点) 色コントラスト比 / 音声読み上げ機能 / Touch Target Size(使いやすさの考慮に関する要件) 多言語対応 / RTL / 地域ごとの法的要件や文化的配慮(グローバル展開を視野に入れた場合) ユニットテスト / UIテスト(実装のしやすさ)・エッジケースや異常系(テストシナリオ設計) コードの再利用性 / 将来的な機能追加や変更のしやすさ(長期的なプロジェクト成功の想定) 機能要件や仕様次第で はUI実装に影響する可 能性がある項目を列挙
  4. iOS/AndroidそれぞれのUI実装観点からの重要性 iOS/Android両方の難易度を見積もる上で重要な観点をピックアップしました 1. コンポーネント単位で見た時の方針選択 2. iOS/Android間における考え方の相違点 3. カスタムUIコンポーネントの実装 4. アニメーションとトランジション

    5. システムUIとの統合 一見すると同じ様な見 た目や体験が同じ様に 見えても注意が必要。 ・UIコンポーネントの複雑さ ・プラットフォーム間の差異 6. アプリのライフサイクルの違い iOS/Androidの両方のUIガイドライン(iOS: Human Interface Guideline/Android: Material Design)、 レイアウトエンジン、ナビゲーションパターン等の違いを事前に把握することによって、各プラット フォームに応じた開発タスクの見積もりを正確に行う際の手助けになる。
  5. アジャイル開発の観点からiOS/Androidでの類似点・相違点を押さえる この様な動きをするために普段から心がけておくと良いポイント 1. 定期的な公式ドキュメントの確認・新機能やデザインの変更点の共有 2. 両プラットフォームに共通する部分と独自に調整すべき部分の明確化 3. プロトタイプ段階でアニメーション・インタラクションの確認 4. iOS/AndroidのUI処理における相違点やアプリケーションとの調和の確認

    5. 定期的なデザインレビューやユーザビリティテストの実施 チームで実際に発生し た問題や事例を共有す る機会を積極的に創出 ・スプリント計画の精度向上 ・リスク早期特定と問題対処 6. 各プラットフォームにおける実装の課題や成功事例の共有 - 各プラットフォームのガイドラインやベストプラクティスにできるだけ従う - 同じ機能でもプラットフォームによって実装アプローチが異なる場合がある点に注意する - ユーザー体験を損なわないよう、各プラットフォームの特性を理解した上で設計・実装する
  6. なぜこの観点がアジャイル開発において重要だと考えるか? アジャイル開発の特性や目指す成果と密接に関係すると考えています 1. 迅速なフィードバックサイクルの促進 2. 優先順位の明確化とスコープ管理 3. チームの共通理解と連携の強化 4. リスク管理と技術的負債の抑制

    5. 持続可能なペースの確保 デザイナーとエンジニ アだけではなく関連す る職種の皆様と一緒に ・Communication ・Collaboration 6. ユーザー価値の最大化 デザインから逆算して難易度を見積もる観点は、スムーズなスプリント計画、リスクの早期発見、チー ム全体の連携、持続可能な開発ペースの維持、そしてユーザー価値の最大化に直結します。これらはア ジャイル開発の成功に欠かせない要素であり、結果として全体効率や品質向上にもつながります。