アジャイルソフトウェア開発

出典: へっぽこ実験ウィキ『八百科事典(アンサイクロペディア)』
移動先: 案内検索

アジャイルソフトウェア開発 (アジャイルソフトウェアかいはつ、英: agile software development)とは、1968年にCSK(現SCSK株式会社)が始めた、客先常駐型のソフトウェア開発手法である。2010年以降再び脚光を浴びている。

概要[編集]

Wikipedia
ユーモア欠落症患者のために、ウィキペディア専門家気取りたちが「CSK_(企業)」の項目を執筆しています。

1968年にCSKを立ち上げた大川功は、当時普及が急速に進み始めていた汎用機(メインフレーム)の開発業務を効率的かつ確実に受注できるように、それまでの日本にはなかった「客先常駐」によるシステム開発支援を謳い、そのメリットを強く訴えることで次々と大手企業からシステム開発業務の受注に成功し、CSK黎明期の急成長の礎となった。

スキームは単純で、システム開発業者に属するシステムエンジニアプログラマーなどの技術者を「1か月○○万円」といった単価を設定したうえで顧客に売り込み、顧客の拠点に常駐する形でシステム開発業務を行う仕組みである。単価設定は会社によってまちまちであり、「上級SEは120万、中級SE100万、上級PG80万、PG70万」などの形でランク付けする場合が一般的である。「上級」「中級」の明確な定義がないまま売り込まれるのが常である。また「月間160時間を基本、180時間まで、超過分は別途精算」という形で1か月あたりの稼働時間設定が行われることが一般的であるが、この枠を超えて働かされても大人の事情で精算が見送られる事も珍しくない。

契約形態は請負でも派遣でもない「業務委託」となることが一般的であるが、開発業者の技術者を売り込まれた顧客側の担当者が毎日のように技術者に直接指導や業務依頼を行うことが当たり前であり、業務上は顧客側の正社員とほぼ同等に扱われる。特に客先常駐スキームの黎明期であった1970年代は、顧客側のシステム担当者が日々開発業者の技術者にプログラムの書き方まで指導していた。

このスキームを採用することによる、システム開発業者と顧客側が得られるメリットは以下が挙げられる。

開発業者側のメリット[編集]

  • 常に顧客の近くにいるため、コミュニケーションロスを極力抑えられ、開発をスムーズに進めることができる
  • 開発業者が顧客に提供する開発者の人数と開発時間に比例した売上げを顧客から挙げることができる
  • 常に「顧客に提供する開発者のリソースで対応できる範囲で対応」となるため、受注後に仕様変更や要件追加が発生した場合も、対応時期やトレードオフ要件などの調整が行いやすい
  • デスマーチのおそれがほとんどない(皆無ではない)
  • 請負の場合に発生する「瑕疵担保責任」を負わなくてよい

顧客側のメリット[編集]

  • 発注時に仕様をがっちり固める必要がある請負と違い、発注時に仕様を固めておく必要がない。仕様変更が柔軟に行える
  • 常に開発者が近くにいるため、コミュニケーションロスを極力抑えられ、開発をスムーズに進められ、早期に必要なシステムを得ることにつながる
  • 発注時に一定以上のロットが必要になることが多い請負と違い、小規模な開発を短期間で反復的に行うことが可能であり、例えば本番稼働開始直後に「この文章を別のものに入れ替えてほしい」というような、軽微な変更要望に対して即日で対応してもらうことも可能である

一方で、以下のデメリットもある。

顧客側のデメリット[編集]

  • 発注時にシステム開発の範囲とコストを定めきれない
  • しかし、コスト「だけ」を定めることは可能であり、「半年間10人でよろしく」という発注を行うことでこの欠点をカバーできる。
  • 開発業者のリアルタイム監視が必要になる
  • ある程度信用のある企業であれば気にならない。そもそも監視が必要なのは自社社員も同様である。

開発業者側のデメリット[編集]

  • 社員に帰属意識がなくなりやすい
  • 定期的(月1程度)に自社オフィスに戻る日を設け、夕礼で経営陣によるありがたい話を社員に訓示したり、「当社の財産は君たち社員だ」という類のフレーズを社員に囁くことでカバーできる。

アジャイルソフトウェア開発宣言[編集]

経緯[編集]

1970~80年代におけるアメリカのIT業界の日常

1990年代に日本の様々な産業について調べていたアメリカ合衆国の人達は、トヨタ自動車の「カイゼン」など、日本の産業の良いところを次々と取り入れようと画策していた。

