ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

【12-A-3】時を超えたプログラミングへの道

【12-A-3】時を超えたプログラミングへの道 角谷信太郎
タイトルの元ネタは「時を超えた建築への道」でアレグザンダーという
建築家の書籍らしいです。


将来的なプログラミングモデルを明示的に話す、と勘違いしていましたが
実際にはXPを用いて価値を最大化する、という行為を
アレグザンダーの主張を通して再確認した印象です。

12-A-3 時を超えたプログラミングへの道 角谷信太郎

◆KentBeck ExtrameProgrammingを引用
 XPは「社会」の変化である
  ・個人の世界認識
  ・人と人の関係
  ・チームや組織のあり方
 を変えていくこと。
 
◆XPとは
 投資効果のある、ちゃんと動くソフトウェアを納期内に提供…(長いので省略
 つまりは、普通のシステム開発のこと

 一部の優秀な開発者向けではない。誠実な、ふつうの開発者向けである

◆HeadFirst ソフトウェア開発 頭とからだで覚えるソフトウェア開発
 この書籍ではアジャイルが紹介されてます。初心者向け

◆Beautiful Code
 訳者の竹内さん
 「プログラムを書いたことのないシステムエンジニアが威張っている会社は早晩滅びる」
 ⇒ ExtrameProgrammingの23章はおおざっぱに言って
 XPの目的、行く先が大切と書かれている。
  ・チームが技術とビジネスの間で関心事項の調和を日常的にとれること
  ・調和とバランスがXP
  ソフトウエアで新たな社会構造をつくる機会を得る。

 引用:  
 「ソフトウェアはまだまだ若い分野、社会へのかかわりかたをまだまだ変えていけるはず」
 「バランスには相互尊重が不可欠。絶対的な権力は存在しない」

◆ビジネスとテクノロジ
 どちらも分けて考えられるものではない。
 コードとドキュメント/テストと設計 も同様で分離せず、一緒に考えよう

◆時を超えた建築への道
 クリストファー・アレグザンダー:建築家 の書籍
  「人の顔に浮かぶ「笑み」のような建築が建てたいのです」

 目指したものはパターン・ランゲージによる住まいづくり
 設計と施工の一体化を提唱(ユーザーがプロセスに参加する)
 
 XPはアレグザンダーのアイディアを基礎とする★
 ⇒ Kent Beck アレグザンダーのやろうとしていたことをソフトウェア業界に持ち込んだ

◆パターンランゲージ(詳細を理解できず)
 パターン  :事象ではなく、繰り返し起こる出来事や関係のこととここでは定義します
 ランゲージ:文法をあらわす。文法に従ってパターン(言語)を使えば可能性は無限に広がる
 
 プロセスを重要視
  花をつくるには細胞を全部ピンセットでつくっても花にはならない。
  種から育てるべきだ

 プロセスをつくるとは
  → 全体像がみえており、そこから細分化して構築すること

 出来上がった成果物はユニーク。
  でも作り方は、すべて一つのプロセスに従っている

◆XPはパターンランゲージ
 XPのプラクティス -37種類
 プラクティスはそれぞれ全体に影響を与えながらしてシステムやプロセスを構成

◆XP=パターンランゲージが流行していない理由
 アレグザンダーは失敗した(建築業界の認識)★
 だってユーザはコンクリートを塗れない、お金もかかるから。

 KentBeckの反論:
  プログラマは建物ではない、ソフトウェア開発は建築手法でもない
  → だからまだわからない、と主張★

◆ビジネスソフトウェアのラストマイルを解決する
 ビジネス要求からビジネス価値 のエンドツーエンドでアジャイルを行うことに価値がある
  対象システムは外部制約、既存システムの影響も受けている。
  そのため開発のみをアジャイルにするのは効果が限定的。
 上記を含めた全体にアジャイルを拡大する必要がある
  XPはアジャイルさをどのように拡大するか、という命題に対する試験・問いかけ★