読者です 読者をやめる 読者になる 読者になる

カンバンによるアジャイルプロジェクトマネジメントを読んだ

今すぐ実践!  カンバンによるアジャイルプロジェクトマネジメント

今すぐ実践! カンバンによるアジャイルプロジェクトマネジメント

監訳者長沢さんより本書を頂いて読んだ。

最近にわかに「カンバン」という単語を久しぶりによく聞くようになったと思っていたら、立て続けにいくつかの本が出版されている。単純に以前に見える化を主な目的としていたプラクティスではなく、ワークフローになって帰ってきたらしい。

本書はたぶん大体の人が思うより薄く、目的や概念の解説があまりなく、主に実践について並べられた本である。1章のタイトルが「経営陣の同意を得る」というのもとても実践的であることを感じさせる。本当にそのままというわけにはいかないが、考え方としては普遍的なものだった。他にも開発チームとして組織でどう生きていくか、という視点からの章立て、内容が書かれており、共感しつつ読むことができる人も多いと思う。

本書のタイトルにもあるアジャイル開発という概念は少なくとも欧米においては多数的な開発思想であり、スクラムやらカンバンやら、アジャイル開発のための実践方法が模索されている。スクラムはしっかりしたフレームワークであるが、今までアジャイル開発という考え方になじまない人達には覚えるべき単語やプラクティスが多すぎてなじまないことがあるし、より覚えることやプラクティスを減らし、洗練させようとしてカンバンというワークフローになったのではないかと本書を読んで思った。

スクラムにしてもカンバンにしてもどんな実践方法でも、どこかの方法が全部そのまま他の組織にも適用できるなんてことはないと思っていて、多少は変形するものであると思うんだけど、本書の中で「分析」というフローと「開発」というフローに分かれていることはどうしても納得できなかった。WIP制限に引っかかった場合などに手伝いに行くなど柔軟に対応するということは記述されていたが、多角的な能力を持つ人達の前提があるなら、自分で分析し、自分で実装すべきだと思う。そんな間違いの入りやすい箇所を分断すべきではないと思った。

とはいえ、これは一つの会社での話であり、大元の考え方がズレていなければなんとでもしてよいものであるはずだし、メトリクスの取り方、計算方法などもシートごと公開されているのでいろいろな方法を計測して自分たちに合うものを採用できるようにしてくれている、カンバンに偽りのない本である。スクラムはやることが多すぎてイマイチという方や、カンバンって聞いたことあるけどどうやるのかって興味のある方は本書のターゲットではないかなと思う。

仕事は楽しいかね?を読んだ

仕事は楽しいかね?

仕事は楽しいかね?

本書は5、6年前には読んだことがあったが、転職を機に再読してみた。

超著名と言える知名度のあるビジネス系啓発書。過去に起業するも失敗して、現在も仕事に満足の行かないビジネスマンに対し著名なアドバイザーである老人がアドバイスをする体で話が進む。本の内容についてはいくらでも解説してくれるサイトはあるだろう。

この本を読んで再度確認したのは「計画は失敗すること」「試行することの大事さ」である。

なぜか毎回はかれもしない未来を正確に見積らせようとする愚についての例はあとを絶たないけど、なぜ「未来ははかれない」ということを学んでくれないかをいつも不思議に思っている。人がかなり正しく予想できるのはせいぜい数日以内のことであることは体験としても例を上げても分かることだと思うし、不確実性コーンという初期計画はそもそも大幅にずれるというデータだってあるというのになぜか最初からキッチリ計画したがる。KPIがどうこうとデータの大事さを訴える人達の中にもそういう人達は多くいる。こちらは信用できないということだろうか。

試行することの大事さはスクラムやリーンにも通じていると思う。小さく思考し、フィードバックを得て改善することを繰り返す。そしてこれはまた「計画は失敗すること」に通じている。大きな計画は失敗することを前提に、かなり正確に見積もれる数日の範囲で何度も計画し実行し続けるのである。スクラムやリーンという方法論にまで言及しなくても、失敗を経ていけば自然とこうするものではないかと思うんだけどこちらも楽しい例に出会うことはめったにない。多くの人は計画をたてることで管理した気になるんだろうなと思う。

つまり、この本が出版されて15年、僕の観測範囲ではあまり世の中は変わっていないっぽいということを確認してしまった。余談として、原題は本書とは全く違うのだけど、本書のタイトルはすごく良い釣りタイトルであると思う。

メタプログラミングRuby第2版を読んだ

メタプログラミングRuby 第2版

