Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
バグを減らすための要件定義, 要求定義
Search
Masato Takayama
March 07, 2025
Business
45
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
バグを減らすための要件定義, 要求定義
非エンジニアへ向けた社内発表資料
Masato Takayama
March 07, 2025
Other Decks in Business
See All in Business
KOWRO / IDOL CAST 会社・サービス紹介
kuni29
0
160
[AWS大喜利]こんなアーキテクチャは嫌だ ~コスト編~
kazuma777777
1
830
三井物産グループのデジタル証券~文京区目白台・学生レジデンス~徹底解説セミナー
c0rp_mdm
PRO
0
510
Steamで売れないゲームに共通する失敗パターン
hirohasuyoutube
0
310
ARI_BXデザイン第2事業ドメイン_事業紹介資料
arid2
0
790
会社説明資料
xinghr
0
3.7k
KEELLプロダクト紹介資料_202610
shunsuke_takeuchi
PRO
0
200
株式会社kanaL|会社紹介資料(Company Deck 2026)
tamagakiyuya
0
170
【株式会社カオナビ】会社紹介資料 for business / kaonavi/introduction-for-business
kaonavi
0
87k
株式会社デライト 会社紹介資料
ikmwatanabe
0
190
Crisp Code inc.|わたしたちの事例 / 実績 - Works
so_kotani
0
2.4k
株式会社KINS 採用ピッチ資料 2026
kinsofficial
1
320
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Docker and Python
trallard
47
4.2k
Prompt Engineering for Job Search
mfonobong
0
520
For a Future-Friendly Web
brad_frost
184
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.3k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Side Projects
sachag
456
43k
Are puppies a ranking factor?
jonoalderson
2
4.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Transcript
Re: バグのない開発をめざして
そもそもバグって? ~ 実際のケースにあてはめてみよう~ いまのシステムで⽣徒の成績も 管理できたらいいのになあ そんなんちゃちゃっとやって すぐですよw
⽣徒の成績管理機能を追加してほ しいんだけど, これくらいならす ぐできるよね? なんか⽣徒の成績⼊⼒したら平均 もでて通知もできるみたいな笑 まあそんなに難しくないと思い ますけど(適当)
実装&テスト後にリリースした機能 - 教員が⽣徒ごとに成績を⼊⼒できる機能 - 成績を⾃動で集計し、平均点や合計点を出⼒する機能 - 教員と校⻑で権限を分ける機能 - 校⻑のみが全クラスの成績を閲覧できる機能 -
成績が悪い⽣徒に通知をする機能
1. 成績の⼊⼒後に編集は不可能 2. 成績の平均点が正しくない 3. 教員が別クラスの⽣徒の成績を編集可能 4. 教員が⼊⼒した成績データの反映に最低1分かかる 5. 年度が更新されたとき前年度のデータは上書きされる
6. 平均の算出時に平均以下の⽣徒と保護者へ⾃動で通知を⾏う Q: これらの機能が以下の振る舞いをする場合 このなかでバグと⾔えるものはどれでしょう? すべて期待していた動作とは異なるとする
A: 全部バグ 期待と異なれば全部バグ コーディングのバグ(ミス) 成績の保存はできるが編集は不可能 教員が別クラスの⽣徒の成績を編集可能 年度が更新されたとき前年度のデータは上書きされる 平均の算出時に平均以下の⽣徒へ⾃動で通知を⾏う 成績の平均点が正しくない パフォーマンスのバグ(ミス)
教員が⼊⼒した成績データの反映に最低1分かかる 設計のバグ(ミス)
要件定義で防げた 要件定義では防げない 1. 成績の保存はできるが編集は不可能 2. 教員が別クラスの⽣徒の成績を編集可能 3. 年度が更新されたとき前年度のデータは上書きされる 4. 平均の算出時に平均以下の⽣徒へ⾃動で通知を⾏う
1. 成績の平均点が正しくない 2. 教員が⼊⼒した成績データの反映に最低1分かかる パフォーマンス要件をたてれば 要件定義で防げたとも⾔える
要件定義の重要性について
要件定義って? https://breezegroup.co.jp/202106/systemdevelopment-lifecycle/より
要件定義って? 要望と要求と要件の違い 要望 ユーザーやステークホルダーの希望や期待 なにをしたいか, それはなぜか 要件 要求をシステムとしてどう実現するかの解決⽅法 要求 要望をより具体的にしたもの
要望を達成するために何が必要か洗い出したもの
要件定義って? マイホームで例えると 要望 家をたてたい 結婚して⼦どもができたら2LDKじゃ狭い 要件 要求 ⼦どもの様⼦を⾒ながら料理したい ⼤きなテレビを置きたい 仕事⽤のプライベート空間がほしい
4LDK, リビング15畳,アイランドキッチン, 天井の⾼さ2m,窓の数3つ,窓の種類
成績⼊⼒機能 - ⽣徒毎に9教科の定期テストの成績(0から100までの数値)を⼊⼒できる - 権限のある教員のみが⼊⼒できる - ⼊⼒した成績は修正可能とする - ⼊⼒したデータは即座に保存・反映される(N秒以内) 教員が⽣徒ごとに成績を⼊⼒できる機能とは?
要件定義例(⼀部) もちろんこれが正解ではない
要件定義例(⼀部) もちろんこれが正解ではない 通知機能 - クラス平均を下回った⽣徒に通知ボタンを表⽰ - ⽣徒ごとに個別に通知を⾏うことができる - 対象の⽣徒全員にまとめて通知を⾏うことができる -
通知内容は以下テンプレートからの選択とする - もっと頑張って - ~~~~~~ - ~~~~~ - ⽣徒への通知時に保護者にも⾃動で通知する設定を⾏うことができる - 保護者通知の設定は⽣徒ごとに個別に設定が可能とする 成績が悪い⽣徒に通知をする機能とは?
教員が⽣徒ごとに成績を⼊⼒できるぞ テストOKだな, ヨシ! 確認してもらってOKならリリースします 要件が明確ならテストの質もあがる ステークホルダー間での明確な合意もなく 正しい振る舞いへの理解があやふやであれば ⾃ずとテストの質は低くなる況やテストケースの質をや なんかバグってて編集できないんですけど 他の先⽣も閲覧できちゃうんですけど
⼀体どこをテストしたの?
要件定義の質が低いと - 開発時に仕様の解釈がブレる - テストケースが作成しにくい - 予算・スケジュールが守れない - 保守性の低下
要求定義の重要性について
あーそういう機能も必要なんですね それだとプラス1ヶ⽉はかかりますね 難しくないって⾔ったよね? すぐできるって先⽅に伝えちゃったよ... どうすんだよこれ...
https://biz-journal.jp/company/post_386528.html NHK この機能がないと使い物にならない 無償で今すぐ修正して そっちの瑕疵ね ⽇本IBM 仕様書にはそんなもの書いていないが?
開発に残業してもらって 1週間で出来上がったぞ これで先⽅も⼤満⾜だな うーん...まあいいんだけど 実務的にはクラス毎の成績分布とか 偏差値を⾃動で出すとか マーク模試,記述模試への⼊⼒に 対応するとかの機能がないとねえ...
@開発部 クラスごとに偏差値と成績分布をだして 定期テスト以外に模試も対応してくださ い3⽉末までにお願いします to be continued… わかりました 偏差値と成績分布...どこにだ..? 成績分布ってなんだ...?
模試に対応って具体的にどういう状態...? なぜこの機能が必要なのか分からないし 業務フローもないから 何を作ればユーザーが価値を感じるのか 全くわからない...
どうして先⽣は満⾜しなかった? ⼿段と⽬的を⾒誤るな 最近, 我が校全体の成績低下が問題です 各教員は教育⽅針の改善⽅法を考えて 実は学校の本質的な⽬的は「⽣徒の成績を記録すること」 ではなく「成績データを分析して教育⽅針を改善すること」でした 先⽣は「成績データを分析して教育⽅針を改善すること」の 第⼀歩として「⽣徒の成績を記録すること」が思い浮かび 今のシステムにその機能があればいいなと依頼をしたのでした
None
⾵刺画 顧客が本当に必要だったもの
https://note.com/hideh_hash_845/n/n1da6cf92474b
https://xtrend.nikkei.com/atcl/contents/18/00576/00004/ 顧客が本当に必要だったもの
要望での注意点 - 背景, ⽬的が不明確 - 後のフェーズでなにを重視するかの基準がブレる - ⼿段しか書かれていない - ⽬的と⼿段が区別されていない
- ⼿段に対する知⾒が少ない事が多く⽬的と⼿段が⽭盾する - とりあえずの優先度不明の要望が⼊る
要求での注意点 - 要望のリスクをヘッジ(回避)する - 本当に解決すべき問題を⾒極める - 本当に必要な機能を⾒極める
Q: そんなに詳細に書かないと分からない? ⼊⼒できるなら編集もできるとかなんとなく察しろよ A: 善処はするが限度もある だから要件定義の開⽰とレビューが重要
完璧な要件定義なんて存在しない https://jabba.cloud/20210807-elon-musk まず要件定義ってのがあって 「こういうデザインでこういうのを作ってくれ」って 計画なんだけど、それらは必ずバカなんだ。 本当に⽂字通りバカなんだ。 誰が作ってもどうやってもまず要件定義ってのはバカなんだ。 まずそうやって「バカなんだ」って 定義しておかないといけない。 ⼀番危険なのはとびきり賢い⼈が出してきた要件定義で
「あの⼈が作ったんだから⼤丈夫でしょ」って考えて しっかり質問しないこと。これが⼀番危険なんだ。 私も含めて誰が要件定義を作ってもバカなんだ。 だからとにかくそのバカさ加減を少なくすること。 所詮は要件定義ってバカだからゼロにはならないけど、 とにかくこのステップ1でバカを少なくすること
まとめ なぜうちはバグだらけ? そもそも作る前から起きるべくして起きてるのでは? 要件定義の重要性 レビューの重要性 要件定義なしに設計やコーディングするなど キャンバスを⽤いずに空に絵を描くに等しい 要件定義なんて全部バカ ⼀⾔⼀句⾒逃さずに粗をみつけ 疑問を投げかけろ
要求定義の重要性 ⼿段は⽬的ではない