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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shelfy.inc
January 23, 2023
Programming
230
0
Share
何故ソフトウェア品質が大事なのか
シェルフィー株式会社の毎日LTより、好評だった回をご紹介しています。
エンジニアからビジネスサイドへ、技術的負債への取り組みについてわかりやすく説明しています。
Shelfy.inc
January 23, 2023
More Decks by Shelfy.inc
See All by Shelfy.inc
構造化の学びのすすめ〜どうやって僕らは問い合わせの一次対応しているのか〜
shelfy
0
300
【シェルフィー株式会社】会社紹介資料/hello-shelfy
shelfy
9
50k
Other Decks in Programming
See All in Programming
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
240
20260320登壇資料
pharct
0
160
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5.8k
へんな働き方
yusukebe
6
2.9k
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
230
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
400
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
110
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.2k
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
560
おれのAgentic Coding 2026/03
tsukasagr
1
130
まかせられるPM・まかせられないPM / DevTech GUILD Meetup
yusukemukoyama
0
100
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
350
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Designing Experiences People Love
moore
143
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
210
WENDY [Excerpt]
tessaabrams
9
37k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.7k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
240
Utilizing Notion as your number one productivity tool
mfonobong
4
290
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Transcript
何故ソフトウェア品質が大事 なのか for Biz
取り上げた理由
取り上げた理由 ・リファクタ(品質改善)って本当に大事なの? ・事業展開が遅くなる? ・急がばまわれや開発リソースの調整(同時並行PJの制限)などソフトウェア都合の何 かが存在するぞ〜、それって本当に事業に大事?
去年から今までのプロダクトチームの行動の理 由を改めて伝えたい
目次 ・一般論から見るソフトウェアとは ・シェルフィーのプロダクトチームの今
ソフトウェアの4大特性
ソフトウェアの4大特性 ・複雑性 ・同調整 ・可変性 ・不可視性 参考: 人月の神話
複雑性 ソフトウェアを構築するコードは数万、数 百万行に肥大していく。 また、各コードの関係性は複雑に絡み合 い依存関係は非線形に増大する。
機能の数や歴史に比例し必ず増え、コードの増 加や複雑性は避けられない
シェルフィーのプロダクト規模はどれくらい?
コード行数 26万行,ファイル数3500個 (インフラは除く)
同調整 ソフトウェアはあらゆるものに同調する必 要がある。 扱っている業界の知識(法律) 利用される機器 利用するユーザ 他のアプリケーションなどなど
ソフトウェアはユーザ以外にも思いを馳せる場所 がたくさんあるということ
特にユーザ要望部分はめちゃくちゃ大事で要望 を整理して伝えてくれている皆さんには感謝!
可変性 ソフトウェアは常に変化できなければなら ない 事業、ユーザ、技術的課題...etc 参考: ストラテジーと実装の一致
期待や外的要因による変化に応え続ける必要 がある
様々な軸からの攻守の要望!
不可視性 ソフトウェアはこうしたい(概念)を積み上 げた具体の塊! 積み上げの過程を目で見ることができ ず、簡易的な図などでしか表現できな い! なぜ実装したのか?なぜこのような方法 で実現したのか?などの意思決定や見え ない制約はコードからはわからない
作られたものから確実にこれが正しいという事実 が得られない
ソフトウェアは上手に作れば複雑じゃなくなる?
なんてことはないです!
None
ソフトウェアは複雑だからソフトウェア
複雑性を表すもっと身近な例
None
なぜ品質が大事?
高品質=上がり続ける複雑性の傾き、変化量を 小さくできているORできる状態
ある一定の品質を維持できなくなったら
事業的な理由からの舵を切りづらくなる
事業的な理由からの舵を切りづらくなる ・機能を追加するにしても、メンテナンスが行き届いていないと、実現に時間がかかりや すくなる→事業の変化スピードについて行けない
何も機能を追加できないソフトウェアになる 参考: 突如発表された『拡散性ミリオンアーサー』 サービス終了の真相を訊く
何も機能を追加できないソフトウェアになる ・複雑であるためコントロールできず、属人化が発生しやすくなる ・コアメンバーが抜けたら、誰もわからない ・バグやデグレードが発生しやすくなる
プロダクトチームが実施してきた、していること
プロダクトチームが実施してきた、していること ・開発効率の改善 by 知恵 ← エンジニアがアプリケーションを作ることだけに全集中で きる環境の整備 ・Kotlin化プロジェクト推進 by lennon ←
複雑化したコードベースを整えるためのルール の整備とそれの適用 ・Autifyの整備 by moe ← デグレードなどの検知タイミングを設けて、コード変更をよりし やすく
すべて増加する複雑性を抑えるため
例えば安全書類
安全書類 ・待望の施工体系図Previewの改善 ・Preview表示スピードがめちゃくちゃ速い&体系図が正しく表示される ・これもソフトウェアの品質改善で実現されている
例えば入退場の例
入退場
None
入退場 ・裏側の品質改善を進めていることで受けている恩恵(現時点で) ・UXの向上機能の簡単な実現 ・素早い一覧画面表示 ・反応の速いフォーム編集(Twitterのいいねみたいな反応の良いUI) ・もしメンテナンスをしていなかった場合は目の前実装になり実現できても壊れやすいも のになっていく、、、
持続的に事業に応えていく、ユーザに価値を届 け続けるためにリファクタ(品質改善)が必要