著作一覧 |
翔泳社の野村さんからいただいた「プログラマーとお仕事をするということ」を通勤電車の中でちびちび読んでいて、大体1か月で読了(他の本読んだりしていたからで、すごく読むのに時間がかかるというわけではない)。
内容はソフトウェア開発プロジェクトをどうすれば成功させることができるのかを、筆者の経験と統計データ(脚注でそれぞれの数字の出典が示される)を組み合わせて説明したものだ。といっても、プロジェクト運営の話かというと相当違う。どちらかと言うと、ソフトウェア開発とは何か? 何が問題点なのか? についてヒューマンリソースという観点から説明したものだ。
すでにアマゾン評が3つ出ていて、星5、3、2と分かれていて、それを読むと、なぜこの本が成立するのかわかる。
星3の人の評。
プログラマーとして、どういう点に気をつけるべきなのかというモチベーションで読みました。
(略)
技術的な詳細について中途半端に(わかりにくい比喩で)触れていたり、全体的に文章が回りくどかったりして非常に読みにくいです。
(略)
プログラマーにとって、中途半端でわかりにくい比喩が書かれているそうだ。
この人、残念ながら、筆者の意図も主張もわかっていない。まさに、プログラマーにとって自明なことが(用語を使えば1発で理解できることが)プログラマー以外の誰にも理解できないことこそ問題の本質だ、というのが筆者の経験から得た観点であり主張であり(そして数的な裏付けがあること)なのだが、それを自分の口から証明してしまっている。
星5の人を見ると、
非プログラマーとして、プロマネの仕事をするようになって、かれこれ30年近い。
(略)
おう。
星2の人。
この本のターゲットは、プロジェクトリーダー、発注者、デザイナーなど、プログラマーに仕事を依頼したり管理したり協働する人たちのはずです。
したがって、プログラマーのことは、ブラックボックスとして記載すれば良いのに、ホワイトボックス、つまりプログラマーの中の事情をけっこう書いてしまっています。
(略)
いや、プログラマーをブラックボックスとして扱う(1か月にブラックボックスがコードを吐き出す量は何行だから、頭数何人で何か月でソフトウェアが完成するという発想)ことこそが本質的な問題だから、そもそもプログラマという人々がどういうことを脳内でやっていて、それがどう表現されて、何をすると不愉快にさせて、何をすると気持ちよく仕事してもらえるかを非プログラマがきちんと理解、把握(ただし技術的な詳細は無理なんだからそこはおもしろ話を使って)できるように解説した本なんだから、そもそも読み方が間違っているし、問題の本質を理解してないじゃん。
というわけで、5の人は正しく読んでいるし、正しく読めば星5となるのは(類書がないだけに)当然だ。
3の人は、わけわからん比喩こそが、自分の説明責任の範疇にあるのだなとびっくりして(=認識をあらためて)出直すべきだし、2の人はさすがに読解力が無さすぎるから、そりゃうまくいかないだろうなぁ。
採用戦略(7章)、採用した人間の引き留め戦略(8章)、コミュニケーション戦略というかヒューマンマネジメントのための基礎情報(9章)は、プログラマ(おれおれ)が読んでもおもしろい(宗教戦争とか言語戦争とかフレームワークフレームウォーとかその帰結とか)。意外と明文化されることで、実はおれはこう考えていて、隣のやつはこう考えているのかという発見もあった。
特に非プログラマにとって重要なのは2章の「なぜソフトウェア開発は建築と似ていないのか」と4章の「彼らは一日中何をしているのか」(特に4章)、逆に言うと、もしプログラマで4章を読んで首肯できないとしたら、相当問題がある。正しくプログラミングをしていない可能性が高い。
プログラマーとお仕事をするということ(PatrickGleeson)
というわけでお勧めできる。
# アマゾン評でも指摘があるが読みやすさは万全ではない。おれの偏見かも知れないが、いかにもイギリス人っぽい、斜に構えた意地悪さ(というよりも辛辣さ)と皮肉がある。それは喉にささる小骨だから、コーラを飲むようにはいかない。パトリシアハイスミスとかシェークスピアとかオースティンとかサキとかに似ている。
以前購入したHPのChrome Bookだが、次の点で重宝している。
・ちゃんとしたクラムシェルだからどういう使い方でもキーボードが打てる(横向きに寝転がっても、90度倒しても立つから使える)ので、寝台で使うのにもってこい
・全然発熱しないから腿の上に置いても、腹の上に置いても無問題。
(ここまではTwitterみたり、FBとか眺めたり、リンクたどりまくったり、PDF読んだりする普通の使い方)
それにさらに1点加わった。
croshというアプリケーションがあるのだが、こいつが実に良い。
Chrome Bookで普通何かしようとすると必ずChromeで動かすことになって、それはsshもそうなのだが(アドレスバーに、ssh://ユーザーID@ホスト名 を入れれば良い)、Chromeでsshしているととてつもなく使いにくい。bash使うわけじゃん。当然、^nを打つわけだ。あっというまに新しいウィンドウが開く。emacs使うわけじゃん。当然、^wを打つ。あっというまにすべてが消え去ってしまう。使えん!
が、croshは独自ウィンドウを持つアプリケーションなので、そんな問題は皆無。
ただ起動すると、crosh>というプロンプトが出て、これが使い物にならなくて、最初戸惑いまくる。
ssh 〜と打つと、sshはリムーブされたからofficial SSHをインストールしろというわけのわからないメッセージを出力して終わる。
helpと打つと、pingの説明が出て来る。
なんだこれ?
help_advancedと打つとすごい勢いで何かメッセージが流れていって、uptimeとvmstatととかしか見えない。パイプはないので、|moreも|lessもできない。
それで当てずっぽうでいろいろ打っているうちに、ついに見つけた。何を?
永遠を。太陽に溶け込む海を。
つまり、
shell
だ。
shellと打つと、bashに入れる。
そこで、ssh が使える。
sshが使えれば、アカウントがあればどこにでも入れる。Chromeと違って余分なことはしないので、^nも^wも問題なし。
Shift-Ctrl-Nでウィンドウも複数開けるし。
日本語入力については最初サーバー側にSKKを入れていたが、そんなことしなくてもクライアント側のGoogle IMEでも日本語入力ができることに後から気づいた。もっともGoogle IMEよりはSKKのほうが変換効率がはるかに良いから(念のため、おれはSKK原理主義者ではないから、WindowsではMSのIMEを使う(Vistaは除く)。あくまでもGoogle IMEがだめなだけだ。ただし日本語のコメントやコミットログやイシューを書くくらいならGoogle IMEでも問題ない。まともな日本語の文章を書くには語彙が貧弱過ぎるということだ)どちらにしてもSKKを入れることは問題なかった。
で、当然だがChromeは動くから、Webアプリケーションをインタラクティブにプログラミングするには必要にして十分な環境が得られるわけだ(要は端末として速度も機能も必要十分以上ということ)。
もっとも最初、F12が無くて愕然としたが、Ctrl-Shift-Iを見つけたので、これも無問題だった(良くみたら右端のメニューアイテムからもその他ツール−デベロッパーツールで呼び出せることに後で気づいた)。
というわけで、Chrome Bookは相当良い。
ジェズイットを見習え |