Open Classes, Open Companies

  • Posted by Nick Sieger

http://blog.nicksieger.com/articles/2006/10/21/rubyconf-nathaniel-talbott-open-classes-open-companies

Speaker: Nathaniel Talbott


更新:Nathanielの発表のフルテキスト版


Nathanielはなんと6年連続でRubyConfのスピーカーを務めている。今回の発表における基本的な彼の仮定は次のとおりだ。あなたの選んだ言語はあなた自身に影響するある特徴をもっている。順番にそうした特徴についてみてみよう。ビジネス上の価値あることにどのように関係しているだろうか。

  • 動的

Rubyの型システムです(静的型付けの反対ですね)。私のプログラムは型チェックを満たしていないかもしれない。静的型付けは理論的によいように聞こえますが、それが実際に役立ったと思えたことははありません。
ビジネスにおいて動的さはどうでしょう?肩書きは?もし"箱"のなかに人を詰めるなら、彼らはずっとそのままでいるでしょう。人事にとってはそれでよいかもしれないが、ビジネスの成長には十分ではないです。Rubyにはダックタイピングがありますが、固定式の肩書きは静的型付けのようなものでです。目の前の状況に対応するのを困難にするか、できると思ってなかった役割を担えるように成長できなくするかのどちらかでしょう。プログラマーとして営業で成果を発揮できると思っていませんでしたが、今ではそれが好きだと、Nathanielは話しています。

プログラムの振る舞いは順序依存(文脈上)です。Rubyがコードを逐次的に実行していくのを理解したなら、そこに力を見出すでしょう。必要になるまで決定を遅らせることができ、ダイナミックなビジネスを助ける特徴となります。

  • 簡潔さ

Matzによって規定されたRubyのゴールは簡潔さですが、それは簡潔さのための簡潔さ(たとえば極端にコンパクトなPerl)ではなく、読みやすさ/書きやすさにおけるものでもありません。
簡潔な法契約は、限られた時間を賢く利用します。さもなくばクライアントが声を張り上げることでしょう。法的な契約は、(クライアントの)期待を固め、誰も驚かないようにするという目的をもつべきです。
あなたの雇用契約は長く法律用語に満ち溢れているかもしれません。気づかぬうちに会社の奴隷としてサインしてしまっているかもしれません。用心しなさい。要約を求め、オープンソースプロジェクトに貢献すべきあなたの能力にいかに影響を及ぼすかを考えてみてください。

  • リフレクション

Rubyは高度なイントロスペクションを可能にします。あなたの職場はイントロスペクション(内省)を奨励してますか、それとも罰っしていますか?あるいは自動追尾的なものでしょうか?

  • オープンなクラス

Rubyはどのクラスも開放されています。コードを追加したり除いたり、状態を汚すことができます。それらをどこか壊すことができるでしょうか。できます。しかしRubyは安全性や難読化による保障以上に実装力に価値をおいています。
あなたの近しい人があなたについてたくさんのことを知っているなら、あなたを傷つけることができるでしょう。あなたは攻撃されやすい状態にあります。でも別な側面からみるとオープンであることが信用を築きます。それはビジネスが成功する本質的な要素だと思います。
あなたの同輩が支払われているものを知っていますか?パイプラインの中にどんなやりとりがあるか知っていますか?本を見ることはできますよね?
Rubyのオープンな性質は無警戒にみえるかもしれません。でも驚くほど純朴です。

  • 議論

Q.これらの技術は技術的な拠点の外でも働きますか?
A.私のビジネスは場所によって牽引されるものではありません。私は与えられた習慣の中でも仕事を任命することができます。


Q.あなたは同輩が信頼できて正直だと仮定してます。容赦なく競争の厳しい環境ではどうですか?
A.組織を変える必要があるか"組織を変える"ことを変える必要があります。すなわち、あなたの価値を発揮する場を見つけるために仕事を変えるか、効果的な変化を試しなさい。


Q.透明性は実世界に合います。ソフトを壊すことと会社を壊すことは2つの異なることです。おそらく類推を引き出せるだけでは?
A.起こりうることで最も悪いのは、経験から学ぶ以上に他に投資した時間から何も得られないことです。リスクを限定するのは大事です。あらゆるクライアントにあらゆる詳細を言い触らしてるとは言いません。


Q.はっきりと詳細を調べて値をつけるのか、1時間ごとに段階的に仕事をするのか?
A,時間と材料を間に合わせるだけです。RFPは私の自由を奪います。紙の束で時間を浪費し、私の意見より信用を得ます。


Q.テストはどのようにこれに関わってきますか?
A.Rubyの価値のひとつは絶え間ないフィードバックです。それはテストの大きな信条でもあります。絶え間ない短いサイクルの負フィードバックがあれば長期間の契約に巻き込まれることはありません。顧客をテストしなさい。


Q.仕事の言葉の中にそれをどう加えますか?
A.私は信頼にたる関係を築いていると顧客が分かっていることを確信しています。これらすべてを理解させろと主張しているわけでもない。


Q.信頼できるチームメンバがさらに増えた場合でも当てはまりますか?
A."スケールするの?"という質問はRubyでいつだって新鮮な問題だと思います。部分的には気になりません。今自分がうまくいってますから。でも一方でそれについて考えます。もっとたくさんの人を囲いの中に入れられたらなって思いますから。
[観客からのコメントでライフスタイルを実現できる会社の議題に発展した。]


Q.契約には2つのタイプがあります。2ページで済むビジネスの契約と、50ページに及ぶ"文書で残しておけ!"方式のものです。
A.そのとおりです。私を起訴しそうにない十分小さなクライアントと、贅沢な仕事をします。

Q.誰もが請負人ならキャリアパスも"にんじん(carrot)"もないと思います。
A.私のビジネスの目標の一部は、自分自身のことをする十分な自由時間を許すことで人を勢いよく動かすことです。


Q.仕事と人生のバランスをどうとってますか?
A.私は常にベストのバランスをとれているわけではないですが、今は仕事は家の外でし、家族と一緒に過ごすことができています。以前は扉を閉め、仕事をしているときもありました。仕事と人生のバランスはやっかいなものですが、日常的にうまくやっています。