期間: 2012
インフォデック
スライドキュメントの悪について同僚に文句を言っていると、役に立つ反論を耳にします。最近では、プレゼンテーション用ではなく、読むためだけのスライドデッキを使ってコミュニケーションを取るのが好きな人がたくさんいます。私のような人間は、最近のマネージャーは箇条書きに見えないものは読めないなどと皮肉を言うかもしれませんが、これらのインフォデックには利点があります。
確率リテラシーの欠如
この記事をアメリカ大統領選挙の結末に向けて書いていると、ネイト・シルバーが作成した予測についての副次的な議論が出てきました。多くの共和党員は、彼は民主党の宣伝係であり、オバマ勝利の85%という予測は偽物だと主張しています。私は、確率を理解していない共和党員をもっとたくさん知っていて、彼らとサイドベットをできたらと思っています。もしかしたら、もっと良い願いは、私には民主党支持の友人が多いので、世論調査が逆になることかもしれません。実際には、私の知っている人のほとんどは数字に強いので、どちらにしてもあまり得にはなりません。残念ながらこれは一般的には当てはまりません。この余談は、ほとんどの人が確率について深い無知であり、それが社会全体、特にソフトウェア開発にとって重要な影響を持っていることの例証です。
トランスメディアアプリケーション
モバイルアプリケーションは、ここ数年のソフトウェア開発において注目の的です。多くのソフトウェアデリバリー企業と同様に、Thoughtworksはクライアントからモバイルアプリケーションを構築してほしいという依頼をたくさん受けています。しかし、ほとんどの場合、企業が当社(または誰か)にモバイルアプリケーションの構築を依頼する際、間違った方向に進み始めています。ほとんどの状況では、ユーザーにモバイルデバイスを操作してもらいたい場合でも、モバイルアプリケーションを構築することを考えるべきではないと私は主張します。代わりに、モバイル、デスクトップ、タブレットなど、ユーザーが使用する可能性のあるデバイス全体で表示される単一のアプリケーションを構築することを考える必要があります。
基本原則の準備
レトロスペクティブの基本原則は、レトロスペクティブの実践において重要な部分であり、ノルム・カーズがこの実践を最初に開始して以来、レトロスペクティブの考え方において不可欠な部分となっています。最近、私はパット・クアの新しいレトロスペクティブハンドブックを読みました。これは、パットがThoughtworksの技術リーダーとして得たレトロスペクティブに関する豊富な経験に基づいています。私は、基本原則に関するパットのアドバイスに反感を感じますが、彼がほぼ確実に正しいと言わざるを得ません。
ThoughtworksテクノロジーレーダーFAQ
年に2回ほど、私はThoughtworks TAB(当社のグローバル組織から選ばれた上級技術者)と集まります。私たちの会議の主な成果の1つが、私たちのテクノロジーレーダーです。このレーダーは多くの注目を集めており、よくある質問がいくつかあり、このFAQがそれに答えることを願っています。
goto Aarhus 2012
ここ数ヶ月は旅行が多く(最後には、過去44日間のうち40日間を移動に費やしたと計算しました)、そのため私のウェブサイトは静かでした。今は家に帰ってきて、そのいくつかについて振り返ることができます。gotoカンファレンスは常に振り返るべきことであふれています。
NoSQL入門
goto Aarhusでは、NoSQLに関する実践的な経験についてのトラックがありました。私は、NoSQLデータストアの基本原則を説明するために最初の講演を行うように依頼されました。NoSQLの起源、NoSQLデータモデルの形式、多くのNoSQLデータベースが整合性の問題をどのように考慮しているか、およびポリグロット永続性の重要性について説明します。
人々対NoSQLデータベース:パネルディスカッション
goto Aarhusのトラックの1つでは、NoSQLベンダーがさまざまなツールについて話す機会が与えられました。トラックの最後に、さまざまな講演者がNoSQLに関する共通の問題について議論するためのパネルに集められました。(私の講演は数日後に行われましたが)私はトラックには関与していませんでしたが、パネルには参加しました。
NoSQL Distilledからのキーポイント
書籍NoSQL Distilledを設計したとき、書籍を再読する人のためのリフレッシャーとして機能するように、ほとんどの章をいくつかの重要なポイントで締めくくりました。読者がこれらのキーポイントを思い出すための別の方法として、これらをウェブサイトに含めました。
最新のモックツールと黒魔術
最新のモックツールがレガシーコードの操作能力に与えるプラスの影響と、それらのツールを使用することの起こりうるマイナスの影響。
BigQueryの概念実証
Googleの新しいBigQueryサービスは、高価なソフトウェアや新しいインフラストラクチャを必要とせずに、顧客にビッグデータ分析能力を提供できるでしょうか?ThoughtworksとAutoTraderは、大規模なデータセットを使用して、1週間の概念実証テストを実施しました。テストでは、7億5千万行のデータセットで7〜10秒の範囲で一貫したクエリパフォーマンスが示されました。Java、JavaScript、およびGoogle ChartsでREST APIを使用して、クエリ結果のインタラクティブなビジュアルを備えたWebフロントエンドを作成しました。この演習全体は、5日間で3人のチームによって実施されました。結論:BigQueryはうまく機能し、特にデータウェアハウスを持たない、またはデータウェアハウスの使用が制限されている組織にとって、ビッグデータと小規模な予算を持つ組織に利益をもたらす可能性があります。
共同ダッシュボード
データ分析と視覚化への関心が高まるにつれて、組織内で浮遊しているデータから洞察を引き出すことができる興味深い視覚化にますます努力が注がれています。これらのダッシュボードのほとんどは個人使用を目的としていますが、より共同的な目的で使用する傾向がますます高まっています。
スノーフレークサーバー
本番サーバーを稼働させ続けるのは難しい場合があります。オペレーティングシステムやその他の依存ソフトウェアが適切にパッチ適用され、最新の状態に保たれていることを確認する必要があります。ホストされているアプリケーションは定期的にアップグレードする必要があります。環境を効率的に実行し、他のシステムと適切に通信するように微調整するには、構成変更が定期的に必要になります。これには、コマンドライン呼び出し、GUI画面間のジャンプ、テキストファイルの編集が混在する必要があります。
その結果、ユニークな雪の結晶になります。スキーリゾートには良いですが、データセンターには悪いです。
フェニックスサーバー
ある日、私は運用部門向けの認定サービスを開始するというファンタジーを抱きました。認定評価は、同僚と私が企業のデータセンターに現れ、野球のバット、チェーンソー、水鉄砲で重要な本番サーバーを攻撃するというものでした。評価は、運用チームがすべてのアプリケーションを再び稼働させるのにどれくらい時間がかかるかに基づいています。
複数のモバイル
モバイルデバイスは、顧客や従業員がソフトウェアサービスを使用するためのプラットフォームとしてますます重要になっています。多くの人がモバイルアプリケーションの構築に忙しいですが、多くのベンダーもモバイルデバイスの構築に忙しいです。この幅広いモバイルデバイスは課題を提示します。どうすれば多くのモバイルデバイスをサポートできますか?
アジャイルデータベース開発に関するSEラジオポッドキャスト
Pramod Sadalgeは、Thoughtworksで現在習慣的に使用しているアジャイルデータベース技術の開発を主導しました。SEラジオは、これらの技術を使用して、データベースの設計を、それを使用するアプリケーションとともに反復的に進化させる方法についてインタビューします。継続的インテグレーションシステムにデータベースを組み込む方法、繰り返し可能なスクリプト化された移行を通じてデータベースを変更する方法、およびデータベースのリファクタリングがどのように機能するかについて説明します。
モバイル実装戦略の選択
過去5年間でのモバイルテクノロジーの突然かつ急速な爆発は、大きな機会を提供します。いくつかのモバイルプラットフォームが引き続き成功する可能性が高いようですが、モバイル顧客はアプリケーションに非常に高品質のユーザーエクスペリエンスを要求しています。この記事では、ユーザーエクスペリエンスとプラットフォームの範囲のバランスを取りながら、アプリの今後の道筋を提供するのに役立つモバイルチャネルを実装するための2つの戦略を紹介します。
ORM嫌い
私が数ヶ月前にロンドンで開催されたQConカンファレンスに参加していたとき、すべての講演にオブジェクト/リレーショナルマッピング(ORM)ツールに関する皮肉な発言が含まれていたようでした。講演者に送られたカンファレンスのメールをもっと注意深く読まなければならないと思います。そこには、少なくとも45分ごとにORMに軽蔑を浴びせるようにという指示があったに違いありません。しかし、お分かりのとおり、私はこのORM嫌いに少し反発したいと思っています。なぜなら、その多くは不当だと思うからです。
テストピラミッド
テストピラミッドは、バランスの取れたポートフォリオを作成するために、さまざまな種類の自動テストをどのように使用する必要があるかを考える方法です。その本質的なポイントは、GUIを介して実行される高レベルのブロードスタックテストよりも、多くの低レベルの単体テストを持つ必要があるということです。
編集と発行の分離
昨年頃からのThoughtworksプロジェクトチームとの会話で、定期的なテーマは、コンテンツ管理システム(CMS)の影響が大きくなっていることでした。それらは通常、役立つとは見なされず、実際には、それらが心配なほど侵入的なツールになりつつある兆候が明確に見られます。全体的な開発を妨げるような方法で、本来の目的以上の目的で使用されています。
その他の不満の中でも、一般的な失敗は、各記事のコピーを1つ保持していることです。この単一のコピーは、コンテンツを作成する一部として編集され、読者に向けて(通常、何らかの状態変更フラグで)公開されます。
データの進化するパノラマ
2012年のQConロンドンでの基調講演では、データが私たちの生活でどのような役割を果たしているか(そして、単に肥大化しているだけではない)について考察します。まず、データの世界がどのように変化しているかを見ていきます。データは成長し、より分散化され、接続性が高まっています。次に、業界の対応として、NoSQLの台頭、サービス統合への移行、イベントソーシングの登場、クラウドの影響、そして可視化がより大きな役割を果たす新しい分析について説明します。また、現在のデータの使用状況について簡単に触れ、特にレベッカが開発途上国におけるデータに焦点を当てます。最後に、これらすべてがソフトウェア専門家としての私たちの個人的な責任にどのような意味を持つのかを検討します。
テストカバレッジ
時々、テストカバレッジ(コードカバレッジとも呼ばれます)の目標値を尋ねられたり、自分のカバレッジレベルを誇らしげに語る人がいます。そのような発言は見当違いです。テストカバレッジは、コードベースのテストされていない部分を見つけるための便利なツールです。テストカバレッジは、テストの質を数値で示すものとしてはほとんど役に立ちません。
プレゼンテーションのスメル
私は多くのプレゼンテーションを行ってきましたし、多くの会議にも参加しているので、多くのプレゼンテーションを見ています。つまり、人々が講演の効果を低下させるような問題のある行為をたくさん見ているということです。包括的なリストを作成しようとしたわけではありませんので、ここで取り上げているのは、頭に浮かんだほんの一部の事柄です。ほとんどのスメルと同様に、これらは常に間違っているわけではありませんが、常に考えるきっかけになるはずです。
未来はNoSQLではなくポリグロット永続性
主にアプリケーション開発の管理に携わる人々のために書かれた、エンタープライズにおけるデータストレージの未来に関するインフォデッキです。リレーショナルデータベースが支配的だった理由、NoSQLがこの前提に挑戦している理由、そして、多様なニーズに応じて複数のデータストレージ技術がアプリケーションに使用されるポリグロット永続性の未来の概要を説明します。
ドメイン固有言語に関するSEラジオポッドキャスト
DSL本の貢献者であるThoughtworksのCTO、レベッカ・パーソンズが加わり、マルクス・ヴェルダーとDSLについて語ります。DSLとは何か、内部DSLと外部DSLの違い、そしてDSLをいつ使用すべきか(そしていつ使用すべきではないか)について話します。
チャリティコードジャム
ここ数年、私の同僚の何人かが、開発者が集まって慈善活動のためにソフトウェアを書くコードジャムイベントを企画してきました。良い例としては、ニューヨークで定期的に開催され、RapidFTRに取り組んでいるコードジャムがあります。ニューヨークを拠点とするThoughtWorkerのクリス・ジョージは、2010年8月にニューヨークで一回限りのイベントを企画するのに協力しました。当日、グループは期待したほど多くの成果を上げられませんでしたが、その後、バーで定期的に集まることに決めました。それ以来、彼らは毎週会っています。まだ主にThoughtWorkerとその友人たちで構成される小グループで、3~4人のコアメンバーに加えて、大きなプロジェクトがある場合は10人程度になることもあります。(クリスは、さらに多くの人がグループに参加してくれることを歓迎していますので、もし興味があれば彼にメールしてください。)
多くの人が、これらのイベントは、日々の仕事よりもやりがいのある目的のために自分たちのスキルを使う楽しい方法であり、新しいスキルを学び、異なるグループの人々から学ぶ方法であると考えています。そこで、私たちはイベントをどのように設定するかについて考えを共有する必要があると考えました。
集約指向データベース
Nosql Distilledに取り組む中で最初に思いついたトピックの1つは、NoSQLデータベースがリレーショナルモデルとは異なるデータモデルを使用しているということでした。私が調べたほとんどの情報源では、少なくとも4つのデータモデルグループ、つまりキーバリュー、ドキュメント、カラムファミリー、グラフについて言及されています。このリストを見ると、最初の3つには大きな類似点があります。すべてが密接に関連するデータの豊富な構造である基本的なストレージユニットを持っています。キーバリューストアでは値、ドキュメントストアではドキュメント、カラムファミリーストアではカラムファミリーです。DDDの用語では、このデータのグループはDDD_Aggregateです。
多様性の不均衡
慣れてしまうのは簡単ですが、ソフトウェア開発の世界には多様性に関する深刻な問題があることは明らかです。ここで言う多様性とは、一般的な人口と比較して、人々の割合にいくつかの著しい違いがあるということです。最も明らかな違いの1つは、女性の割合が低いことであり、これは世界中で当てはまります(ただし、中国では明らかに少なくなっています)。私が多くの時間を費やしている米国では、アフリカ系アメリカ人の不足も明らかです。このような不均衡が存在する理由や、それに対して何ができるかについては多くのことが書かれてきました。しかし、ここでは、より根本的な質問、つまりそれが問題になるのかどうかに焦点を当てたいと思います。
NoSQLの定義
Nosql Distilledの作業を開始するとすぐに、私たちは厄介な難題に直面しました。つまり、私たちは何について書いているのか?NoSQLデータベースとは正確には何なのか?その概念について明確な定義はなく、商標もなく、標準グループもなく、マニフェストすらありません。
SOPA/PIPAに関するピアソンへの公開書簡
私たちの出版社であるピアソンが、物議を醸しているSOPA法案の支持者であることを知ったとき、ジェズ・ハンブルと私は抗議の公開書簡を書きました。公開後、100人以上のピアソンの著者がこの書簡に共同署名しました。