一方で、アメリカのIT業界は、1970年代に公共系を中心とした大型システム開発案件の炎上が相次ぎ、1986年から開発業者を選定するモデルとしてCMMIの策定が進められ、「重量ソフトウェア開発手法」と呼ばれる、システム開発案件の炎上を防ぐための重厚な開発プロセスが整備されているSI(System Integration)業者以外は下請けに甘んじざるを得ない状況に陥っていた。また業界全体の傾向として短期間で小さなシステムを顧客に提供することが難しく、仕様決定後に顧客側が大量に後出しする「仕様変更要求」にも十分に応えられず、顧客が必要としているシステムとは違う何かができてしまいやすい状況にも陥っていた。

その下請け土方作業も1990年代からオフショア開発が進み、エンジニアが仕事にあぶれる状態が起き始めていたが、1990年代末期にドットコム・バブルが起きると雨後の筍のようにITベンチャーが多数設立され、エンジニアの仕事量が回復。エンジニアが我が世の春を謳歌するかと思われたが、2000年3月をピークにバブルが崩壊し、ITベンチャーの倒産が続出した。

Wikipedia
ユーモア欠落症患者のために、ウィキペディア専門家気取りたちが「ケント・ベック」の項目を執筆しています。

この状況に大いなる危機感を抱いたケント・ベックを始めとした17人のエンジニア達が、エンジニアが職にあぶれないようにするためのビジネスモデル研究を開始。その中で、CSKが始めた「客先常駐型」のビジネスモデルに目をつけ、日本での現地調査を実施。その頃には日本のIT業界における客先常駐型開発はCSKが始めた頃の「ユーザー企業常駐型」でははなく、ユーザ企業が発注する元請けSI会社に下請けソフトハウスの人達が常駐する「SI常駐型」に切り替わりつつあったが、「ユーザー企業常駐型」もまだ多く残っていた。

17人のエンジニアはこの「ユーザー企業常駐型」を詳細に調査し、その良いところを世間にアピールするために、「アジャイルソフトウェア開発宣言」という形で新しい開発手法をまとめ、2001年に発表した。

宣言[編集]

そのアジャイルソフトウェア開発宣言の内容を、アンサイクロメディア財団による補足付きで記述する。

私たちは、ソフトウェア開発の実践、あるいは実践を手助けをする活動を通じて、よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。
何故か方法論の研究から「価値」の話に変わっています。詐欺師が好む転換話法の一種ですね。
プロセスやツールよりも個人と対話を
客先に常駐することで、顧客との対話の機会を激増させます。週1回の定例ミーティングと1日数回の電話とメールだけでは不十分です。テレビ会議もダメ。
包括的なドキュメントよりも動くソフトウェアを
客先常駐型ならノウハウは人に残るので、ドキュメントなんて要らないのです。たまに人が入れ替わりますが、一気に大量離脱することは稀なので、仕様は人づてに伝えられていきます。秘伝のタレです。
契約交渉よりも顧客との協調を
計画に従うことよりも変化への対応を
客先常駐型なら、仕様変更の度に金額や納期変更などの煩わしい契約変更交渉が不要です。「やれる範囲でやります」をモットーに。全然できなくても顧客と仲良くできていれば許してくれます。きっと。
価値とする。すなわち、左記のことがらに価値があることを認めながらも、私たちは右記のことがらにより価値をおく。
重厚ソフトウェア開発に対するアンチテーゼから始まったのに、それの価値を認めるという自己矛盾を起こしてますが、とにかくベストプラクティスは客先常駐型開発です。

その後[編集]

このようにして、CSKが始祖となった「客先常駐型開発」は「アジャイルソフトウェア開発」という奴隷感が激減したバズワードに置き換えられ、2000年代にアメリカで急速に普及した。普及の理由としては、客先でプログラミングを行うことをエクストリーム・プログラミングと名付けたり、客先の担当者の指示の下でチーム開発を行うことをスクラムと名付けるなど、デジタル土方臭のする開発タスクを適当なバズワードに置き換えたり、「アジャイルコーチ」と呼ばれるワンランク上のメンバー属性を作り出すなどのイメージアップ戦略が業界の中で繰り返され、これが功を奏してエンジニアと発注側が共に騙されたためである。とある日本のIT業界系の雑誌やニュースやブログなどで「日本と違いアメリカでは客先常駐はほとんどない」という日本のIT業界を批判する記事が出てくることがあるが、これは明確に間違いである。

そして、2010年代に入ると、日本の凝り固まったIT業界を打ち砕く破壊的イノベーション的なワードとして「アジャイル」が注目されるようになった。ただし、その本質である「客先常駐型」という要素を前面に出すと、下請け・孫請けソフトハウスのシステムエンジニアプログラマーに忌み嫌われるだけで終わるため、「ハイスキルのエンジニアを中心にしたチーム開発」という触れ込みで業務パッケージ開発を中心に採用されるようになった。このような普及が行われたため、当然ながら「客先常駐型のアジャイル」は普及が遅れたが、近年は少しずつ普及しており、2012年には日本経済新聞スマートフォン向けWebアプリを独立系ベンダーが日経に常駐して開発した事例[1]が紹介され、さらには型2016年には下請けソフトハウスのアジャイル有識者が元請けのSI企業に常駐してアジャイル開発を行った「SI常駐型事例」も出てきており[2]、普及側に立っている人達が発する「日本は8年遅れている」などのポジショントークに踊らされる形で日本のIT業界全体で普及が進められている。

