榊原彰のレビュー一覧
-
Posted by ブクログ
雲をつかむような概念であるdevops。これをアメリカの老舗自動車部品メーカーを舞台とした小説で体感させることを狙った小説。
本書ではdevopsが仕事の4つのタイプと3つの道に沿って解説される。その根本には『ザ・ゴール』のTOC理論がありボトルネックになっているものから仕事をはぎ取ること、加えて、3つの道で示されるバッチサイズを小さくすることがある。
TOC理論で示されるように、いくら周りが頑張っていてもボトルネックが解消されない限り、その努力は無駄だし、WIPが積み重なるように無駄が無駄を呼ぶことにもなりかねない。また、バッチサイズが大きいとリリースまでの時間が長期化し、ビジネススピードから遅れていく。そのためにはバッチサイズを小さくする必要があり、だからこそアジャイルとも親和性が高いということなのだろう。またスピードアップのためには1日複数回のデプロイを可能とするための運用の効率化、標準化も必要ということになるけれど、これも小さく始めるということを前提に進める必要がある。
本書の内容をすべて汲み取れたとは言えないけれど、再読する価値のある良書。 -
Posted by ブクログ
ネタバレ# 継続的デプロイ・継続的インテグレーションを支えるための技術書
## 面白かったところ
- 工学とはなにか? みたいな小手先の技術ではなく、学問としてソフトウェアを捉えた構成が良かった
- 継続的にプロダクトをアップデートするための、かなり抽象的な知識が散りばめられていて良い
- モジュール・関心の分離・凝集度の概念がわかりやすかった
- マイクロサービスは銀の弾丸じゃないと書いてあるところ
## 微妙だったところ
- サンプルコードが言語も背景もバラバラすぎて読みづらかった
## 感想
凝集度や結合度・関心の分離など抽象的な知識が求められる中で、たまたま出会えた一冊。
詰まるところ、継続的にデプロイして継続的に開発するためにはそれなりの基盤が必要で、知識も必要であるということである。
TDDに関してとても良い言語化がしてあった。
・凝集度を高めるために、注目すべき場所を考える切っ掛けづくり
・より優れた結果が生まれる方向に対して設計に圧力をかける
テストを書くという行為が何を指すのか自分でも明瞭になった言葉と出会えた。
テストを書いたから品質を担保できるわけではないことは重々承知していたが、だからといってTDDをやめていいようなヤワなものでもない。
そう。良い設計に圧力を掛けるものだった。
それだけ学べただけでも十分すぎる収穫だ。 -
Posted by ブクログ
ソフトウェア工学を工学たらしめるーー。そんな使命感が充満している。
継続的デリバリー。継続的リリース。TDD。DDD。アジャイル/DevOpsの文脈を解する人であれば、初見の概念やプラクティスに出会う確率はそう高くない。新しい出会いをもたらすのではなく、私達が長年かけて学び実践してきたことを、あらためて工学としてまとめなおす試みなのだ。
なぜ密結合より疎結合を目指すべきか。なぜテストはコードより前にあるべきか。くどいくらいに反復されるWhyからは、筆者のそれに対する信頼と自信、そして未だにそれらがなされない現場が少なくないことをなんとかしよう、という気概が漲っている。 -
Posted by ブクログ
アジャイル、継続的デリバリー、DevOpsを飲み込んで、その本質を明らかにし、その先を開こうとする一冊。これらのプラクティスだけでなく、DORAのReseach、チームトポロジーといったものを飲み込んで現代のソフトウェアを工学として定義した。クラフトマンシップからソフトウェアエンジニアになるための一冊だ。
この本に書かれている内容は上記の事柄を知る人たちにとって新鮮なものはない。だけど、これらに存在する共通的な工学的であると言える原則を定義した。この原則は時間が経過しても簡単に陳腐するようなものでなく応用が効くものだ。
この本に私に与えた影響は自信だった。私はアジャイルを学んで、その本質はよりよいソフトウェアを作ることだと、考えてきた。この考えにこの本は応えてくれた。おかげで私は自分の考えを漸近的にすすめ、学習を深めていける自信を持つことができそうだ。
この本と合わせてClean CraftmapshipやAcceralate(LeanとDevOpsの科学)など読み進めても面白いだろう。
-
Posted by ブクログ
アーキテクチャをデザインするにあたって、パフォーマンスや柔軟性など多数の観点から考えなければならないことをひたすら体系的にまとめた本でした。
パフォーマンスや組織など多数の観点について、図示の方法、チェックリスト、主な落とし穴などがまとまっているので、じっくり1回読んで終わり、ではなくどんな本かさらっと目を通した後は、気になったときに辞書的に使うのが良いかと思いました。
実は、例えばある処理を実現する場合には A と B の間にキューを挟むといい、というようなアーキテクチャデザインについて学ぶことを想定して買ったので、失敗したと思いましたが、読んでいくうちにすごい本を見つけたと思うようになりました。
私は、規模は非常に小さいですが、仕事で0からのシステム設計を主導する際に、手探りで行き当たりばったりになりながらも、回数を重ねるうちになんとなく自分なりの型を見つけて、型をブラッシュアップしつつシステム設計を進めていました。
自分なりの型が見え始めた段階でこの本が読めていたら、効率的に自分なりの型がブラッシュアップできたなと思います。
初めてシステム設計をする段階だと書いてあることが抽象的でピンと来ず、読むのも辛いぐらいだと思いますが、自分なりの型が見え始めた段階以降でこの本を読むと学べる部分が多いと思います。 -
Posted by ブクログ
自動車部品メーカーのIT部門を舞台にした小説です。
この組織では以下のような問題を抱えていて、自分の職場状況と照らし合わせても他人事とは思えません。
・5分で済む変更のために20分かけて登録するのはアホ臭いと誰も使わなくなった変更管理システム
→何かを誰かが変えて何かが起こっても誰も状況を把握できない
・優秀な生き字引1人しか知らない部分の多いシステム
→開発でも運用でも生き字引に仕事が集中してボトルネックに
・障害など予定外の割り込み仕事に振り回されるスケジュール
→忙しさに追われ対処療法を繰り返した結果さらなる障害を引き起こす悪循環
・ただでさえ忙しいところに面倒を持ち込むセキュリティおじさん
→本当に必要悪なのか
・etcetc
抽象的で不文律な面が多い仕事というものを分割し、並べなおし、再定義することでコントロール可能なものとし、最終的には自動化により効率面でのブレイクスルーを果たす。。
職場では運用しつつ開発しているのでDevOpsと言われてもイマイチピンときませんが、会社の経営目的とITとの関係を整理するシーンを読んでいて、Devを弊社、Opsを顧客に置き換えると出来ることがあるかも…と感じました。(Opsって保守運用ではなくビジネスの方だったのね…って今更ながら)
小説なので小難しいことはなく、純粋に読み物として楽しめます。
年次を問わずお勧めできる(得られるものは異なると思いますが)本でした。 -
Posted by ブクログ
新卒で企業に入社する前、入社後にシステム分野に取組むことになったことをインターン先に上司に報告したところ、紹介して貰って読んだ本。最近「The DevOps」・「運用」に悩む・取組む必要があり改めて読み直した。
運用の仕事は、予定された仕事の流れを作り出して社内に価値を届けることが重要であり、4つの仕事に分類されるという。ビジネス・プロジェクト、IT運用のプロジェクト、プログラム変更、予定外の仕事である。本書ではシステム改修のミスにより予定外の仕事が運用を圧迫し、予定外の仕事が出てくる要因を突き止めることから改善が始まる。予定外の仕事は修整作業であり目標から引き離すものである。
そして本書全体通して強調されるのは制約条件・ボトルネックの存在である。ボトルネック・制約条件により処理量が制限される以上、その前後の関係は無意味である。この点を踏まえつつ、予定された仕事の流れを管理、制約条件・ボトルネックに従い処理を構築し、制約条件・ボトルネックに遊ばせることがないようにする。予定外の仕事は制約条件・ボトルネックに係るか、本書では優秀なエンジニアであるブレントどうかで判断する。
運用には3つの道があると解く。「第1の道は、開発からIT運用への仕事の流れを速くするにはどうすればよいかだ。IT運用こそ、会社と顧客の間にあるものだからだ。第2の道は、フィードバックループを短縮、強化する方法だ。すると、源のところで品質を上げ、やり直しを避けることができる。そして第3の道は、実験、失敗からの学習、反復と練習が熟達には不可欠という考え方を並行して育てていく企業文化を作ることだ。」
それ以外に個人的に面白かったのは予定外の仕事が発生させないように予防する、変更管理の定義として「変更』とは、アプリケーション、データベース、オペレーティングシステム、ネットワーク、ハードウェアに対する物理的、論理的、仮想的な働きかけのうち、提供しているサービスに影響を与える可能性のあるものである」、細かい内容を提示させるがゆえに機能しない変更管理である。後者が見覚えしかない。 -
Posted by ブクログ
■5つの理想
第1の理想-局所性と単純性
第2の理想-集中、フロー、楽しさ
第3の理想-日常業務の改善
第4の理想-心理的安全性
第5の理想-顧客第一
エンジニアが現実にいる人ではなく、抽象的な存在として”顧客”を考えると、まず正しい結果を生み出せない。
「ソフトウェアのデリバリーでリードタイムが重要だってことは、ニコール・フォースグレン博士とジェズ・ハンブルの研究でわかったことだ。コードデプロイのリードタイム、コードデプロイの頻度、問題解決時間を見れば、ソフトウェアのデリバリー、運用の能力、組織の能力がわかる。そして、これらは社員の燃え尽き、社員の士気、その他さまざまなものと相関してる。」
単純性が大切なのは、単純じゃなきゃ局所性が得られないからだ。システムを疎結合に保ち、機能のデリバリーをスピードアップしたければ、コードの局所性が必要不可欠になる。局所性が実現されていれば、チームはまわりのチームのことを気にせず、お客さんにとって価値のあるものをすばやく開発、テスト、デプロイできる。組織に局所性があれば、チームの外の人々と話し合って調整しなくても決定を下せる。現場の仕事からかけ離れていて、いい判断を下せる基盤がない権威や委員会なんてもんから承認をもらう必要もなくなる」
「…日常の仕事の改善を重視していかなきゃダメなんだ。日常の仕事以上にそっちに力を入れなきゃならないくらいだ。そこまで徹底して局所性の実現に集中しなきゃ、どんなシステムでも時間とともに劣化し、技術的負債のなかに埋もれちまう。…」
「いろんな定義があるけど、私が気に入っているのはウォード・カンニガムが2003年に作った定義だな。彼は、『技術的負債とは、次の機会に書き換えたいと思うもののことだ。』って言ったんだ。人々が技術的負債と呼んでいるもののなかにはいろんなものがあるけど、たいていはクリーンアップしたいもの、単純にしたいものとか単純さを取り戻したいもののことだね。直せば、自信を持って早く安全にシステムを変更できるようになる部分だ」
「技術的負債になるのは、たとえばプログラマーに早くフィードバックを渡せないビルド、テストシステムがそうだし、この手のシステムが動かなくなったときもそうだ。それから、単純なコンポーネントがコンプレクトになって、莫大な労力をかけたり、大事故のリスクを背負ったりしなきゃ何をしてるのかわからず書き換えることもできないときもそうだね。意思決定プロセスや組織構造に局所性がなくなり、小さな決定を下すために、エスカレーションが必要になる、君たちが罵倒する”官僚主義”もそうだ。
私はこういったものを全部“複雑性負債”って呼ぶことにしている。これは単なる技術的な問題ではなく、ビジネスの問題だからね。で、こういった負債にはあれとこれのどっちを選ぶかって問題がかならずくっついてくる。新しい機能を作るか、複雑性負債を全部返済するかっていうようにね、機能を作ることのために自分の時間を全部使っちゃうバカがいると、簡単な仕事が難しくなり、実行に時間がかかるようになるのは避けられないな。そして、0から始めようとすると、どんなにがんばっても、どんなに部下がいても、最終的には自分の重みのために潰れるだろうね」
「理想は5つある。第1の理想、局所性と単純性についてはもう言ったね。システムとシステムを作る組織に局所性が与えられるように仕事をデザインしていく必要がある。そして何をするにも単純でなきゃならない。コードのなかであれ、組織のなかであれ、プロセスのなかであれ、内部に複雑さがあるのはだめだ。外部はもう十分複雑なんだよ。だから、自分たちでコントロールできるもののなかに複雑さが持ち込んだら大変なことになっちゃう」
「第2の理想は集中、フロー、楽しさだ。これはみな日常の仕事で感じるようにしたいことだよ。退屈して自分のためにほかの人が仕事をしてくれるのを待っていないか?全体を見ないで全体のごく小さな一部の開発とだけ考え、デプロイで全体が吹き飛んでいても自分の作業の結果しか見ず、火消し、懲罰、燃え尽きを招いていないか?それとも、小さなバッチ単位、できればひとつの新機能単位でデプロイし、継続的にスピーディなフィードバックを得ているか?これらは、仕事に集中とフロー、挑戦、学習、発見、担当分野のマスター、そして楽しみを生み出す条件だ。
「…第3の理想は、日常業務の改善だ。日常の仕事自体よりも日常の仕事の改善を大切にしなきゃいけない。そのことを教えてくれるトヨタのアンドンの紐についてよく考えよう。第4の理想は心理的安全性だ。問題の解決のためには問題の予防が必要で、問題の予防のためには率直さが必要だ。そして、あとでどうなるかわからないという怖さがあれば、率直になどなれない。工場では、身体的な安全と同じくらい心理的安全性、つまり安心感も大切なんだよ。そして第5の理想は、顧客第一、つまり機能などがお客さんにとって本当に必要なものかどうかを徹底的に批判的に考え抜くことだ。お客さんがこの機能のためにお金を出す気になるか、それとも自分たちの職場の都合からくる自己満足に過ぎないのかってことさ」
「…
技術的負債は、納期と同じ日常のことだ。ビジネスの人々は、納期のことはわかっても、技術的負債もあるということをまったく知らないことが多い。技術的負債は、それ自体ではいいことでも悪いことでもない。技術的負債が生まれるのは、日常の仕事のなかでいつも決断を迫られるからだ。長持ちしないことがわかってても、仕事の都合で近道を通ったり、自動テストを省略したり、特定の条件のためにハードコードしたりすることがあるだろう。日常的に、手作業で環境を作ったり手作業でデプロイをしたりといった次善の方法で我慢する場合もあるよな。こういったことが将来の仕事の進捗にどれぐらい大きな影響を与えるかがわかってないと、大きな問題を起こすわけだ」
「…
これは従者を引っ張るリーダーシップじゃなくて、変身を促すリーダーシップだ。組織のビジョンを理解し、仕事のやり方についての根本的な前提条件を疑うアグレッシブな知性と人の心を動かすコミュニケーション能力を持ち、メンバーの特徴を把握し、支える指導力がなきゃいけない。…」
「…最高の能力を持たなきゃいけない。とことん完璧を追求し、できる限り早くミッションを達成しようという気概を持ち、現状維持に決して満足せず、組織が奉仕する人々をしっかり支えようという熱意を持たなきゃいけない」
マキシンは、ミーティングの経験から、心理的安全性を実現する条件がいかに薄弱ではかないものかを強く感じるようになった。心理的安全性は、リーダー、同僚の行動、雰囲気、自尊心、過去から引きずっている心の傷といったものによって左右される。 -
Posted by ブクログ
・ITの4種類の仕事―ビジネスプロジェクト、IT運用プロジェクト、プログラム変更、予定外の仕事。技術的負債を放置しておくと、予定外の仕事しかできなくなる
・(過度なセキュリティを追求する担当者に対して)会社にとって最大のリスクは、監査所見を解決できないことではない。会社が生き残れないことだ
・「お前はボブではなく、俺の下にいるこを忘れるなよ。この体制で働けないなら、お前をすぐクビにする必要がある」
・「人は、終わりなく続くホラー映画のように、自分には結果を変える力がないと思うと、不満をためてありがたみを感じなくなる。そのことが人間としての自分の価値を傷つけないわけがない。そういう状況を変えなければならないんだ」 -
Posted by ブクログ
私の知る限りでは、日本のITプロジェクトでは、アーキテクトという役割を専任で行うことはあまりない。大体が、要件定義、設計、コーディング、テスト、運用というフェーズごとに責任者、担当者がアサインされており、PMが全体を見る形である。
本書で説明されるアーキテクトは、主に要件定義から設計につながる部分で、問題空間と解決空間を調整しながら結びつけるのが大きな役割で、プロジェクト全体を通して解決策がユーザーの問題に適切に対処しているかを監視する。確かに、ここの役割をおろそかにすると、特にウォーターフォール型開発では、上流からのインプットを完全に正しいとして突き進み、いつの間にかユーザーの要望から乖離してしまう、ということが起こりがちだろう。
というわけでアーキテクトという役割が大切なのだが、この人が責任を持つソフトウェア・アーキテクチャを正しく構築するには、どのような観点で検討すればよいのかを、ビュー(視点)とパースペクティブ(側面)という分類でうまく整理している。やっぱり、PMBOKなどを生み出すだけあって、欧米は知識を体系的に整理するのが上手だ。こういうフレームを参照すれば、アーキテクチャにおける考慮モレは減り、より良いシステム構築につながると思った。 -
Posted by ブクログ
IT運用における問題や問題に対する対処、
運用改善、最終的には開発・運用の一体化までを
小説として書いた本。
嫌がらせをされるシーンもあったりと、
実際のIT運用に近い話が多かったような気がする。
おかげで面白く読むことが出来ました。
IT運用から改善を実現するには、
①現状をまずは改善する(小さく改善し、時間を作る)
・運用フローを可視化する
・運用を管理する
・ボトルネックを見つける
・運用フローを見直す
②業務とITの関連を把握する(業務を理解する)
・どんな業務にITが必要なのか
・そもそもどんなことにITを使っているのか
・トラブルが起きて困ることは何か
※個人的には、ココが極めて重要だと感じた。
③開発チームと一体となった組織を作る(クイックな組織)
・開発と運用が繋がる箇所を整理する
・整理した結果、自動化出来る部分を特定する
といった流れになるのだろう。 -
Posted by ブクログ
ザゴールのIT版。
基本的に、システム(ある程度規模がある)開発経験者でなければ、用語の理解や、開発現場の雰囲気の調整に難航しそう。また、加えて登場人物の多さも気になる。
日本のシステム開発従事者も、スキルや契約や何より、DevOpsの先にあるITが何のためにあるのかという視点を主人公率いるユニコーンチームみたいに持てると、本当に素晴らしいことだと思う。システムを守るため、ではなくビジネスを強化、補強、推進するために、DevOpsでIT頑張ろうという話。
devops(以下、抜粋)
ビジネスニーズに即応するということは、ビジネスの変化に応じてITシステムの機能が追加されたり、変更されたりすること。
換言すると、ビジネスの好機に必要とされる機能が提供できないITシステムはお荷物ということになる。
これを解消するために、IT(システム開発)の様々な仕事をミクロな視点で捉えつつ、マクロな視野を得、本当に有用なものにして行く。本書では、開発と運用の一体化を図り、ビジネスニーズへの即応性をより高めるDevOpsを目指す。 -
Posted by ブクログ
IT部門の開発と運用、延いては全社的なビジネスとITの融合を図るまでの過程を本書でも言及されている「ザ・ゴール」のような小説仕立てで描き、コミュニケーションとコラボレーションの推進を訴え、目的の共有と全体最適を啓蒙する。
トラブルに次ぐトラブル、ビジネス側から突きつけられる厳しい要求、正にデスマーチ、そして急転直下の和解とハッピーエンド、ハラハラドキドキしながら読み進めることができた。ただ、主人公のビル・パーマーが辞意を表明したからステーブ(CEO)が謝るまでの四日間での心変わりと謝罪が良く分からなかった。トップと対立したら辞意を表明すれば事態が好転する程、世の中都合よくできてないと思う。
アジャイル・スクラム、リーンスタートアップなど製造業のの方法論をITに展開したものが多い、本書も「ザ・ゴール」のIT的展開だろう、これからのIT業界は製造業に学ぶべきなのだろうか。