Google検索

Google
 
ラベル Program の投稿を表示しています。 すべての投稿を表示
ラベル Program の投稿を表示しています。 すべての投稿を表示

2008年1月27日日曜日

プログラマ必読の書---お薦めの本:Joel on Software

プログラマやプロジェクト・マネージャ必読の書といわれる本です。私もようやく読み始めました。英語版で読んでいるのでなかなか進んでいないのですが、うなずけることばかりです。日本語の本と英語の原書へのリンクを張っておきます。

Joel on Software, Joel Spolsky著

この本は、著者Joel Spolskyのブログ "Joel on Software"を編集加筆したものなので、実はWeb(英語ですが…※)を読めばだいたいのことはわかってしまいます。しかし、画面上ですべてを読むのは大変なので、私は本を買って読むことをお勧めしたいと思います。
日本語訳も一部あるようです。

さて、コーディングのことというよりは、プロジェクトマネジメントに近い話が書いてあるこの本をなぜプログラマがなぜ読むべきなのか?ということなのですが、私はこれはプログラマが効率をアップさせるために、ひいては無茶を言ってくるマネージャの論理を粉砕するために(もっとも粉砕したところで、往々にしてスケジュールには影響しなかったりしますが(泣))必要なことが書いてあると思うからです。

残念なのは原書に載っているものは8年前だったりするので、今やJoel Spolsky自身が「これは読まないで!」とWebに書いてあるようなものもあります。たとえば、

Painless Software Schedules, March 29, 2000



Evidence Based Scheduling, October 26, 2007

ですね。本に載っているのは "Painless ..." の方なので、Joel Spolskyいわく学んで進化したスケジューリング方法を合わせて読んでみるとよいと思います。

とはいえ、今開発の現場で7年前の教訓でさえできていないところがあるのではないかと思うのです。マーフィーの法則によれば
"If it can happen, it will happen."
「起こる可能性のあることは、いつか実際に起こる。」


だそうですから、きっとどこかの現場ではDeath Marchまっただ中というプロジェクトがあるかもしれません(あまり想像したくありませんが…)

私が一番コーディングに費やす時間(コーディング量ではないところに注意)が多かったと思われる1990年代には、まだWindows95は出てきていませんでした。表計算ソフトはExcelはMacintoshではあったものの、DOS版のはMultiplanという高ーいソフトがあったくらいでしょうか…当時流行りだったLotus1-2-3のような表計算ソフトを、Joelがいうようなやり方でスケジュール管理に使おうなんて思ってもみませんでした。これを知ってたら、多少なりとも改善できたのになぁ…と思うわけです。

もっとも、その当時、バージョン管理ソフトなんて知らなかったし、汎用機で開発していたので、その辺の仕事は全部ライブラリアン任せでした(遠い眼)

つまり、自分で進捗管理するためのツールはOASYSで作った表がすべて。作って提出したらそれでおしまいで、日付を数値として扱って、どれだけの日数を費やして、どれだけ予定から遅れているかor進んでいるか、などを振り返るようなことはありませんでした。

あるプロジェクトにかかわった時は、最後のほうは、ほとんどデス・マーチといってよい状態でしたから(そういえば当時はデス・マーチなんて言葉はなかった)、自分で細かい進捗管理なんて余裕はなかったし(爆)プロジェクト全体はともかく(管理者でないから手に負えない)、もうちょっと自分のことを管理できるスキルがあったら、体を壊すなんてこともなかったなぁと、しみじみと思い出します。そういう発想さえなかったこと自体、ワーク・ライフ・バランスをいかに崩していたかという証左でしょう。

何かを改善しようと思ったら、今の言葉でいう「見える化」(この言葉は私は好きではないので「可視化」といいかえたいと思います)をしなくてはいけないと思います。それが「Evidence Based Scheduling」であったり、「可視化」の作業だったりするわけです。何をどうすればよいかという話は、ぜひJoel Spolskyの書いた本Joel on SoftwareやBlog "Joel on Software"を読んでみてください。

「可視化」に絡めて、私には心配なことが一つあります。この「可視化」やら「Evidence Based」で仕事をするためには、なにかしら開発者の作業logを取る必要があります。私のように一人プロジェクトで自ら率先してするのはいいのですが、ある程度以上の規模の会社だと、逆に労務管理が行き過ぎたりとかする心配もあります。あくまでも、取得したlogは、プロジェクトの生産性の向上にのみ使われるという了解があって成り立つものだということを、運用管理する人は肝に銘じてほしいなと思います。悪意のある管理者は、コンピュータのシステム上では何でも出来てしまいますから…

