期間: 2009
講演メモ
私は多くの講演を行っており、他の講演者と同様に、スライドのコピーを求められることがよくあります。また、多くの講演者、特にスライドに工夫を凝らしている人は、スライドのコピーを配布することを嫌がります。私がスライドを使用する場合、スライドはVisualChannel、つまり私の言葉に付随するものであり、スタンドアロンの"スライドキュメント"ではありません。このようなスライドキュメントは、話しているときに非常に邪魔になります。箇条書きを読むことで、聴衆の注意が話している言葉から離れてしまうからです。そのため、私のスライドはグラフィカルで、最小限であり、多くの場合、私の話に合わせてアニメーションが含まれています。このようなスライドは、私が話さないと意味がありません。
デジタル一眼レフ
多くのギークと同様に、私も写真に夢中です。私たちギークが写真を好きなのは、芸術的な試みの見せかけを提供しながら、多くの技術的な詳細にふけり、高価なおもちゃにお金を費やすことができるからです。最近、友人が私のカメラ購入の意思決定について尋ねてきたので、その質問をきっかけに、それらを書き留めてみました。
自己初期化フェイク
テストダブルを使用する典型的なケースの1つは、リモートサービスを呼び出す場合です。リモートサービスは通常、動作が遅く、信頼性が低いことが多いため、ダブルを使用することは、テストをより速く、より安定させるための良い方法です。
ソフトウェアとオバマの勝利
2008年の大統領選におけるバラク・オバマの勝利には、ソフトウェア、特にインターネットの利用が大きく貢献しました。しかし、おそらく最も興味深いのは、ソフトウェアの進歩と、キャンペーンの人的組織における発展との相互作用でした。
構成された正規表現
保守性の高いコードを作成する上で最も強力なツールの1つは、大きなメソッドを名前付きの小さなメソッドに分割することです。これは、ケント・ベックが構成されたメソッドパターンと呼ぶテクニックです。
2つの難しいこと
コンピュータサイエンスには、2つの難しいことしかありません。キャッシュの無効化と名前付けです。
-- フィル・カールトン
Mercurial Squash Commit
最近、Mercurialでいくつかのコミットをsquashする作業を行ったので、他の人がこれをしようとしている場合に備えて、投稿する価値があると思いました。これが最良の手順かどうかはわかりませんが、私にとってはうまく機能したようです。
Android
先月Google IOカンファレンスで講演したことの副産物の1つは、新しい携帯電話を手に入れたことです。Googleがすべての参加者に配ったHTC Magicアンドロイド携帯電話です。私は実際にこのような携帯電話への買い替えを検討していたので、ちょうど良いタイミングでした。1ヶ月ほど持ち歩いた感想は以下のとおりです。
リクエストストリームマップ
Thoughtworksの同僚と付き合っていると、唯一の優れたエンタープライズサービスバス(ESB)は、死んだESBであるという印象をすぐに受けます。ジム・ウェバーは、それらを誤ったスパゲッティボックスと呼んでいます。したがって、不要なシステムからそれらを排除しようとする試みの話を聞くことは珍しくありません。
イラストレーションプログラミング
世界で最も一般的なプログラミング言語は何でしょうか?
エンタープライズソフトウェアの活性化
オーストラリアの金融サービス会社であるAMPは、Amplifyという内部カンファレンスを開催しました。彼らは、私にアジャイルソフトウェア開発について講演するように依頼しました。私は、特に聴衆のかなりの部分がIT部門ではないと予想していたので、これをカンファレンスの全体的な流れにどのように適合させるかについて考えました。私は、ITプロジェクトがインフラストラクチャであるか戦略的であるかについて話すことにしました。この分類は、プロジェクトへのアプローチ方法、特にIT担当者とビジネス担当者がどのように協力すべきかについて変更します。
ThoughtworksでのRuby
Thoughtworksは2006年に本番プロジェクトでRubyの使用を開始し、それから2008年末までに41件のRubyプロジェクトを実施しました。QConでの講演の準備として、これらのプロジェクトを調査して、その経験からどのような教訓が得られるかを検討しました。Rubyの生産性、速度、保守性に関する一般的な質問に対するこれまでの考えについて説明します。これまでのところ、Rubyは、多くの種類のアプリケーション、特にRuby on Railsを使用したWebアプリケーションにとって、真剣に検討する必要がある実行可能なプラットフォームであるという結論に達しました。また、Active Recordを使用したテストに関するいくつかの考察を含め、いくつかの技術的な教訓についても説明します。
比較値
アジャイルソフトウェア開発宣言について最も印象的なことの1つは、「私たちはxをyよりも重視します」という形式の値です。そのアイデアを誰が思いついたのか、どのようにして生まれたのかは覚えていません。おそらく、アイデアを出し合っているうちに自然に浮かび上がってきたのでしょう。しかし、その独特な形式により、再びその形式を使おうとする人が何人か出てきました。
動的型チェック
最近、私たちの開発者の何人かが、Rubyのような動的言語を使用すると、非常に多くの動的型チェックを使用するため、事実上独自の型システムを記述することになるという非難に遭遇しました。そこで彼らは、実際のRubyコードをたくさん書いてきたので、動的型チェックをどのくらいの頻度で行うのかを考えました。マイケル・シューベルトがデータを収集しました。
Google I/Oでのクラウドに関する講演
レベッカ・パーソンズと私が、Google App Engineとクラウド全般の世界について話します。最初の部分では、さまざまなThoughtWorkerがApp Engineの実験から学んだことについて話し、テスト、永続性、同時実行の問題を強調します。2番目の部分では、レベッカが企業がクラウドへの移行に直面するより広範な問題について話します。
Railsのわいせつさ
数週間前、サンフランシスコでGoGaRuCo(ゴールデンゲートRubyカンファレンス)と呼ばれるRubyカンファレンスがありました。このカンファレンスは、発表者がCouchDBに関する議論を説明する際に、女性の性的な写真を使用することで注目を集めました。当然のことながら、その結果、かなり激しい、そして時には不快な議論が起こっています。
インテンショナルソフトウェア
数年前、当時同僚だったマット・フォメルは、ソフトウェアを構築するために使用していたツールに不満を感じ、謎めいたインテンショナルソフトウェアについて詳しく知るために、チャールズ・シモニーに連絡を取ることに成功しました。彼が見たものは彼を感動させ、私や他のThoughtWorkerも参加するよう説得しました。私たちが見たものは驚くべき可能性を秘めたツールでしたが、秘密主義とリリースへの緊急性の欠如に不満を感じていました。その不満は先週終わりました。
レイプログラマー
私は、自分自身をプログラマーだとは思わずにプログラミングをしている人をレイプログラマーという言葉で表しています。1日の大半をスプレッドシートで作業している人は、プログラミング、しばしば非常に集中的なプログラミングを行っています。しかし、彼女は通常、自分をプログラマーとは呼ばないし、プログラミングをよりうまく行う方法を学ぶことに多くの時間を費やすことも考えないでしょう。
許されない契約
映画「許されざる者」の終わりに、クリント・イーストウッドのキャラクターは町から脱出する必要があります。彼は、もし誰かが彼を撃とうとしたら、彼は彼を殺し、次に彼の家族を殺し、それから彼らの家を焼き払うと宣言します。
クリス・セルズとのDSLに関する視点
DSL DevConに参加したとき、マイクロソフトのチャンネル9が私を引きずり出してクリス・セルズにインタビューされました。
ドメイン固有言語入門へのメタ入門
これは私のいつものDSL入門講演ですが、通常よりもDSLをよく知っている聴衆に向けて話しているので、ちょっとしたひねりを加えています。つまり、私が人々にDSLを紹介する方法についての講演にひねりを加えたのです。
矛盾する観察
多くのコンピュータシステムは、データを格納し、それを人間にとって役立つ情報に変えるために構築されています。これを行う場合、その情報を一貫性のあるものにしたいという自然な欲求があります。結局のところ、物事について二心があるコンピュータシステムにはどのような用途があるでしょうか?
民主的な政治技術革命
私の同僚であるザック・エクスリーと私は、2008年のオバマ大統領選挙キャンペーンで使用されたソフトウェアについて話しました。特に興味深かったのは、そのソフトウェアが選挙キャンペーンの組織的なアプローチをどのように可能にし、相互作用したかという点でした。
3年間の実世界のRuby
QCon London 2009での講演のために、Thoughtworksが2006年から2008年の間にRubyをどのように使用したかを調査しました。この期間に私たちは41のプロジェクトを実施しました。私の講演では、Rubyの生産性、速度、保守性についての私たちの見解を説明しています。結論として、Rubyは開発環境として真剣に検討すべきだと考えています。また、読む方がお好みの方のために、同じ内容をカバーした記事もあります。
ナッシュビルプロジェクト
私は最近、今までで一番気に入っているThoughtworksのプロジェクトの一つに携わっていました。それは1998年に開始されたプロジェクトで、当時は新しいJ2EE技術を使用していました。長年にわたり、EJBで始まり、それらを取り除き、バンガロールにオフショア化し、シカゴに戻るという、魅力的な歴史がありました。多くの人がプロジェクトに出入りし、プロジェクトのヘッドカウントは6人から60人の間で変動しました。全体として、プロジェクトには300人年以上の労力が費やされ、約10万LOCに達しています。
先行読み出し派生
QCon San Franciscoで参加した興味深い講演の一つは、Greg Young氏が最近のシステムで使用した特定のアーキテクチャについて語ったものでした。Greg氏はドメイン駆動設計の熱心なファンであり、このケースでは、高いトランザクションレートを処理し、多くのユーザーにデータを提供する必要があるシステムで使用する必要があります。彼の設計には、特にイベントソーシングの使用など、興味深い点がいくつかありましたが、この投稿では、1つの側面である「先行読み出し派生」と私が呼ぶものに焦点を当てたいと思います。
DSL移行
DSL提唱者が注意すべき危険なことの一つは、まずDSLを設計し、次に人々がそれを使用するという考え方です。他のソフトウェアと同様に、成功したDSLは進化します。これは、以前のバージョンのDSLで記述されたスクリプトが、後のバージョンで実行すると失敗する可能性があることを意味します。
だらしないスクラム
最近、いくつかのプロジェクトで耳にする混乱した状況があります。それはこのようなものです。
- 彼らはアジャイルプロセスを使用したいと考えており、スクラムを選択します。
- 彼らはスクラムのプラクティスを、場合によっては原則さえも採用します。
- しばらくすると、コードベースが混乱しているため、進捗が遅くなります。
ルールエンジン
ルールエンジンを使用すべきでしょうか?