SlideShare a Scribd company logo
1 of 4
Download to read offline
ソフトウェア開発と時間
阪井 誠 / 株式会社SRA
Makoto Sakai / Software Research Associates, Inc.

概要とねらい
ソフトウェア開発は時間との戦いであり,時間による変動要素を考慮した開発法が求められている.本記事
では,3つの変動要素に述べ,その解決法として,近年再び注目され本格的な導入が進みつつあるアジャイ
ル開発と,従来開発やアジャイル開発を効率化するチケット駆動開発に触れ,ソフトウェア開発の現場でど
のように「時間」が重視されているかをのべる.

ソフトウェア開発は時間との闘いである.最大の敵はリリースの時である納期である.古
くから,ソフトウェア開発においてQCD(品質,コスト,納期)は,重要であると言われて
いた.近年は,ソフトウェアがビジネスと強く結びつくようになり,より納期が重視され
るようになっているほか,リリース時に最新の状況に合わせたソフトウェアであることが
求められている.本稿では,このような中で再び注目され本格的な導入が進みつつあるア
ジャイル開発と,BTS(障害管理ツール)によるタスクマネジメント技術であるチケット駆
動開発に触れながら,ソフトウェア開発の現場でどのように「時間」が重視されているか
を述べる.
ソフトウェア開発には時間によって変動する以下の要素がある.
・ソフトウェアによって得られる価値
・ソフトウェアに必要とされる機能
・実行環境
従来,ソフトウェアは既存の業務を置き換えるものが多く,納期はそれほど厳しいもので
はなかった.リリースが遅れることよりも,必要な機能が不足していることや,ソフト
ウェアの欠陥(いわゆるバグ)によって正常に動作しないことが問題視されていたからであ
る.また,リリース後に従来の処理と並行で運用される期間がとられることが多く,若干
の遅れは許容されることもあった.
近年のビジネスはソフトウェアによって実現されており,ソフトウェア開発の遅れが,ビ
ジネスチャンスを失わせることになる.同業他社にマーケットを奪われてからソフトウェ
アが動作しても価値がなくなってしまうのである.そこで,ソフトウェアによって得られ
る価値を守る目的で,機能の取捨選択,いわゆるスコープの変更が行われる[1].
このような開発対象となる機能の取捨選択,すなわちスコープの変更は開発開始時に一度
だけ行われていた.しかし,近年は以下のような理由から,スコープの変更が必要になる
場合が多くなっている.
・競合他社や社会の変化など,ビジネス環境の変化
・UX(ユーザエクスペリエンス)の向上
ソフトウェア開発の早い時点ですべてを決めてしまうと,ユーザの要望を満たすことがで
きず,ソフトウェアの価値を下げてしまうのである.そこで,できるだけ短期間で[2],
複数回リリースしてその都度スコープを変更する必要がある.
一方,ソフトウェアの実行環境も時間と共に変化する.使い込まれたソフトウェアは信頼
性が高いというメリットがある.しかし,新しいソフトウェアほど一般に多機能であり,
同じソフトウェアでも新しいバージョンであるほどセキュリティホールがふさがれてい
る,サポート期間が長い,というメリットがある.このように,ソフトウェアはなるべく
新しいものが好ましいが,実績の少ないソフトウェアの場合は,信頼性を確保する必要が
ある.そこでソフトウェアの実行環境などは,できるだけ決定を遅らせた方が良いが,信
頼性を確保する期間が残せるような時(最終決定時点とよばれる[2])を守る必要がある.
このようにソフトウェア開発と時間を考えると,ソフトウェア開発の計画は容易ではない
ことがわかっていただけるだろう.ソフトウェアを開発するには,上述の時間による変動
要素だけでなく,
・開発の順序性
・開発者の習熟
をさらに考慮する必要がある.ソフトウェアをどのように実装して結合していくか,テス
トの戦略を含めて計画を立てる必要がある.また,近年の技術は変化が激しいので,経験
者であっても,ある程度の技術習得期間が必要になることが多く,どのように技術者を習
熟させるかということも考慮する必要がある.
ここまで述べたように時間と関係するこれらの条件をを踏まえた上でソフトウェアを開発
しなければならない.しかし,近年のソフトウェア開発では,時間による変動要素の影響
によって,従来の段階的に詳細化して最後に一度だけ リリースするという,いわゆる
ウォーターフォール型の開発は困難になってきている(もちろん,その度合いは開発する
ソフトウェア によって大きく異なる).
そこで,スコープを変更しながら段階的に開発するという「アジャイル開発」が注目され
ている.アジャイル開発は,あらかじめすべてを決めておくのではなく,段階的にリリー
スし,どこまで実現するかを順次決定することで,変化に対応するからである.
ソフトウェア開発とビジネスの関係で考えると,アジャイル開発では部分的ではあるもの
の,常にソフトウェアが実現されているので,ビジネスチャンスを失うことなく,スコー
プの調整によって最適な時期にソフトウェアをリリースすることができる.従来は最終リ
リースまではビジネス上の価値を得ることはできなかったが,アジャイル開発では価値の
得られない期間を短くし,メリットが得られる期間を延ばすことができるのである.
技術的に見ても,一度にすべてを作って失敗するのではなく,早めに小さく失敗すること
で,失敗を取り戻し易くすることができる.小さくはじめ始めて,後になるほど完成度を
高めていくことができるのである.
アジャイル開発は少人数での開発が基本であり,コミュニケーションが向上し,効率的な
開発が可能である.近年は,その効果が認識されるようになり,より大規模な開発にも適
用されるようになっている[3].
さらに近年は,従来開発やアジャイル開発法を効率化するものとして、障害管理ツールを
タスク管理に用いる「チケット駆動開発」が注目されている.
チケット駆動開発は,従来法の開発の中で生まれた.近年の小規模かつ多機能なソフト
ウェア開発では,細かな作業が多くあり,その効率化の目的で障害管理ツールのチケット
(障害票)をタスクマネジメントに用いたのである[4].
チケット駆動開発には,以下のような特徴がある.
・構成管理ツールと連携してトレーサビリティを確保する
・リアルタイムに見える化してコミュニケーションを向上する
・作業のワークフローを管理する
さらに,チケット駆動開発では,チケットの一覧から優先順位の高いものを選ぶことで,
スコープを変更することが可能である.そこで,従来法による開発の柔軟性を高める目的
に用いられるほか,アジャイル開発においても,タスク管理をディジタル化して効率化す
る目的にも用いられている.
このようにチケット駆動開発は,従来開発やアジャイル開発法をさらに効率化し,リアル
タイム性を高める技法として,注目されているのである[5].
本稿で述べたように,時間を重視したソフトウェア開発には様々な開発法が必要である.
ビジネスの多様化に伴い,すでにソフトウェアは欠かせないものであり,その重要性は高
まっている.ソフトウェアに対する多様な要望に応えるべく,1990年代後半から開発技
術や開発環境は急速に発展し,少人数でも多機能なソフトウェア開発が可能になってきた
[6].その反面,様々な変化への対応が必要になり,時間を重視したソフトウェア開発が
求められている.
多様なソフトウェアが求められている様に,その開発方法にも従来の開発法だけでなく,
アジャイル開発やチケット駆動開発といった,様々な開発法が必要とされているのであ
る.
1) Alan M. Davis: Just enough requirements management, Dorset House(2005).
2) Mary. Poppendieck, Tom. Poppendieck: Lean software development, AddisonWesley(2003).
3) Dean Leffingwell: Scalling software agility: Best practices for large enter
prises, Pearson education(2007).
4) まちゅ: チケット駆動開発 … ITpro Challenge のライトニングトーク (4), まちゅダイ
アリー, http://www.machu.jp/diary/20070907.html#p01(2007).
5) 小川, 阪井: Redmineによるタスクマネジメント実践技法, 翔泳社(2010).
6) Makoto Sakai, Ken-ichi Matsumoto, Koji Torii: A new framework for improving
software development process on small computer systems, International
Journal
of Software Engineering and Knowledge Engineering, vol.7, no.2, pp.
171-184(1997).

