ソフトウェア開発
SDD(仕様駆動開発)は人間関係を改善する手法ではないが、結果として衝突は減る なぜPMとエンジニアは衝突するのか 従来開発における仕様の位置 よくある摩擦 SDDにおける仕様の定義 衝突が減るメカニズム 責任の所在が明確になる 見積もりが現実的になる 注…
SDD(仕様駆動開発)では「レビューの質」がプロジェクトを決める なぜチェックリストが必要になるのか チェックリスト設計の基本方針 入力仕様のチェック項目 出力仕様のチェック項目 エラー仕様のチェック項目 状態遷移のチェック項目 並行処理のチェック項…
プログラマはAIを作る側に回るべきか AIを作る仕事は思っているより特殊 機械学習開発の実態 実務の中心はデータ 人数が少ない理由 これから増える仕事は「AIを使う側」 APIとしてのAI 現場で起きている変化 AIを作る側に回るメリットとリスク メリット リス…
10年後のエンジニアに必要な能力とは何か なぜコードを書く力だけでは足りなくなるのか AIが実装コストを下げた現実 現場で実際に起きる変化 10年後に重要になる4つの能力 1. 問題定義力(Problem Framing) 実務で差がつくポイント 2. システム設計力(Arch…
変わるのは「コード量」ではなく開発工程 AIが入ると開発フローはどう変わるか 要件定義の重要性が上がる理由 テスト工程の変化 デバッグの役割は消えない エンジニアの役割の変化 チーム開発への影響 ありがちな失敗 これからのソフトウェア開発 変わるのは…
AIがコードを書く時代でも、プログラミング学習は無意味にならない なぜAIだけでは開発が成立しないのか 例:ファイルアップロード処理** プログラミング学習で身につく本当の能力 問題分解の例** AIを使える人と使えない人の差 学ばなくてよいもの、学ぶべ…
AIはコードを書けるのに、なぜ置き換わらないのか プログラミングの本質は翻訳 AIが苦手な「曖昧さの処理」 本当に時間がかかっている作業 なぜコード生成能力だけでは足りないのか 注意点:実装の価値は確実に下がる AIが得意な部分、不得意な部分 最後に A…
どんな事故が起きるのか なぜレビューで見逃すのか 読みやすい 小さな判断の集合体 実際に壊れるポイント 日付とタイムゾーン 並行処理 例外処理 なぜ人間は採用してしまうのか AIコード生成の正しい使い方 生成ではなく草案として扱う テストを先に書く 境…
Javaが「中央集権」に見える理由 言語仕様と進化が中央で管理されている 標準ライブラリが強く、広い 実行環境(JVM)が強い支配力を持つ 実際に開発すると感じる「中央集権感」 ビルドと依存管理の作法が決まっている フレームワークが思想ごと提供される …
transitive dependencyとは何か なぜtransitive dependencyが怖いのか 見えていない依存がシステムを支配する セキュリティリスクが間接的に入り込む アップデートが突然壊す 実際の現場で起きがちな失敗 「直接依存しか見ていない」設計 問題が起きてから調…
冒頭で押さえておきたい話 なぜパッケージ管理ツールは増え続けるのか 依存関係の問題が想像以上に複雑だから 開発スピードの要求が年々上がっている 言語・エコシステムごとの事情が違う 新しいパッケージ管理ツールが解決しようとしている具体例 ロックフ…
パッケージ管理ツールは「面倒な作業」を減らす道具です パッケージ管理ツールとは何か そもそも「パッケージ」とは パッケージ管理ツールの代表的な役割 何が一番楽になるのか 環境構築が圧倒的に楽になる バージョン違いの事故が減る 依存関係を自動で解決…