しかし、その始祖であるCSKは2001年に大川功が逝去してから迷走して経営危機に陥り、住友商事が救いの手を差し伸べて何とか「SCSK」として存続を図っていた状況であった。今日ではアジャイルの始祖である「CSK」の存在はもう誰も気にしない状態であり、こうしてアンサイクロペディアの記録に残るだけとなっている。

アジャイルソフトウェア開発手法[編集]

エクストリーム・プログラミング(XP)[編集]

アジャイル開発の主たる要素の1つである。ケント・ベックは自身の著書でも「XPはユーザとエンジニアが常に行動を共にできるに形で行うべきである」と述べており、客先常駐スタイルを推奨している。[3]

ペアプログラミング[編集]

1つのプログラムを2人1組で作ること。これは、1人で済む仕事を2人で行わせたほうが生産性と品質が上がるというロジックで、客先駐在の人数を増やし、売上を伸ばすために提唱した。

テスト駆動開発[編集]

実装より先にテストコードを作る。これは、実装はオフショア、テストは自国で受け入れテストを兼ねて実施するという開発プロセスを取られてエンジニアの仕事が減ることを避けるために実施する。

リファクタリング[編集]

一度作ってしばらく期間が経ったコードを何らかの理由をつけて仕様は一切変えずに改善する。これによりユーザー企業側でビジネス上のシステム投資案件がない時期であってもエンジニアの仕事量が確保でき、「プロジェクトが終わったから数名の保守要員を除いて契約終了」という事態を避けることができる。

スクラム[編集]

Wikipedia
ユーモア欠落症患者のために、ウィキペディア専門家気取りたちが「スクラム_(ソフトウェア開発)」の項目を執筆しています。

元々は1980年代に富士ゼロックスキヤノンなどが採用していた反復型開発手法のことであるが、それを客先常駐ビジネス用にアレンジした。

チーム[編集]

システム開発を担うエンジニアチームのこと。1チームあたり、おおむね8~10名までが良いとされている。長期間人を入れ替えないことが前提であり、これをユーザー企業側に呑ませることで、開発業者側は長期間安定した売上を確保することができる。

スクラムマスター[編集]

チームを担うエンジニアの調達・確保と、エンジニア・プロダクトオーナー両方からの御用聞きが主な役割。プロジェクトに関する納期や仕様決定などの直接的な権限は持たない。つまり「手配師」と呼ぶべき役割だが、イメージダウンを避けるため、そのフレーズで呼ぶことは禁忌とされている。

プロダクトオーナー[編集]

ユーザー企業側の担当者。システム開発プロジェクトの仕様と予算に決定権を持つ。プロダクトオーナーが働きの悪いエンジニアを「要らない」と言い出した時に、スクラムマスターがすっ飛んできて当該要員の良いところをアピールするという風景がたまに見られる。

プロダクトバックログ[編集]

システム開発プロジェクトの開発要件一覧。このバックログにどれだけ仕事を追加し、プロジェクトの長期化を図れるかで開発業者の売上とエンジニアの雇用期間が変わるため、エンジニアはタイミングを見計らってリファクタリングや追加テストなどのバックログ追加オーダーを適切にプロダクトオーナーに申し出るスキルが求められる。

スプリント[編集]

実際にソフトウェアを開発する工程。期間は1週間~4週間と短期間にする必要がある。これは、短期開発工程を繰り返すことでプロジェクトの要員計画を立てづらくさせ、「あと3か月で契約終了」とプロダクトオーナーから通告されることを避けるためである。

デイリースクラム(朝礼)[編集]

毎朝決まった時間にチームメンバー全員が集まって朝礼を行う。これにより、チームとしての一体感が強化され、客先常駐開発にありがちな帰属意識の低下を抑えることができる。

脚注[編集]

  1. ^ ワイズネット社事例紹介記事より
  2. ^ 「Agile Japan 2016」という展示会の発表資料(PDF)参照。
  3. ^ Kent Beck著「エクストリーム・プログラミン グ入門 ソフトウェア開発の究極の手法」より

関連項目[編集]

Wikipedia
ユーモア欠落症患者のために、ウィキペディア専門家気取りたちが「アジャイルソフトウェア開発」の項目を執筆しています。