More Related Content

More from Makoto SAKAI

新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
Makoto SAKAI
 
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Makoto SAKAI
 
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
Makoto SAKAI
 

More from Makoto SAKAI (20)

SS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさSS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさ
 
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
 
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
 
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
 
Node-RED導入時の効果的な開発を考える
Node-RED導入時の効果的な開発を考えるNode-RED導入時の効果的な開発を考える
Node-RED導入時の効果的な開発を考える
 
プロのためのNode-RED再入門
プロのためのNode-RED再入門プロのためのNode-RED再入門
プロのためのNode-RED再入門
 
Node-redでプロトタイピング
Node-redでプロトタイピングNode-redでプロトタイピング
Node-redでプロトタイピング
 
プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理
 
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
 
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -
 
複合主キーの扱い方
複合主キーの扱い方複合主キーの扱い方
複合主キーの扱い方
 
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
 
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
 
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
効果的な XP の導入を目的としたプラクティス間の相互作用の分析効果的な XP の導入を目的としたプラクティス間の相互作用の分析
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
 
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
 
社会人のためのシンポジウム発表入門 リーン論文作法
社会人のためのシンポジウム発表入門   リーン論文作法社会人のためのシンポジウム発表入門   リーン論文作法
社会人のためのシンポジウム発表入門 リーン論文作法
 
パネル:Redmineの未来を考える
パネル:Redmineの未来を考えるパネル:Redmineの未来を考える
パネル:Redmineの未来を考える
 
古くて新しいサーバントリーダーシップ
古くて新しいサーバントリーダーシップ古くて新しいサーバントリーダーシップ
古くて新しいサーバントリーダーシップ
 
チケット駆動開発導入のヒント - 自律と規律 -
チケット駆動開発導入のヒント - 自律と規律 -チケット駆動開発導入のヒント - 自律と規律 -
チケット駆動開発導入のヒント - 自律と規律 -
 
計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)
 

Recently uploaded

Recently uploaded (11)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

ソフトウェア開発と時間(情報処理 Vol.52 No.6 時の記念日コラム)