メタプログラミングRuby 第2版

本書はレビューに参加させていただき、本を頂いていたものなんだけども、1版やレビューで読んでいたこともあり、なかなかきっちり読み終えられていなかったものを会社の読書会にて読了した。なお、今もオンライン読書会にてさらに精読中。

本書の第1版はRubyを学び始めたころ、初めてのRubyプログラミング言語 Rubyに続いて読んだ記憶がある。確か当時は中級者向き的なことが書かれていて、大丈夫かなあなんて思っていたはずだ。

本書はタイトル通り、Rubyにおけるメタプログラミングを解説する本で、シンプルなものからRailsやいくつかのGemの場合まで、様々な場合について教えてくれる。Rubyプログラマの間ではとても有名な名著で、影響を受けた人はとても多いと思う。メタプログラミングというと難しいものや不思議なものにとらえられがちなものだけど、本書を通じて理解が深まり決して不思議なものでないというところまでたどりつけることと思う。

タイトルで敬遠する人がいるかもしれないけど、今では一通りRubyの文法、制御構造や良く使うメソッドなんかをさらったあとはこの本を読んでみるべきだと思っている。この本にはRubyを楽しいと思うための要素が詰まっていると思うからだ。プログラミング初学者はRubyはなんでもできるのだなあと柔軟性にただ感心するだろうし、他言語から来た人はRubyの柔軟さに良くも悪くも驚くと思う。けど、ここらへんこそがRubyなんだと思う。冒頭にあるMatzの「Rubyは君を信頼する」にグッと来た人も多いんじゃなかろうか。応えたくなるのが人情である。

また、本書は1版の時と異なり2版はオライリーから出版されているが、訳は変わらず信頼と実績の角さんなので、なんか訳が不自然で読みにくいということもない。Rubyを学ぶ万人にオススメしたい本である。

アルゴリズムとデータ構造を読んだ

アルゴリズムとデータ構造

アルゴリズムとデータ構造

アルゴリズムとデータ構造についておすすめの本を聞いてみたらおすすめされたので買って読んでみた本。 いわゆる名著ではあるがいかんせん古い。古典の部類。原著著者は超有名人である。

ニクラウス・ヴィルト - Wikipedia

アルゴリズムとデータ構造について振り返りたく読んでみたのだけど、とても古い。訳書(本書)の初版が1990年、原著は1975年!なお、本書は新訳らしく別の更に古い訳本があるらしい。 古くて何が困るかというと、サンプルコードはまあ擬似コード的にごまかして読むにしても、バブルソートが泡立ち分類と訳されるなど訳語のセンスにだいぶ乖離感があるのがつらかった。

言葉遣い的にもなんだか読みにくいなあと思ってしまい、途中で投げてしまいそうな危機感が出てきたので本の内容には疑問を持たず、とりあえず全部流して読むことにして通読した。本書をさらったことを土台にして、

アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書)

アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書)

なんかを読んで理解を深めていこうと思っている。

あまりちゃんと読めてないのでこうすごかったとも言いにくいんだけども、木構造とハッシュについてはすごくしっかり語られている印象を受けた。他で疑問に思ったときに参照すると理解が深まったりするかなあなんて思っている。他にもベーシックな配列等基本的なデータ構造、ソート、再帰などに触れられている。数学的な論拠を逐一示しながら進むので、数学好きな人は嬉しいのかもしれない。

考具を読んだ

考具 ―考えるための道具、持っていますか?

考具 ―考えるための道具、持っていますか?

いつもの技術書ではなく実用書というたぐいの本を読んだ。何かのきっかけで何年か前にもらったものだと思うが、ずっと本棚にしまわれたままのものだった。まあせっかくだしぐらいの勢いでざーっと読むことに。

本書は結構有名な本のようで、ググると結構な絶賛の記事も出てくる。奥付を見ると初版は2003年、実際読んでる本は2009年の29刷ということで結構な人気であったことは間違いなさそう。

内容としてはカラーバスなどのインプットするための方法やブレスト等のアウトプットの方法まで、色々なアイデア出しのための方法と道具について書かれている。現在から見るとだいたいが当たり前な方法に思えるのだけど、もしかするとこの本らがきっかけになって広まったのかもしれないなと思ったりした。だいたいが既知のものなので、目新しさという意味では面白くなかった。まあ私が技術職で特別にアイデアマンであることを求められてるわけでも、自身でなりたいと思っているわけでもないので真剣味が足りないという可能性はある。逆に言えば、アイデア出しの方法等についてまったく知らないという人にとってはきっと当時と変わらず良い書籍なのだろうと思う。

