Development

パラダイムを学ぶことと、現実の中で活かすこと

本に書かれた内容を実際に使うことの難しさについて 導入 ここ一年ぐらい将棋にハマっているのですが、最近は棋力が上がらなくて悩んでいます。序盤で失敗して一方的に敗けるのが嫌なので、序盤から中盤の入り口について解説してある戦型の本をよく読んでい…

「アジャイル」と「ウォーターフォール」

アジャイルがダメだと思う7つの理由へのだいぶ遅い反応 導入 もうだいぶ前の話になってしまいましたが、アジャイルに関するブログエントリ「アジャイルがダメだと思う7つの理由」は予想以上に波紋を呼び、それに呼応していくつものエントリが公開されました…

テスト駆動開発の進化

デブサミ関西2012での講演内容まとめ はじめに 今月、GOOS日本語版が発売されました。実践テスト駆動開発 (Object Oriented SELECTION)作者: Steve Freeman,Nat Pryce,和智右桂,高木正弘出版社/メーカー: 翔泳社発売日: 2012/09/14メディア: 大型本購入: 4人…

ドメイン駆動設計を実践するために

ドメイン駆動設計の実践に向けて、DDD本では明示的に語られていない視点からドメイン駆動設計をとらえ直す。 導入 ドメイン駆動設計入門では、かなり抽象的なレベルでDDD本の根底にある思想を概観しました。一言で要約すれば「ドメインエキスパートの頭の中…

組織パターン トップ10 - James Coplien

この記事はJames Coplien氏の記事「Organizational Patterns: Building on the Agile Pattern Foundations」を、氏の許可を得て翻訳したものです(元の記事が長いため抄訳としています)。(原文最終更新日:2006年7月9日) 目的の統一性("Unity of Purpose…

構造とふるまい

ソフトウェアの表現に用いられる概念として「構造」と「ふるまい」を対比させた上で、両者に対する考察を試みる。 導入 もうだいぶ前になりますが、Greg Young氏がBDDに向けて批判的な論考を書いたことがあります。批判の内容について言及することはここでの…

言葉とコード

システム開発における言語的要素の重要性について、書籍を参照しつつ私見を整理する。 導入 世の中には「文系プログラマ」という表現がありますが、私もそのカテゴリに入る人間です。それも文系度はかなり高く、文学部でいわゆる思想史的なことを勉強してい…

モラルと技術−パート2

プロジェクトにおけるモラルと技術について考える、2部構成の第2部。第1部はこちら。第2部ではスクラムが抱えている問題点と、プロジェクトを技術的に下支えする共通基盤チームについて考察する。(この記事は、今年3月にパート1のみ公開していたもの…

BDDと共通言語 - Greg Young

この記事は、Greg Young氏のブログ記事"BDD and the Shared Language"を、氏の許可を得て翻訳したものです。(原文公開日:2007年10月16日) ここ数ヶ月というもの、私はすました顔でここに座り、BDDには自分にとって理解すべきようなものは何もない、と言っ…

ブログ:アジャイル開発スタック

Dan Bergh Johnsonn氏による、スクラム、BDD、DDDの関係を解説したブログ記事について、要約とコメント。 要約 スクラム・BDD・DDD - アジャイル開発スタック Dear Junior - Letters to a Junior Programmer: Scrum on BDD on DDD - an Agile Development St…

BDDとDDD - Dan North

この記事はDan North氏が、QCon London 2009において行った発表"BDD and DDD"のスライドを、氏の許可を得て翻訳したものです。 ドメイン駆動デザインとは何か? 「ドメインにフォーカスを当て、そのドメインがソフトウェアに大きな影響を与えるようにしむけ…

ストーリーについて - Dan North

この記事はDan North氏の記事「What’s in a Story?」を氏の許可を得て翻訳した公式版("the official translation")です。(原文公開日:2007年2月11日) ふるまい駆動開発("Behaviour-driven development")は「アウトサイド・イン」の方法論です。ビジネ…

ビジネス的関心とシステム的関心

エンタープライズ・アプリケーションを実装する上で、明確に区別しておくべき2つの概念に関する私見の整理。 導入 ソフトウェアを作る上で最も重要な概念の1つに、「抽象」あるいは「レイヤ化」といったものがあると思います。どのようなレイヤを設定する…

BDDの導入 - Dan North

この記事はDan North氏の記事「Introducing BDD」を氏の許可を得て翻訳した公式版("the official translation")です。(原文公開日:2006年9月20日) 私は1つ問題を抱えていました。様々な環境にあるプロジェクトでテスト駆動開発(TDD)のようなアジャイ…

記事:効果的で痛くないコードレビュー

コードレビューに関するRobert Bogue氏の記事について要約とコメント。 要約 効果的で痛くないコードレビュー Effective Code Reviews Without the Pain - Developer.com 多くの組織においてコードレビューは参加者が苦痛に感じるもののようであるが、必ずし…

開発現場の"Clean Code"

エンタープライズ・アプリケーションのプログラミング現場における"Clean Code"について、本の紹介を交えながら考えていきます。 導入 いわゆる「1人月」のタスクを「とりあえずこなせる」PGを目指す場合であっても、覚えるべき知識はそれなりに広範囲に渡…

関心の分離とプラグマティズム

大規模開発におけるソフトウェア・アーキテクチャ策定時のジレンマに関する私見。 問題提起 まずは、JavaWorldに掲載されているAdam Bien氏の記事紹介から: Lean service architectures with Java EE 6 | JavaWorld こちらはEJB3.1の仕様とSOAにおけるビジ…

モラルと技術−パート1

プロジェクトにおけるモラルと技術について考える、2部構成の第1部。まずはスクラムにおけるプロダクト・オーナーの姿勢に関するブログを題材にリーダーの姿をふりかえる。第2部ではスクラムが内包する他の問題点として、スクラムの方法論から技術的要素…

共通基盤チーム

「共通基盤チーム」と呼ばれるチームの役割に関する私見と、その共通基盤チームの方のための文献紹介。 共通基盤チーム 共通基盤、他には「インフラ」や「フレームワーク」「アーキ」など文化によって色々な呼び方をされていると思いますが、要するにアプリ…