Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
完璧主義にこだわり続けるとシステム開発は不幸になると思った
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
5hun
November 13, 2025
Programming
45
0
Share
完璧主義にこだわり続けると システム開発は不幸になると思った
Roppongi.rb #36 / Omotesando.rb #115
で発表しました。
5hun
November 13, 2025
More Decks by 5hun
See All by 5hun
Array#forty_two
5hun
0
62
与信管理を形にする: Ruby の柔軟性が支える高速データ収集・自動化基盤
5hun
1
300
ぼっちが秘める可能性〜孤高のRubyistが語る交流会サバイバル術〜
5hun
1
40
君もRailsもアップグレード!
5hun
1
17
OSSコントリビュート初体験:Rubocopのバグを修正した話
5hun
0
46
地道なリファクタを続けてRspec高速化した話
5hun
0
53
“技術カンファレンスで何か変わる?” ──RubyKaigi後の自分とチームを振り返る
5hun
0
250
Other Decks in Programming
See All in Programming
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
670
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
6
1.3k
Moments When Things Go Wrong
aurimas
3
120
Claspは野良GASの夢をみるか
takter00
0
140
Skillは並べた。動かなかった。契約で繋いだ。— 65個のSkillから、自走する開発サイクルへ
junholee
0
790
バックエンドにElysiaJSを採用して気付いた、良い点・悪い点
wanko_it
1
190
デフォルト運用のCodeRabbit、1年で何が変わったか / How CodeRabbit Changed Our Code Review in 1 Year
bake0937
1
110
要はバランスからの卒業 #yumemi_grow
kajitack
0
200
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
320
AI時代だからこそ「Bloc」を採用する価値があるのかもしれない
takuroabe
0
260
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
15
7.3k
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
480
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
610
WENDY [Excerpt]
tessaabrams
11
38k
HDC tutorial
michielstock
2
680
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
240
Building Adaptive Systems
keathley
44
3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
850
It's Worth the Effort
3n
188
29k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
290
Speed Design
sergeychernyshev
33
1.8k
Transcript
完璧主義にこだわり続けると システム開発は不幸になると思った Roppongi.rb #36 / Omotesando.rb #115
自己紹介 5hun @5hun_s アラームボックスという会社でRuby on Railsを書いています。 Ruby歴は2年くらい。 趣味は音楽です。
None
None
ここから本題
今回の話とは 業務システムを自社内開発していて、、 • ビジネスサイドから開発要望が都度上がってきて • それをエンジニアが確認、要件を整理、設計して実装 • その中で感じた学びの話
とある開発要望 (前提)顧客からの会社を調査してほしいという審査依頼が上がってきた時、 • 担当者を決めて処理 • 担当者の決定はリーダーが手動で割り振っている →これをいい感じに自動化したい!!
とある開発要望 要件1 金額とお客さん(依頼主)単位で自動で振り分けるようにしたい →設定画面と新規テーブルを作成すれば良さそう
とある開発要望 要件2 特定の人に偏らないようにパーセンテージでうまいこと配分してほしい
とある開発要望 要件3 特殊なお客さんの場合は田中さんに優先に配分してほしい。 (でも田中さんの担当する審査が多い時はサブ担の佐藤さんに回してほしい)
とある開発要望 要件4 難しい案件は山田さんか佐藤さん(ベテラン社員たち)に優先して欲しい
etc、、、
None
複雑すぎて色々無理なので却下
何が問題? 審査の担当者を割り振るにあたり考えなければいけないことが非常に多い • 金額 • 現在のその人が担当している審査の数 • どのお客さんからの依頼 • 審査の難易度(この判別方法によっては更なる分岐も発生しうる)
何が問題? 審査の担当者を割り振るにあたり考えなければいけないことが非常に多い • 金額 • 現在のその人が担当している審査の数 • どのお客さんからの依頼 • 審査の難易度(この判別方法によっては更なる分岐も発生しうる)
システムが人間を『支援』するのか『代替』 するのか、認識がズレていることが問題! (だと思った)
(説得してもなかなか伝わらなかったので) なんでこうなるのか考えてみた
幻想 システム化すれば人の業務は全て自動化できてなんか色々うまくいく(はず) • ぷろぐらみんぐとかふれーむわーくってなんでもできるんでしょ?という誤解 • 人間の複雑な思考も全部代替することが可能、と思われている(気がする) (いわゆる「技術的には可能です」の言葉の意味とか解釈の話にも繋がるかなと思っている)
現実 人間が作るものである以上、限界はあると思っている 業務システムは所詮ただの道具、ツールに過ぎないのではないか • 複雑な道具は誰も使いこなせない ◦ 業務側:仕様を把握しきれず、使いこなせない ◦ エンジニア側:メンテで疲弊。最悪システムが機能不全になる
システムの機能は大きく分けて2種類 • 確実に仕事してほしい機能 ◦ ボタン(保存ボタンとか。押した通りのことが起きる) ◦ 一覧画面 ◦ 詳細画面 ◦
バッチ • 大体仕事してくれればいい機能 ◦ 複雑なビジネスロジックをプログラミングで表現した機能 ◦ 人力でやっている作業のうち、単純でよくある処理を担当 ◦ 多少の取りこぼしは運用でカバーする
機能の守備範囲の線引きをきちんと行う 人間が行っている作業をどこまでシステム化するか考える • 時には割り切りが必要(ここまでやってくれればあとは人力でなんとか、!) • メンテコストと運用コストを考えた上で折衷案が理想 確実に動かないといけない範囲 なんとなく業務をカバー してくれたら嬉しい範囲
エンジニアの役割 • ただ要望通りにコードを書くことではない。 • ソフトウェア開発の原則(KISSとかDRYとか色々)などの専門知識を持ち ビジネスサイドと違った視点から提案、議論するようもっていくのが重要 →(だと思ったので、色々勉強中、、、)