全然本の内容とは関係ないけども、こういう本は分かりやすく書かれていることはもちろんだけど、前提知識があまり必要とされていないので読書がものすごく早く進んだ。数時間もかかってないと思う。技術書読むのにはエネルギー使うもんだなあと比べて思ったりした。

ネットワークはなぜつながるのかを読んだ

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

誕生日のプレゼントにいただいたネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識を読んだ。 かねてからよく言われる古典的な良い本であるが、LANとかの仕組みまでは知らないなあと思ってウィッシュリストへ入れておいたものだった。

いわゆるネットワークエンジニアではないところの多くのエンジニアの人たちだとそこまでローレベルな話を気にする人は少ないものだと思うので、そういうレベルからすると知らない話がたくさんあって、TCP/IPの仕組みをよく考えると知らない、なんて人は学ぶところが多くあると思う。

僕は昔々に情報セキュリティスペシャリストという資格をとったことがあるんだけれども、そこで勉強したことよりも通信の始まりから終わりまでのことが書かれており、最初に書いておいて通り、LAN以後のことはよく知らなかったので興味深く読ませてもらった。一方、OSI7階層モデルのなどの話は全然されない。あくまで本書の最初に書いてあるとおり、ウェブブラウザからリクエストが飛んで行ったらどうなるか、という話をされる。ウェブブラウザからLANを通りルータからプロバイダ、そしてインターネットへ…と流れていく通信を、各機器の役目や通信プロトコルの仕組みを通して順次説明されていく。

実際僕がプログラマとして本書で勉強したことが役立つかと言われると、既にある程度理解している立場からすれば万が一役立つことがあるかもしれないぐらいの感じではある。ただ一通りに通信の仕組みに触れられているので、何かで必要になった時に理解が早まるきっかけを持っておくという意味では浅く広く得た知識が役に立つかもしれない。しかし、きっとネットワークを扱う事自体を本職とする人たちからすればまるで足りないだろう。ただ、通信の仕組みがまるで想像できない人や、逆にエンジニアとの話をする上で共通の知識を身に着けたいという人は一読しても良いと思う。まるで仕事に関係がない人でもネットワークって不思議だなあって思ってる人は楽しく読めるかもしれない。

これだけはおさえたい 文系プログラマーの数学知識 基礎の基礎を読んだ

これだけはおさえたい 文系プログラマーの数学知識 基礎の基礎 (プロフェッショナル「確実」養成講座)

これだけはおさえたい 文系プログラマーの数学知識 基礎の基礎 (プロフェッショナル「確実」養成講座)

文系プログラマにはありがちだと思う数学コンプレックスみたいなものが僕にもあって、折を見てちょくちょくとそれっぽいことを勉強している。どこかで紹介されていたのでウィッシュリストに入れていたところ、誕生日に買っていただいたので読んでみた。

全体の感想としては、特に数学に苦手意識のある人のための本ではなく、ただ単に高校で学ぶ数学の基礎を並べた感じだった。僕としてはそれで数学が理解できているなら今頃数学コンプレックスなんぞ持っていないわけで、主語の大きさに負けて巻き込まれてしまったというのが正直なところである。 コラムのうちのいくつかや、章の最後に数学の知識はコンピュータで言えばこういうところに使われているという話も申し訳程度で、数学の楽しさを伝えてくれるものではないと感じた。

肝心の数学自体の解説も特に分かりやすいと思うことはなかった。教科書と何ら変わりないと思う。常々数学の問題を解く際に疑問に思っている、唐突な「XをYに置き換えると~」というような「え?なんで置き換えるの。じゃあ最初から置き換えといてよ」みたいないかにも数学の苦手な人が思いそうな疑問はスルーだったし、「文系プログラマー」というのは煽りだったのだなと思う。

数学は論理というが、こういう解き方は最初から解き方を知っている人の解き方なので、それは暗記というものだと思う…別にそれ自体を問題と思っているわけではない。実際に大学受験の際は僕は理解せずに暗記だけで結構な点数を取れていたから。ただやっぱり自分で活かせる知識として理解したいと思う僕にその解説では困る。

この本は文系のカリキュラムゆえ数学に長く触れていないだけで特に数学が苦手ではなかった人が知識をさらうのには良いのかもしれない。僕にはもうちょっと根本的な、数学概念とでもいうのか、そういうところから改めて入ったほうが良いような気がした。