投稿元:
レビューを見る
Git からテスト自動化まで、さまざまな近年の開発インフラを解説。
すごくまとまっているのでありがたいんですが、個人的にはもう少しボリュームが出てもいいのでサンプルを豊富に用意してほしかった。欲を言えばステップバイステップレベルで。
投稿元:
レビューを見る
最近のチーム開発のわかりやすい解説
ここ数年のチームでのソフトウェア開発トレンドについて解説している。
わかりやすかった。実際に導入できるかどうかは周りの環境にもよると思うが,参考になった。
細かいことについてはそこまで深くは書いていないので,何が問題で何が解決できるかざっと全体を知るのに役に立つ。
投稿元:
レビューを見る
svnをsvnとして使えてなくて恥ずかしくなった。チーム開発のためのインフラ、全然使えてないなぁ…もっとこういうツールを整備して快適に開発できるようにしたい。
投稿元:
レビューを見る
実際にこの書籍に載っているプロセスを踏んで開発に臨み、
成功することができました。
これまでウォーターフォール開発しかしてこなかったので、
まずは本書籍を読もうと思って、読んだところ、
内容もわかりやすく書いてあり、実践もしやすかったです。
これからアジャイルに取り組みたいと考えている方、
この書籍の中の一部分からでも使えると思うので、
参考にしてみてはいかがでしょうか。
投稿元:
レビューを見る
ある程度の人数でソフト開発を行うための手法やツールの紹介をしている本。 個々のツールや手法の説明をしている本はあっても、ワークフローを含めて包括的にまとまった本はめずらしいので、結構貴重だと思う。 新人さんとかに、とりあえず読んどけ、という感じの一冊と思います。 2章のケーススタディで「あるある」と思った人は読むべきと思います。 後は、経営者の人にも読んで欲しい。初期投資は少なからずかかるけど、開発プロセス上のムダを削ることで、開発終盤のトラブルを大きく減らし、バグ潰しにかかるコスト・期間を削減できるので、継続的に投資回収できるということを知っておくべき。
投稿元:
レビューを見る
チーム開発を行う上で有用になりそうな開発プロセス、ツール等の紹介書。実際のインシデントのケーススタディに即して紹介されてるので導入イメージがしやすい。何かソリューションに困ったときのインデックスとして手元置いておいても良いかも。
投稿元:
レビューを見る
チーム開発をスムースに行うためのツール類を、必要性・重要性から設定手順まで教えてくれる本。
開発現場では、このようなツールが導入できているかどうかは現場次第で、Git等は流石に普及しても、CIやテストツールは差があると感じている。
そのために必要性、「なぜ導入するのか」を理解するのは非常に重要と考える。そのための最高の本。現代の開発には重要な要素と改めて感じた。
投稿元:
レビューを見る
開発のプロセスについての視座を高める書籍でした。
ビジネスのプロセスが加速度的になる昨今。
常にサービスとしてリリースできる状態を維持しながら開発をしなければいけない。
また、ビジネスの変化に耐えうるまたは、受け止めることが必要。
そういうことは意識はしていたけど、言語化できる状態ではなかった。
この書籍は、その示唆を与えてくれました。
CIと継続的デリバリーについて図示を交えて解説をして理解が深まりました。プロダクトオーナーでなかったとしても、プロジェクトを成功に導こうとする一員として学習することは損ではないです。
ただ、この書籍を盾に、論を叩きつけるべきではありません。今を改善するために必要なことは何かを対話するために利用したほうが望ましい結果を得られると思います。
記載されているサービスにはいくつか変更があったりするので、利用するには類似サービスの比較を踏まえて行うべきだと思います。
投稿元:
レビューを見る
システム開発で起きがちなケーススタディを提示しながら、その解決のための方法論を解説している。バージョン管理、チケット管理、CI(継続的インテグレーション)、デプロイの自動化(継続的デリバリー)、リグレッションテストといった手法がそもそもどんなものなのか、メリットは何なのかを説明したうえで、具体的なツールの使い方を紹介している。ケーススタディはどこでも起こっているようなことでリアリティがあった。
・理想的なプロジェクトとは
?チケット管理システムに課題などが集約されている
?できる限りバージョン管理システムを利用する
?環境の影響を最小限にとどめ、常にリリース可能にしておく
?すべてを記録して追跡可能にする
・バージョン管理システムを使うとなぜ便利なのか
?変更内容という最も基本的な記録が残る
?バージョン間の差分を簡単に確認できる
?間違って他人の変更を上書きしないで済むしくみがある
?任意の時点まで巻き戻すことができる
?複数の派生を作ることができる、ある時点での断面を保存できる
・チケット管理システムの導入メリット
?タスク管理をするための基本機能がある
?一覧性、検索性が高い
?情報の一元管理と共有が可能である
?レポーティングに利用できる
?他システムとの連携が可能、拡張性がある
・インテグレーションとは
?すべてのソースコードを1ヵ所に集める
?依存するライブラリなどにパスを通す
?必要な場合はコンパイルする
?データベースの構築とデータのロードを行う
?必要に応じてミドルウェアの設定や起動を行う
?単体テストと結合テスト、ユーザ受け入れテストなどを実施する
・インテグレーションを継続的に行うのがCI
・Scrumでは、スプリントごとに成果物を作り出し、スプリントレビューというプロセスで成果物をレビュー、フィードバックし、次のスプリントの作業に反映するということを繰り返してサービスインを目指します。これはいわば、ウォーターフォール開発における要件定義とユーザ受け入れテストを2週間のスプリントの中で凝縮して行うイメージになります。そうすることによって、要件とのズレをできるだけ早く検出して調整する回数を増やしていこうというアプローチです。
・CIはアジャイル開発のベースとなる最も重要なプラクティス
・CIというアプローチ、言い換えればビルドとテストの自動化のアプローチが重要
・なぜCIのようなプラクティスが求められるのか
?コストメリット
?市場の変化のスピード
・デプロイの自動化における恩恵
?細かくたくさんデプロイできればリスクをコントロールしやすくなる
?フィードバックを早く得られるようになる
?組織がスケールする
投稿元:
レビューを見る
インフラ、クラウドが自分の主戦場のなので、馴染みがない開発の領域の雰囲気が知れてよかった。2014年初版なので流石に情報が古くなっている部分はある。クラウド黎明期からちょっと過ぎたくらいの雰囲気が窺い知れる。
1. チーム開発とは
1. 1人だけでも開発はできる
2. チーム開発で直面する課題
3. どのように課題に立ち向かうか
4. 本書の構成
5. 本書を読む前の注意点
2. チーム開発で起きる問題
1. ケーススタディの前提
2. ケーススタディ(1日目)
3. ケーススタディ(1日目)における問題点
4. ケーススタディ(2日目)
5. ケーススタディ(2日目)における問題点
6. 理想的なプロジェクトとは
7. 本章のまとめ
3. バージョン管理
1. バージョン管理システム
2. バージョン管理システムの移り変わり
3. 分散バージョン管理システム
4. バージョン管理システムをどう使うべきか
5. Gitを使ったスムーズな並行開発
6. Gitを使った開発フロー
7. データベーススキーマとデータの管理
8. 設定ファイルの管理
9. 依存関係の管理
10. 本章のまとめ
4. チケット管理
1. チケット管理システム
2. 主なチケット管理システム
3. チケット管理システムとバージョン管理システムの連携
4. 新機能の開発、バグの修正時のワークフロー
5. 「あのバグいつ直ったの」という問い合わせに答える
6. 「なぜこんな変更が入ったんだろう」という疑問を解決する
7. 本章のまとめ
5. CI(継続的インテグレーション)
1. CI(継続的インテグレーション)
2. ビルドツールの使い方
3. テストコードの書き方
4. Jenkinsを使ったCIの実行
5. CIの運用
6. 本章のまとめ
6. デプロイの自動化(継続的デリバリー)
1. デプロイとはどうあるべきか
2. デプロイの自動化
3. ブートストラッピング(Bootstrapping)
4. コンフィグレーション(Configuration)
5. オーケストレーション(Orchestration)
6. 運用について考慮する
7. 本章のまとめ
7. リグレッションテスト
1. リグレッションテスト
2. Selenium
3. JenkinsとSeleniumの連携
4. Seleniumテストの高速化
5. 複数のアプリケーションバージョンでのテスト
6. 本章のまとめ
投稿元:
レビューを見る
▪︎感想
開発に携わった経験が少なく、リテラシーを付けたくて読書。
アプリ開発において、認識すべき工程と関連ツールが体系的にまとめられてる本はあまりない気がする。(他に良い本あれば教えて欲しい)
なのでこの本はとても有意義な本に感じた。
2014年初版なのでもちろん各ツールの現状は色々変わってると思うが、頭の中に枠組みができただけでは十分すぎる。
▪︎メモ
・分散型バージョン管理システム
→ローカルにリポジトリごとクローンする
・チケット管理システムとバージョン管理システムの連携
・ビルドはコンパイルの前段階
・プログラミングだけではなくインテグレーションの理解が必要
・kickstartはサーバのセットアップ
→EC2なら不要?
・chefはサーバ自動構成ツール
→つまりOSより上のレイヤーのセットアップ
→Opsworksの役割あらためて理解した
・serverspecはサーバ構成のユニットテスト
→ミドルウェアプロセスが動いてるか
→特定ファイル、ディレクトリのパーミッション
投稿元:
レビューを見る
良書 いろいろ腑に落ちました。
Open系の開発は、大規模なアジャイルの形態等をとるようになり、ますます複雑になってきています。
リブ管とよばれた、バージョン管理とその管理ツール群、加えてCI(継続的インテグレーション)、デプロイの自動化、テストの自動化など、チーム開発の効率化、高品質化のために、その環境、仕組み、ツールを理解しなければなりません。近年、各プロジェクトにて、体系化されてその内容も固まりつつあると感じています。
それらを知る辞書として本書をお勧めします。
巻末には次のステップとしての参考書がいろいろ紹介されています。
ウォータフォールでも、アジャイル・スクラムでもどちらにも必要となる、チーム開発の全体像を俯瞰する書として、参考になられると思います。
目次(章単位で)
はじめに
第1章 チーム開発とは
第2章 チーム開発で起きる問題
第3章 バージョン管理
第4章 チケット管理
第5章 CI(継続的インテグレーション)
第6章 デプロイの自動化(継続的デリバリー)
第7章 リグレッションテスト
参考文献・参考URL