あらすじ
本書はサービスやアプリケーションを開発する企業において,複数の人たちでチームを組んで開発を進めていく際に必要な考え方や使用するツール,またそれらをうまく使いこなすためのノウハウをまとめています。本書の最初でうまく物事が進んでいない開発現場の一例を示し,その理由と対策についてまとめています。次にその対策に必要なツールである,バージョン管理,チケット管理,CI(継続的インテグレーション),デプロイ,リグレッションテストの章を設け,その使い方と上手な運用ノウハウなどについて現場での経験が豊富な著者が解説しています。
...続きを読む感情タグBEST3
Posted by ブクログ
チーム開発をスムースに行うためのツール類を、必要性・重要性から設定手順まで教えてくれる本。
開発現場では、このようなツールが導入できているかどうかは現場次第で、Git等は流石に普及しても、CIやテストツールは差があると感じている。
そのために必要性、「なぜ導入するのか」を理解するのは非常に重要と考える。そのための最高の本。現代の開発には重要な要素と改めて感じた。
Posted by ブクログ
良書 いろいろ腑に落ちました。
Open系の開発は、大規模なアジャイルの形態等をとるようになり、ますます複雑になってきています。
リブ管とよばれた、バージョン管理とその管理ツール群、加えてCI(継続的インテグレーション)、デプロイの自動化、テストの自動化など、チーム開発の効率化、高品質化のために、その環境、仕組み、ツールを理解しなければなりません。近年、各プロジェクトにて、体系化されてその内容も固まりつつあると感じています。
それらを知る辞書として本書をお勧めします。
巻末には次のステップとしての参考書がいろいろ紹介されています。
ウォータフォールでも、アジャイル・スクラムでもどちらにも必要となる、チーム開発の全体像を俯瞰する書として、参考になられると思います。
目次(章単位で)
はじめに
第1章 チーム開発とは
第2章 チーム開発で起きる問題
第3章 バージョン管理
第4章 チケット管理
第5章 CI(継続的インテグレーション)
第6章 デプロイの自動化(継続的デリバリー)
第7章 リグレッションテスト
参考文献・参考URL
Posted by ブクログ
▪︎感想
開発に携わった経験が少なく、リテラシーを付けたくて読書。
アプリ開発において、認識すべき工程と関連ツールが体系的にまとめられてる本はあまりない気がする。(他に良い本あれば教えて欲しい)
なのでこの本はとても有意義な本に感じた。
2014年初版なのでもちろん各ツールの現状は色々変わってると思うが、頭の中に枠組みができただけでは十分すぎる。
▪︎メモ
・分散型バージョン管理システム
→ローカルにリポジトリごとクローンする
・チケット管理システムとバージョン管理システムの連携
・ビルドはコンパイルの前段階
・プログラミングだけではなくインテグレーションの理解が必要
・kickstartはサーバのセットアップ
→EC2なら不要?
・chefはサーバ自動構成ツール
→つまりOSより上のレイヤーのセットアップ
→Opsworksの役割あらためて理解した
・serverspecはサーバ構成のユニットテスト
→ミドルウェアプロセスが動いてるか
→特定ファイル、ディレクトリのパーミッション
Posted by ブクログ
なぜ開発プロセスにおいてバージョン管理、ビルドツール、チケットシステム等のソリューションが必要なのかをケーススタディに基づき、非常に分かりやすい文章で理解を深めてくれる。既に導入してCI/CDを確立している読者や企業にとっては既知の情報も多々あるが、明文化してくれるという意味で社内に一冊あると便利。
Posted by ブクログ
タイトルからは開発プロセスとか、チームプレイの諸々の話かと思ったのですが、中身は「チームが開発に集中するための自働化実践入門」という感じでした。
開発のライフサイクルを通じて、各フェーズで使えるツールやそれを使いたい背景、他のツールとの組み合わせ、などなど結構幅広くなっています。触りの部分は具体的で、突っ込んだところは参考文献など他の情報につなげるあたりはまさに入門を冠する内容となっていました。それだけに参照先が膨大なことになっていますが(苦笑
普遍的な内容もありますが、今だからこその部分も多いため、賞味期限が早そうな気もしますが、だからこそ今すぐ読む価値は高いのかな、とも思いました。
Posted by ブクログ
同じ開発でも個人からチームになるとソースコード管理、タスク管理、結合テストなどの作業の難易度が一気に上がる。それに対する解決法が書かれた本。GitやCI/CDをはじめ「導入しないとレガシー逝き」な内容ばかり。具体的なシーンやツールを示しながら説明してくれるので分かりやすかった。
Posted by ブクログ
インフラ、クラウドが自分の主戦場のなので、馴染みがない開発の領域の雰囲気が知れてよかった。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. 本章のまとめ
Posted by ブクログ
開発のプロセスについての視座を高める書籍でした。
ビジネスのプロセスが加速度的になる昨今。
常にサービスとしてリリースできる状態を維持しながら開発をしなければいけない。
また、ビジネスの変化に耐えうるまたは、受け止めることが必要。
そういうことは意識はしていたけど、言語化できる状態ではなかった。
この書籍は、その示唆を与えてくれました。
CIと継続的デリバリーについて図示を交えて解説をして理解が深まりました。プロダクトオーナーでなかったとしても、プロジェクトを成功に導こうとする一員として学習することは損ではないです。
ただ、この書籍を盾に、論を叩きつけるべきではありません。今を改善するために必要なことは何かを対話するために利用したほうが望ましい結果を得られると思います。
記載されているサービスにはいくつか変更があったりするので、利用するには類似サービスの比較を踏まえて行うべきだと思います。
Posted by ブクログ
システム開発で起きがちなケーススタディを提示しながら、その解決のための方法論を解説している。バージョン管理、チケット管理、CI(継続的インテグレーション)、デプロイの自動化(継続的デリバリー)、リグレッションテストといった手法がそもそもどんなものなのか、メリットは何なのかを説明したうえで、具体的なツールの使い方を紹介している。ケーススタディはどこでも起こっているようなことでリアリティがあった。
・理想的なプロジェクトとは
?チケット管理システムに課題などが集約されている
?できる限りバージョン管理システムを利用する
?環境の影響を最小限にとどめ、常にリリース可能にしておく
?すべてを記録して追跡可能にする
・バージョン管理システムを使うとなぜ便利なのか
?変更内容という最も基本的な記録が残る
?バージョン間の差分を簡単に確認できる
?間違って他人の変更を上書きしないで済むしくみがある
?任意の時点まで巻き戻すことができる
?複数の派生を作ることができる、ある時点での断面を保存できる
・チケット管理システムの導入メリット
?タスク管理をするための基本機能がある
?一覧性、検索性が高い
?情報の一元管理と共有が可能である
?レポーティングに利用できる
?他システムとの連携が可能、拡張性がある
・インテグレーションとは
?すべてのソースコードを1ヵ所に集める
?依存するライブラリなどにパスを通す
?必要な場合はコンパイルする
?データベースの構築とデータのロードを行う
?必要に応じてミドルウェアの設定や起動を行う
?単体テストと結合テスト、ユーザ受け入れテストなどを実施する
・インテグレーションを継続的に行うのがCI
・Scrumでは、スプリントごとに成果物を作り出し、スプリントレビューというプロセスで成果物をレビュー、フィードバックし、次のスプリントの作業に反映するということを繰り返してサービスインを目指します。これはいわば、ウォーターフォール開発における要件定義とユーザ受け入れテストを2週間のスプリントの中で凝縮して行うイメージになります。そうすることによって、要件とのズレをできるだけ早く検出して調整する回数を増やしていこうというアプローチです。
・CIはアジャイル開発のベースとなる最も重要なプラクティス
・CIというアプローチ、言い換えればビルドとテストの自動化のアプローチが重要
・なぜCIのようなプラクティスが求められるのか
?コストメリット
?市場の変化のスピード
・デプロイの自動化における恩恵
?細かくたくさんデプロイできればリスクをコントロールしやすくなる
?フィードバックを早く得られるようになる
?組織がスケールする
Posted by ブクログ
ある程度の人数でソフト開発を行うための手法やツールの紹介をしている本。 個々のツールや手法の説明をしている本はあっても、ワークフローを含めて包括的にまとまった本はめずらしいので、結構貴重だと思う。 新人さんとかに、とりあえず読んどけ、という感じの一冊と思います。 2章のケーススタディで「あるある」と思った人は読むべきと思います。 後は、経営者の人にも読んで欲しい。初期投資は少なからずかかるけど、開発プロセス上のムダを削ることで、開発終盤のトラブルを大きく減らし、バグ潰しにかかるコスト・期間を削減できるので、継続的に投資回収できるということを知っておくべき。
Posted by ブクログ
実際にこの書籍に載っているプロセスを踏んで開発に臨み、
成功することができました。
これまでウォーターフォール開発しかしてこなかったので、
まずは本書籍を読もうと思って、読んだところ、
内容もわかりやすく書いてあり、実践もしやすかったです。
これからアジャイルに取り組みたいと考えている方、
この書籍の中の一部分からでも使えると思うので、
参考にしてみてはいかがでしょうか。
Posted by ブクログ
svnをsvnとして使えてなくて恥ずかしくなった。チーム開発のためのインフラ、全然使えてないなぁ…もっとこういうツールを整備して快適に開発できるようにしたい。
Posted by ブクログ
Git からテスト自動化まで、さまざまな近年の開発インフラを解説。
すごくまとまっているのでありがたいんですが、個人的にはもう少しボリュームが出てもいいのでサンプルを豊富に用意してほしかった。欲を言えばステップバイステップレベルで。
Posted by ブクログ
VCS, BTS, CI などのツール・メソッドについて、その必要性と歴史を踏まえ、モダンな選択肢がまとめられた本です。
"チーム開発" という言葉を使って、現代のソフトウェア開発には欠かせないと言っても良いツール・メソッドは「これらである」と、わかりやすくまとめていることに価値があると思います。
一部に Selenium, Serverspec など、ウェブ開発特有のツールも登場しますが、ほとんどは業界やアプリケーションの形態を問わず、有用な内容だと思います。
チーム開発の環境を構築する人、最近のチーム開発のツール・メソッドを知らない人におすすめできる本です。
Posted by ブクログ
とりあえず知っておくべき知識を得ることはできた。ただ、実際に使わないことには理解の進まない部分もあるので、これを基礎として、実践を通して経験を積み上げていきたい。
Posted by ブクログ
最新の開発の流れについての概要と、各ポイントで使用するツールについてよくまとめられた良書。
詳細には記述されていないが、ツールや手法がどんなものかは十分記述されている。それぞれの手法やツールの詳細については、別の本やWebを当たった方が良い。
Posted by ブクログ
2014年現在のソフトウェア開発の代表的なフローとツールの解説。一通り見渡すことができる。
何がどういうケースに対して有効かという説明もある。
現場の開発体制を改善しようとしている人におすすめ。
Posted by ブクログ
チーム開発をするにあたって気をつけるべきことだけでなく、手動がいかに作業に対して悪影響を与えるか、自動化することでどれだけやるべきことに集中して時間をかけられるようになるか勉強になった。
個人開発でもバージョン管理やチケット管理(Redmine, GitHubのissueなど)開発を改善するためのノウハウが書かれてて役に立つ情報は結構あると思う。
テストを書く際にもどういうことをテストに書くべきも書かれてたかな。
説明に使われたツール(ワード)
git, github, redmine, ITS, BTS, Backlog, TravisCI, Jenkins, chef, serverspec, capistrano, リグレッションテスト, Selenium
Posted by ブクログ
DevOpsが体系的に学べる本。いろんなツールがあるが、どこが使いどころなのかが分かる。
個人的には、データベースマイグレーションをもう少しちゃんとやらないと、と思った。早速実践したい。
Posted by ブクログ
レポジトリ、チケット管理、CI、CDについて広く浅く書かれている。
最初にわかりやすい「失敗事例」があって非常にわかりやすい。
各分野・ツールの詳細を知るには各専門書を読む必要があるし、開発経験がない人には説明が不足しているかもしれない。
だが、これらの開発ツールを十分に使えてないと感じている開発者にとっては、全体像がつかめる非常によい本だと感じた。
Posted by ブクログ
2014年現在のモダンは開発手法のノウハウとツールを一冊に纏めたもの。特にツールについて多くのものが紹介されていて、概要を把握するにはちょうど良い。
しかし、バージョン管理・チケット管理・CI・継続的デリバリーや各ツールについては、それらの書籍を読む必要がある。
「チーム開発」というからには1人が読めば良いものではなく、チーム内で読んでおくのも良い。
Posted by ブクログ
システムで厄介なこと。それは分担するための分割損が必ず発生することである。
本書はその分割損の典型例を示し、その対策のための手法とツールをまとめたものである。
システム開発では、銀の弾丸はない、と言われる。本書はを理解するとこで、管理手法やツールの選定が適切にできるようになるだろう。
管理手法を列挙すると:
・バージョン管理
・チケット管理
・CI(継続的インテグレーション)
・デプロイの自動化(継続的デリバリー)
・リグレッションテスト
対象とするシステムの性格、プロジェクトの体制、開発手法、これらを考慮した上で、管理手法の採用とツールの選定をすると良いでろう。
ツールをいれすきても、当然だが破綻する。あくまでも人間、特にチームの認知負荷に併せて採用するのが肝要である。
Posted by ブクログ
チーム開発を行う上で有用になりそうな開発プロセス、ツール等の紹介書。実際のインシデントのケーススタディに即して紹介されてるので導入イメージがしやすい。何かソリューションに困ったときのインデックスとして手元置いておいても良いかも。
Posted by ブクログ
最近のチーム開発のわかりやすい解説
ここ数年のチームでのソフトウェア開発トレンドについて解説している。
わかりやすかった。実際に導入できるかどうかは周りの環境にもよると思うが,参考になった。
細かいことについてはそこまで深くは書いていないので,何が問題で何が解決できるかざっと全体を知るのに役に立つ。
Posted by ブクログ
いまのチーム開発の現状についてのベタープラクティスについて、ざっと書いてくれてて、知らない部分も多く勉強になった。
Gitやアジャイルに慣れてない人が最初に取る本としてはよいかと思います。
Posted by ブクログ
理想的な開発フロー
・バージョン管理システム
・CI環境でのビルド/テスト→ステージング環境での結合テスト→本番環境へのリリース
・チケット管理システムによるコミット履歴、テスト状況の集約
<バージョン管理システム>
ソースコード、ドキュメント、データベーススキーマ・データ、設定ファイル、ライブラリなど依存関係定義
<チケット管理>
<CI(継続的インテグレーション)>
Selenium=Webアプリの機能テスト、結合テストの自動化