書評 | 写真 | 自転車 | 音楽 | 映画 | Web | スマートフォン | 拡張現実 | 育児 | 自分

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告
  3. |

【書評】BEST SOFTWARE WRITING このエントリーを含むはてなブックマーク

BEST SOFTWARE WRITINGBEST SOFTWARE WRITING
(2008/02/21)
不明

商品詳細を見る


Joel on Softwareで有名なJoel Spolsky著。

ソフトウェア開発に役立つ記事を集めた本。
チーム、採用、アウトソーシング、プログラマ、ルール。
文章集となっているので、興味があるセクションだけ読み上げても充分にためになる。

真新しい内容というよりから、知識の整理として役に立ちそうな一冊。
チームをまとめる人、チームの一員でがんばる人、どちらでも楽しめると思います。

印象深い文節が非常に多くて、下記に抜粋をまめたのだが、
非常に数が多くなってしまった・・・。

ということで、以下抜粋。

・良い文章のための第一ルールである、「語るのではなく、見せよ」
・マーケットは付加価値に対して金を出すと言うこと
・ソフトフェア会社がオペレーションの効率と戦略を混同する時、アウトソーシングは失敗する
・オペレーションの効率が良いというのは、作業コストが安いか、あるいは作業がより早くできるということだ
・戦略というのは、長期的な競争優位を作り出すためであり、ソフトフェア会社にとって競争優位は、確信的なアプリケーションを作る能力である
・ソフトフェア会社がアウトソーシングする時、その会社はイノベーションの能力と競争優位を失うこととなる
・ソフトフェア組み立て工程というのは、ただ最終的なプログラムをディスクにコピーし、マニュアルと一緒に箱に詰めて鋪装するだけだ
・非常に単純なものにするためにこそ、彼らは知性を使うべきという話をした
・複雑で弱くて素晴らしい人間の本質をよく考慮し、柔軟性、チェック・アンド・バランス、寛容さを組み込んでいるようなシステムは、絶望的な状況でもよく生きる傾向がある。
・柔軟で、シンプルで、ルーズで、寛大で、人間の欠点や弱さにまったく寛容なソフトフェアは、実際に最も心が強く、生き延びて成長していくが、一方で、要求が高くて抽象的な、リッチではあるがシステム化されているソフトフェアが、ゆっくりの内側から壊れ、自ら潰れる。
・価値を付け加える時には、シンプルで柔軟で、ルーズなやり方で付け加えて、最後には、あなたの中に理想論者が嫌うものを全て付け加えて欲しい。
・本当に社会的なインタラクションをサポートする社会的メディアを構築しようと思うなら、社会生活がどのようなものであるかに基づいて構築すべきではないのか?人々がニーズに応じて違った方法で交流できるようにするため、ありとあらゆるニュアンスを扱えるようにするべきではないか?
・単純化された人のインタラクションのモデルは私たちの業界に溢れている。そのようなモデルに基づいたテクノロジーが急速に受容されるとき、それらのテクノロジーのメリットばかり謳われ、人々が実際にそれで何をしているのかを立ち止まって検討されることはない。
・私たちは実際のソーシャルネットワーク -信頼関係や情報の流れ- については何も語らない
・最も成功する社交的テクノロジーは、人々の生活とやり方にフィットするものだ。それは人々の抱えているギャップを埋めるものであって、人工的なニーズを作り出すものではない
・彼らの枠組みで彼らのしていることをみてみることだ。私たちが望むように振る舞うことを彼らに求める変わりに、彼らがなぜ私たちとは異なる道を選ぶのかを理解しようと努めることだ。彼らの見方を理解できたなら、私たちは半分やり遂げたようなものだ
・抽象化の実現のために、くぐり抜ける必要のある困難を無視せととそそのかすようなものについては特に気をつけている
・コンパイラは(不完全な)テストの一形態に過ぎないことに気がついた
・動的型付け言語は静的型付け言語同様に頑健でありながら、よりW生産的なものにしうるのだということを理解した
・テストされていないものは壊れていると思え
・強い型付けではなく、強いテスト
・プログラマの生産性のばらつきは極めて大きく、それはほとんど別種の存在だと言っていいほどになる
・彼らはどれほどたくさんもらえるかということより、そこで何をするかということのほうを気にかける
・良いマネージャーというのは、しばしば問題を面白いものとして再定義する
・ハッカーは他の人にどう見られているか気にしないという一般的な認識とは異なり、彼らはしばしば頭が良いようにみせようとかなりの努力をしている
・ハッカーの場合には、その好奇心がとりわけ強く、物事の仕組みについて特に強い関心を持っている
・優れたハッカーというのは膨大なコンテキストを頭の中にため込むことができ、そうして1行のコードを見るときも、その行だけではなく、その周りのプログラム全体が見えているのだ
・非常識であることはプログラミングでは有用な素質となる。プログラムというのはとても複雑であり、優れたプログラマのてにかかるときはとても流動的なものいうとなる
・それがちゃんと動いて簡単であってくれさえすればいいのだ
・私は愛のほうがずっと好んでいるが、無関心より憎しみのほうがまだいい
・私は違いを作り出そうとしているのだ
・朝に悪態をつかれても、その夜には一緒に愛情を持って和やかに飲みたい
・私は他の人たちに本当の尊敬の念を持って接し、彼らにありのままでいて、やりたいようにやらせておきながら、他のことも試してみるように影響を与えるべく、できる限り努力したい
・新技術というのはどんなものであれ、主流になるためには、支配を奪う競争相手である既存のレガシーをうまく利用できる必要がある
・大きく持続する変化といのは、意図的に組み立てられた一連の小さなステップにより行われる活動でも可能になるのだ。
・開発者たちが既に持っている足を利用できる場合には、それはとりわけ強力なものとなる
・彼らがあなたに質問しているのは、あなたが答えを知っているからではないということだ。彼らがあなたに聞いているのは、肩書きにチームマネージャーと書いてあるだけであり、それで彼らはまともな答えが得られると期待しているのだ
・ハマッった状態を克服することは、自信と、経験と、尊敬とをもたらす。ただしそのためには、自分が実際にどれだけハマッているのかを知り、それを修正する方法を見つける必要がある
・仕様書を要求している人が、本当にその情報を必要としているなら、あなたのハマリ度は高くなる。どこかで誰かが仕事ができなくなっていて、そのせいで誰かが仕事に失敗することになるかもしれない
・「これは事実を求める率直な要求なのか、それともマネジメントの無駄な仕事なのか」
・あなたがとるべき道は常に、顔をつきあわせたコミュニケーションだ。時間があるときは特にそうだ
・2人より多くの人間がいるエンジニアリング組織が、バージョン管理とバグトラッキングを持たずに仕事をしているなら、製品開発サイクルが加速し始めるとすぐに、ばったり倒れてしまうことになるだろう
・エンジニアリングマネージャーのあなたが最終製品の入ったDVDをプログラムマネージャーに渡すと、彼らはそれが店頭に、正しい箱にはいて並ぶことを保証する。
・プロダクトマネージャーもプログラムマネージャーも情報の仲介屋だ
・良いプログラムマネージャーは細部の監督者だ
・彼らはリリースにかかわる山ほどの細かい事柄を処理しており、平均的なエンジニアリングマネージャーの時間を彼らがどれほど節約してくれるかには驚かされる
・プロダクトマネージャーからのデータは、あなたのチーム全体の仕事に影響を与えるためだ。時間が切迫してくると、あなたは「ああ、顧客にとって何が一番良いかなら私はわかっている」と宣言して、自体を悪くすることだろう。
・最後のひと月は心を失うものだ
・現実に基づかない不合理でバカな振る舞いをもたらすことになる
・助けを求めるというほはたいしたこと
・不平を言うのと言うのはデータを伝える一つの手段
・エンジニアリングの人間が1ヶ月かかるといったら、それはたぶん3ヶ月かかる
・正直なところ、その機能の半分を作ってしまうまでは、それにどれくらい時間がかかるかわからない
・機能とスケジュールのチェックポイントを組み込んでおくもので、ゲームの途中での修正は、最終的なスケジュールに対する信用を高めることになる
・最後の最後にスケジュールを変えるのは、ランズのマネジメントでやってはいけないこと第3番の「おどかしっこなし」に反する
・あなた自身がハマった状態に身を置くこと
・情報共有や調整が必要な仕事に置いては、従業員の給与と最高と最低の差が小さい組織のほうが、長期的には良いパフォーマンスを示す傾向がある
・給与格差システムを、ビジネスにおける経済的要因に可能な限りちかづけることによって、Nucorは部分最適化の問題を回避したのだ
・その人の管轄外の領域であっても成功に影響を与えた人には報いることによって、知識共有を促している
・楽しさや成長やチームワークやチャレンジや達成といった、より本来的な報酬に重きを置いているのだ
・グループというのは実行時の現象なのだ。前もってグループが何をするのか決めることはできない
・核なる信条に口出しするとき、あなたは単に意見を言っているのではなく、グループの団結を脅かしているのだ
・決まりごとは必要なのだ。規範とか、しきたりとか、法とか、いろいろな言い方がされるが、それはあらゆる可能な振る舞いの宇宙の中から、受け入れ可能な比較的小さな範囲を切り取るものだ
・集団構造というのは、グループを自分自身から守るために必要だということ
・集団構造は、グループをそのメンバーの行動から守っている
・何かを学ぶためのもっとも良い方法は、誰かが発見して話してくれたことを学ぶことだ
・「我々にはルールを作るためのルールが必要だ」
・決まりごとというのは、大きな長期間存続する異質なものからなるグループには必要なものなのだ
・人々はこれらのアイデアに慣れ、技術的な形態を十分によく理解し、社会的に新しい使い方ができるようになるのに、しばらく時間がかかったというだけのことだ
・技術的な問題と社会的な問題を完全に分離することはできない
・誰も会話を社会的な問題と技術的な問題に分けることはできない
・社会的な問題を完全にプログラムすることはできない
・技術的な現象と社会的な現象を分離することはできず、社会的な事柄のすべてを技術によって規定することもできない
・グループは何からの形でソフトフェアとは独立のその存在を示し、あなたが手にするのは、社会的な現象と技術的な現象が混じり合ったものになる
・グループはリアルな存在だ。不意の現象が現れる。無視することもプログラムすることもできない
・最も機能することの多いパターンは、あらかじめソフトフェアにすべて組み込もうとする代わりに、グループにとっての価値が何なのかを決め、その価値を守る責任を、グループ自身の手に委ねるというものだ
・コアグループは状況によって個人の権利より強い権利を持つと言うこと
・ある程度まとまりのあるグループは必ず決まり事を持っている。
・非公式の決まり事というのは必ず存在し、ときには明示的に公にされること公式の決まり事がある場合もある
・ユーザーが身にまとうハンドル名を用意することだ
・優良メンバーとなる方法、つまり、良い行いが認識される仕組みを作ること
・たとえ小さなものであれ、グループの参加には障壁は設ける必要がある
・グループのゴールは、ときには個々のメンバーのゴールと異なったものとなる
・グループをスケールの問題から逃れさせる方法を見つける必要がある
・価値はグループのサイズに反比例するもの
・コンピュータで実際に何をしているかをユーザーにアンケートをとっていみると^、ある種の社会的な行為がいつもリストの上位にはいってくる
・集団行動のロジックは個人的な解決法を無効にする
・グループのゴールとは矛盾しても、個人の自由を最大限にしようとする
・セースルガイは金によってのみ動機付けされる
・セールスガイは製品を顧客に近づける
・長い時間かけてソフトウェア製品が熟成すると、セールスガイが増え、開発者は減っていく。製品はもはや顧客のほうへ近づくのはやめている。ギャップを埋めるために絶えず顧客のほうに製品をもっていく必要がある
・準備ができるまでセールスガイを持つことを強いられる羽目にならないように気をつけることだ
・ソフトウェア開発には時間がかかる。それを「オープンに」やるというのは、その間に製品を知ってもらえるうまい方法だ
・ポジショニングというのは、あなたの製品がそのターゲットとするマーケットにどう認知されるか、そのことを見出すプロセス
・競合を避けることは、同時に顧客をも避けることになる
・あなたの製品と似たものがマーケットに存在しないのなら、むしろそのことを恐れた方がいい。
・アプリケーションの完成を待たずに、早い時期に悪い知らせを得られたことで、状況は良くなる
・最も高価な製品を買うというやり方は、すべてを詳細に調査する時間のない買い手には都合のいいショートカットになる
・顧客によって、値段が7倍する競合製品は7倍優れているのに違いないと思うことだろう
・今いるより1人多く正社員が必要なことが100%確かになるまでは、給与支出を増やさないこと
・採用というのは確率の問題だ。採用候補者の評価する時に私たちがしていることは、基本的にはその候補者が募集枠の仕事で成功できるか予想するということ
・採用の決断に私はあるパターンを見出した。まずい決断の多くは女性の意見なしに行われたといことだ
・「まずい候補者を採用するよりは、良い候補者を不採用にするほうがずっとましなのだ・・・何であれ少しでも疑念が残れば不採用だ」
・採用する人のそれぞれの独特な方法でチームを改善してくれるように人を選ぶべき。私と同じ才能を持った人は探していない。むしろ、少なくとも私より1つのことについて私よりす優れた能力を持つ人を探している
・自分の将来の成功について真剣に考えている人たちは、成功する可能性が高い
・絶えず学び続けることに真剣な人を雇うということ
・絶えず学ぶ人々というのは、自分が何を知らないか知っている人だ。
彼らは自分の弱点を知っており、そのことについて話すのをためらわない
・候補者に最大の弱点をたずねる。
・候補者が自分の弱点を理性的に認めるなら、私は感心する
・プログラマではなく開発者を雇う
・どんな教育を受けているかは成功を予測するための指標として使えるが、いつも正確だとは限らない
・大学が学生に教えているのは、コンピュータサイエンティストになる方法だ
・人はたくさんのコードを書くほど良いプログラマになるものだと思っている
スポンサーサイト
  1. 2008/06/10(火) 21:00:00|
  2. 書評
  3. | トラックバック:0
  4. | コメント:0|
<<favicon(ファビコン) | ホーム | 秋葉原の歩行者天国>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://kenshi0815.blog108.fc2.com/tb.php/213-22c1ac01
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。