そうそう、本題とはちょっと話が横にそれますが、プログラマなど実際の作業をする人は、先ほど述べたような作業logを取られていることの潜在的な危険性もあることをよく理解して、言い訳のできない内職などはすべきではない、ということをよーく考えてほしいと思います。就業時間中や大学の講義やら演習中に、全然関係ないWebサイト(たとえば、Mixiやら人に見せられないWebサイト)を大学や会社のネットワークから覗きにいったりしていませんか?そういうことをしている人に親切心から注意すると逆切れされたりすることもあるのですが(私は、そういう人に限って注意した時に逆切れしたり、あとから別件での文句をいうが多いことに、演習や講義を担当してはじめて気がつきました…彼or彼女らは自分のしていることが分かってないのでしょうか?)それって、大学や企業の管理者にはバレバレだってことを、理解しているのでしょうか?大学だったら真面目にやってない証拠と教官に理解されて、場合によっては単位を取れなくてもおかしくないでしょうし(悪質な場合は退学だってありうる)、企業だったらクビになりかねません。(アメリカではE-Mailは管理者がすべてフィルタにかけて、怪しい人をチェックするそうです。こういうことがあると、産業スパイなどの嫌疑をかけられても申し開きをするのは難しそうです。)

生産性の向上だけでなく、自分のための危機管理(過労死を労災申請するときには、この日報や作業ログが重要な証拠と成り得ます)という意味でも、日報やら日々の作業ログは自分で自覚的に取るべきだと思いますが、いかがでしょう。

2007年5月28日月曜日

◎◎Hacks

最近ビジネス書で「◎◎Hacks」と名前のついた書籍をよく見かけるようになったなぁと思う。

たとえば、東洋経済新報社から出ているIDEA HACKS!TIME HACKS!PLANNING HACKS!は今でも書店で平積み状態だし、技術評論社からもいくつか同様のビジネススキルに関するTips集が出ている。今挙げた三冊とも購入し、読破した。話の内容は、新人社員でも今からこつこつやれば、モノになりそうな技でまとめてあって、楽しく読めた。私的には知ってる話が多かったかなぁ…使いこなせているとは言えないけれども。

最近のこの手の話の肝はパソコンやインターネットの機能を上手に使うという事に尽きる。ちょっと前までTipsと言っていた話だ。

今時はこうしたTipsをHacksと言ったりするのだなぁと思ったりもする。HackerとかHackingといえばコンピュータを使った悪人や悪事の代名詞の用に言われていただけに、時の移り変わりを感じる現象ではある。とはいえ、本来の意味とは違った意味で使われている事に忸怩たる思いをしていた真性Hackerは多かっただろうと思う。やっと本来の意味で使われてはじめた事は、めでたい事ではある。

私の認識では、最初にHacksと堂々と名前をつけはじめて書籍シリーズを作ったのは、コンピュータ関連の専門書籍出版で有名なオライリー(リンク先は米国O'Reilly Media Inc.子会社のオライリージャパン)だと考えている。しかし、最初かどうかは私も具体的に証拠があるわけではないので、その点、異論があるかもしれない。

この流れで技術評論社他各社がHacksと銘打った本を次々と出版し、ビジネススキルにHackの意味範疇を拡大させて、しまいにゃ人生(Life)までHackの対象にしてしまった。

小技集でもTipsでも裏技集でも、使える技の集合を呼ぶのに何語を使ってもなんと呼んでも良い、とは思う。しかし、一方で「なんでもかんでもHacksと呼んでしまうのはどうよ?>俺」と一人斜に構えてしまう。

「具象を言語化する日本語、抽象を言語化する英語」とは私の今は亡き大学の恩師がよく言ったもので、こうした現象を見ると「確かにそうだなぁ」と思う。英語は概念が同じなら同じ名詞、同じ動詞を使うし、それが具体的な物事を中心に考える日本人にとっての解りづらさにつながっているという話だ。HacksやTipsも日本語より使われる頻度が上がっているんではないだろうか。この小さな違和感は、日本語を母語として使う日本人だからなんだろうか?

というわけで、日本語サイト限定でググってみた。

 Hacks --- 約2,030,000件
 Tips --- 約2,410,000件
 小技 --- 約1,520,000件
 裏技 --- 約2,550,000件

この結果だけなら、「裏技」という言葉も案外使われている。ファミコンや「伊東家の食卓」様様?
でも「人生の裏技」って、なんか「アレな感じの人」に思われそうで嫌(苦笑)
Tipsは市民権を得てる感じで、Hacksは成長株でしょうか?
私的には、TipsよりはHacksの方が手続きが煩雑そうな気がする。

日本語は具象物にそれぞれ名前をつけていくというのが伝統的な言語化の方法であるように私は考えているのだが、こういう外来語を多用することで、本来の日本語的な造語能力が削がれているのではないかと思うことしばしばである。それとも外来語が一つ増えただけで、日本語の柔軟さを誇るべき?

せめて日本語書籍のタイトルは、英語とは別に、もう少し雅な言葉で考えて欲しいなぁと思うのであった。
もっとも、日本のコンピュータ関係の専門用語は英語ばっかりで、日本語は定着しないのが多かったから、頑張らないといけないのは、計算機関係の学者グループも同じかもしれない。文武両道、文系も理系もできるというのが本来の学問を目指す人の姿だとは思うが、これはまた別の機会に。