(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023163730
(43)【公開日】2023-11-10
(54)【発明の名称】ソフトウェア開発を評価するためのシステム及び方法
(51)【国際特許分類】
G06F 8/77 20180101AFI20231102BHJP
【FI】
G06F8/77
【審査請求】有
【請求項の数】10
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022074820
(22)【出願日】2022-04-28
(11)【特許番号】
(45)【特許公報発行日】2023-01-30
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
(71)【出願人】
【識別番号】517287224
【氏名又は名称】17LIVE株式会社
(74)【代理人】
【識別番号】100199277
【弁理士】
【氏名又は名称】西守 有人
(72)【発明者】
【氏名】徐永吉
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BA05
5B376BC61
(57)【要約】 (修正有)
【課題】より効率的で、アジャイル開発を評価するのにより適したソフトウェア開発を評価するための方法、フトウェア開発を評価するためのシステム及びコンピュータプログラムを提供する。
【解決手段】製品達成システム1における評価方法は、パラメータ選択ユニット112によって複数のパラメータを選択するステップと、重み付けユニット114によって各パラメータの重みを確定するステップと、計算ユニット116によって前記パラメータに基づいて製品の達成率を計算するステップとを含む。この方法において、前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つと、を含む。
【効果】プロジェクトの成果をより正確に評価することができ、ソフトウェアエンジニアは、ソフトウェアをより良くするように動機付けられることで、ソフトウェア開発の効率を向上させることができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のパラメータを選択するステップと、
前記パラメータに基づいて製品の達成率を計算するステップと
を含むソフトウェア開発を評価するための方法であって、
前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含むソフトウェア開発を評価するための方法。
【請求項2】
前記バグ修正スコアは、修正されたバグ数を評価するスコアで、前記SLOエンハンススコアはSLOエンハンスを評価するスコアで、前記オンタイムスコアは機能リリースの時間厳守を評価するスコアで、前記安定性スコアはサービス又はソフトウェアの安定性を評価するスコアである請求項1に記載のソフトウェア開発を評価するための方法。
【請求項3】
各パラメータの重みを確定するステップと、
各パラメータの範囲を設定するステップと、
前記パラメータ、重み及び範囲に基づいて製品の達成率を計算するステップと
をさらに含む請求項1に記載のソフトウェア開発を評価するための方法。
【請求項4】
予測されるバグ増加を設定するステップと、
前記予測されるバグ増加に基づいて前記バグ修正スコアを計算するステップと
をさらに含む請求項1に記載のソフトウェア開発を評価するための方法。
【請求項5】
前記予測されるバグ増加及び実際のバグ増加に基づいて第一スプリントでのボーナスポイントを計算するステップと、
前記ボーナスポイントを第二スプリントに追加するステップと
をさらに含む請求項4に記載のソフトウェア開発を評価するための方法。
【請求項6】
前記範囲は、最大値及び/又は最小値を含み、
前記バグ修正スコアの前記最大値は、その他のパラメータより大きい、
請求項3に記載のソフトウェア開発を評価するための方法。
【請求項7】
前記パラメータは、バグ修正スコア、SLOエンハンススコア、オンタイムスコア及び安定性スコアを含む請求項1に記載のソフトウェア開発を評価するための方法。
【請求項8】
各チームの完了率及び各チームのオンタイムスコアを取得するステップと、
各チームの完了率、各チームのオンタイムスコア及び前記製品の達成率に基づいて各チームの製品達成率を計算するステップと、
をさらに含む請求項1に記載のソフトウェア開発を評価するための方法。
【請求項9】
複数のパラメータを選択するよう構成されるパラメータ選択ユニットと、
前記パラメータに基づいて製品の達成度を計算するように構成される計算ユニットと
を含むソフトウェア開発を評価するためのシステムであって、
前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含むソフトウェア開発を評価するためのシステム。
【請求項10】
複数のパラメータが選択される機能、及び
製品の達成率が前記パラメータに基づいて計算される機能、
をユーザ端末に実現させるためのコンピュータプログラムであって
前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報と通信技術に関し、特に、ソフトウェア開発を評価するためのシステム及び方法に関する。
【背景技術】
【0002】
製品の達成率を確認するため、以下に示すように、特許文献1と2などのソフトウェア開発を評価する多くの方法がある。ただし従来の方法は、実際の状況を完全に反映しているわけではない。これらの方法の結果は、主に参照用であり、ソフトウェアエンジニアがソフトウェアをより良くするように動機付けられていない。
【0003】
また、特許文献1と2に開示されている先行技術の評価方法は、ウォーターフォール型ソフトウェア開発を対象とし、アジャイル開発(agile development)には適していない。アジャイル開発では、スプリント(sprint)間の相関関係が強いが、先行技術の手法ではこの相関関係を考慮に入れていない。このため、上手く運用できない。
【0004】
したがって、より効率的で、アジャイル開発を評価するのにより適した新しい評価方法が必要である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平06-028040号公報
【特許文献2】中国特許出願公開第109815220号
【発明の概要】
【0006】
本出願の一具体的実施形態において、複数のパラメータを選択するステップと、前記パラメータに基づいて製品の達成率を計算するステップとを含むソフトウェア開発を評価するための方法であって、前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含む。
【0007】
本出願の別の具体的実施形態において、複数のパラメータを選択するよう構成されるパラメータ選択ユニットと、前記パラメータに基づいて製品の達成度を計算するように構成される計算ユニットとを含むソフトウェア開発を評価するためのシステムであって、前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含む。
【0008】
本出願の別の具体的実施形態において、複数のパラメータが選択される機能、製品の達成率が前記パラメータに基づいて計算される機能をユーザ端末に実現させるためのコンピュータプログラムであって、前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含む。
【0009】
本発明によれば、プロジェクトの成果をより正確に評価することができ、ソフトウェアエンジニアは、ソフトウェアをより良くするように動機付けられることで、ソフトウェア開発の効率を向上させることができる。
【図面の簡単な説明】
【0010】
【
図1】本発明のいくつかの具体的実施形態に係る製品達成評価システム1のブロック図である。
【
図2】本発明のいくつかの具体的実施形態に係る製品達成評価システム1を解析するための概念図である。
【
図3】
図1のSLO DB106の例示的なデータ構造を示す図である。
【
図4】
図1のバグ情報DB108の例示的なデータ構造を示す図である。
【
図5】
図1のリリース情報DB110の例示的なデータ構造を示す図である。
【
図6】本発明のいくつかの具体的実施形態に係る製品達成評価システム1の構成動作を示す例示的なシーケンス図である。
【
図7】本発明のいくつかの具体的実施形態に係る製品達成評価システム1の構成動作を示す例示的なシーケンス図である。
【
図8】本発明のいくつかの具体的実施形態に係る製品達成評価システム1の例示的なGUI500を示す図である。
【
図9】本発明のいくつかの具体的実施形態に係るシステム構成と処理を実行するためのコンピュータハードウェアのブロック図である。
【発明を実施するための形態】
【0011】
以下、各図面に示されている同一又は類似の部品、構成要素、プログラム、或いは信号は、全ての図面において同じ符号を付けているため、重複する説明は適切に省略されている。また、各図面の説明で重要でない構成要素を省略している。
【0012】
本発明は、アジャイルソフトウェア開発を評価するための方法及びシステムである。ソフトウェア開発において、アジャイルプロジェクト管理は人気のあるプロジェクト管理方法である。Scrumは、複雑な環境で製品を開発、提供、及び保守するための有名かつ人気のあるフレームワークである。Scrumにおいて、各チームの作業は目標に分割され、時間的制約のあるイテレーションで完了し、これはスプリント(sprint)と呼ばれる。
【0013】
スプリントは、開発の基本単位であり、通常1週間から1ヶ月の間であり、2週間が最も一般的である。機能が難しいほど、作業を完了するために必要なスプリントが多くなる。通常、新しい機能は、いつも1つのスプリントが完了した後、別のスプリントが開始する前にリリースされる。また、本発明は、各スプリントが自体のリリースを有することができるという事実を利用する。
【0014】
機能がリリースされる前、リリース日を満たすために時間通りにタスクを完了するための各チームの努力に依存している。機能がリリースされた後、ソフトウェア、サービス、又はAPPの全体的な性能に依存して、サービスの品質を保証する。したがって、機能リリースの前後のパラメータを考慮する必要がある。特に、本発明は、アジャイル開発に適したパラメータを考慮し、前のスプリントの結果/パラメータを現在のスプリントの評価に組み込むことができる。
【0015】
したがって、本発明のいくつかの実施例に係る製品達成評価システム1は、プロジェクト成果評価のエンハンスを提供する。
【0016】
図1は、本発明のいくつかの実施例に係る製品達成評価システム1のブロック図である。本明細書のブロック図に示されているブロックは、コンピュータのCPUや機械コンポーネントなどのデバイスのハードウェア内で実現され、コンピュータプログラムなどのソフトウェアにこれらの要素の協働によって実現される機能ブロックを描写する。したがって、当業者は、これらの機能ブロックが、ハードウェアとソフトウェアの組み合わせによって様々な方法で実現され得ることを理解するだろう。
【0017】
図1に示すように、製品達成評価システム1は、入力ユニット102と、記憶ユニット104と、SLO DB106と、バグ情報DB108と、リリース情報DB110と、パラメータ選択ユニット112と、重み付けユニット114と、計算ユニット116と、分析ユニット118と、ディスプレイ120とを含み得る。
【0018】
入力ユニット102は、入力を受け取るように構成されている。いくつかの具体的実施形態において、手動で入力を受け取ることができ、例えばデータ及び値をキーインすることである。いくつかの具体的実施形態において、入力ユニット102は、マウス、キーボード、タッチパネルなどであり得る。例えばキーボード及びマウスを使用してデータ及び値を手動で入力できる。
【0019】
いくつかの具体的実施形態において、監視ユニットからパラメータ値をキャプチャーして入力を自動的に受け取ることができる。例えばサーバの品質を保証するためにSLOの値を監視するように構成された監視ユニットがある場合がある。入力ユニット102は、該監視ユニットからSLO値を自動的にキャプチャーすることができる。
【0020】
記憶ユニット104は、入力ユニット102に接続され、対応するデータベースに入力を格納するように構成される。入力ユニット102は、様々なパラメータを入力として受け取り、次にこれらのパラメータを分類して、それぞれ適切なデータベースに格納するように構成され得る。いくつかの具体的実施形態において、記憶ユニット104は、これらのパラメータの検索を高速化するために、後述するパラメータ選択ユニット112に直接接続され得る。
【0021】
SLO DB106は、サービスレベルインジケータ(Service level indicator、SLI)値を格納するように構成される。SLIは、サービス品質(Quality of service、QoS)の尺度を表すことができる。SLOは、特定の期間に期待されるサービスレベルを表すことができる。
【0022】
例えば、SLOは、1ヶ月のAPI要求の99%が300ミリ秒以内にレスポンスを返さなければならないとして定義され得る。このSLOに対し、SLIは、目標応答時間を達成する時間割合として報告し、次に所望のサービスレベル(99%)と比較される。
【0023】
いくつかの具体的実施形態において、SLIは、可用性、サービスデスク応答、インシデント応答時間、API応答時間、遅延、ANRフリーレートなどを含み得る。いくつかの具体的実施形態において、SLIとSLOは、実際の必要性に従って決定又は定義することができる。
【0024】
図3は、
図1のSLO DB106の例示的なデータ構造を示している。SLO DB106は、ソフトウェア、サービス又はAPPなどの性能を識別するSLI値を関連付けて格納する。
図3に示すように、SLIの値をスプリントごとに計算して保存できる。
【0025】
バグ情報DB108は、ソフトウェアにバグ情報を格納するように構成される。
図4は、
図1のバグ情報DB108の例示的なデータ構造を示している。バグ情報DB108は、バグ総数及びP0、P1、P2、P3などの各優先順位でのバグ数を識別するバグ情報を関連付けて格納する。
図4に示すように、バグ情報をスプリントごとに計算して保存することもできる。
【0026】
リリース情報DB110は、ソフトウェアリリース情報を格納するように構成される。
図5は、
図1のリリース情報DB110の例示的なデータ構造を示している。リリース情報DB110は、目標リリース日、実際のリリース日などを識別するリリース情報を関連付けて格納する。いくつかの具体的実施形態において、リリース情報DB110は、目標リリース日と実際のリリース日の減算により、機能リリースの遅延を計算することができる。いくつかの具体的実施形態において、リリース情報DB110は、
図5に示されるように、機能リリースの遅延を保存することができる。
【0027】
いくつかの具体的実施形態において、パラメータの値をスプリントごとに計算して保存できる。いくつかの具体的実施形態において、各スプリントの開始時、各スプリントの途中、又は各スプリントの終了時に該値を計算することもできる。いくつかの具体的実施形態において、スプリント期間に該値を平均することによって計算され得る。いくつかの具体的実施形態において、該値はまた、日、週、月、四半期、年などによって計算され得る。いくつかの具体的実施形態において、該値はまた、スプリントの長さに基づいて計算され得る。
【0028】
パラメータ選択ユニット112は、パラメータを選択し、対応するデータベースなどからこれらのパラメータの値を検索するように構成される。パラメータ選択ユニット112は、製品達成率を評価するための1つ又は複数のパラメータを選択することができる。いくつかの具体的実施形態において、パラメータ選択ユニット112は、手動又は自動でパラメータを選択することができる。いくつかの具体的実施形態において、パラメータ選択ユニット112は、機械学習モデル又は任意の他の技術的手段に基づいてパラメータを選択することができる。いくつかの具体的実施形態において、パラメータ選択ユニット112は、履歴データ又はリアルタイムデータに従ってパラメータを動的に選択することができる。
【0029】
重み付けユニット114は、パラメータ選択ユニット112に接続され、各パラメータの重みを確定するように構成される。いくつかの具体的実施形態において、重みユニット114は、重みを確定するために選択され得る。いくつかの具体的実施形態において、重み付けユニット114は、均等に、又は各パラメータの重要性に従って重みを確定することができる。いくつかの具体的実施形態において、重み付けユニット114は、手動又は自動で重みを確定することができる。いくつかの具体的実施形態において、重み付けユニット114は、機械学習モデル又は任意の他の技術的手段に基づいて重みを確定することができる。いくつかの具体的実施形態において、重み付けユニット114は、履歴データ又はリアルタイムデータに従って重みを動的に確定することができる。
【0030】
計算ユニット116は、パラメータ選択ユニット112及び加重ユニット114からのパラメータ及び重み付けに基づいて製品の達成度を計算するように構成される。いくつかの具体的実施形態において、計算ユニット116は、各パラメータ又はスコアのために最大値及び/又は最小値の範囲を設定して、極端な値を有するパラメータが製品の達成率の精度を損なうのを防ぐことができる。
【0031】
分析ユニット118は、計算ユニット116に接続され、計算ユニット116からの結果を受信及び??分析するように構成される。分析ユニット118は、計算ユニット116からの結果に従って、製品の達成度が良好、正常、又は不良であるかどうかを判断できる。いくつかの具体的実施形態において、分析ユニット118は、
図1に示されるように、結果及び分析をディスプレイ120にさらに表示することができる。
【0032】
図2は、本発明のいくつかの具体的実施形態に係る製品達成評価システム1を解析するための概念図である。いくつかの具体的実施形態において、パラメータは、ローカルインデックス200及びグローバルインデックス220に分類することができる。ローカルインデックス200は、それぞれ各チームに関連するパラメータを表すことができる。グローバルインデックス220は、プロジェクト全体又はソフトウェア開発に関連するパラメータを表すことができる。
【0033】
いくつかの具体的実施形態において、ローカルインデックス200は、オンタイムスコアOTなどを含み得る。いくつかの具体的実施形態において、グローバルインデックス220は、安定性スコアSTA、バグ修正スコアBF、SLOエンハンススコアSEなどを含み得る。
【0034】
オンタイムスコアOTは、機能リリース時間厳守を評価するスコア、又はより具体的には機能リリース遅延を評価するスコアであり得る。安定性スコアSTAは、サービス又はソフトウェアの安定性を評価するためのスコアであり得る。バグ修正スコアBFは、サービス又はソフトウェア内の修正待ちバグ数を評価するスコアであり得る。SLOエンハンススコアは、サービス又はソフトウェア内のSLOエンハンススコアを評価するスコアであり得る。いくつかの具体的実施形態において、上記パラメータは、特定の変数から計算されたパーセンテージとして表すことができ、これは以下に説明する。いくつかの具体的実施形態において、上記パラメータは、実際の必要性に応じて表現することができる。
【0035】
いくつかの具体的実施形態において、リリースバージョン210は、ローカルインデックス200とグローバルインデックス220との間に位置付けられることができる。リリースバージョン210は、ソフトウェア又はAPP上で新しい機能をリリースする時点であり得、ソフトウェア又はAPPの新しいバージョンと呼ばれることもある。いくつかの具体的実施形態において、各スプリントには独自のリリースがあると予測される。
【0036】
いくつかの具体的実施形態において、リリースバージョン210の前に考慮されるべきパラメータは、ローカルインデックス200と呼ばれ得、一方、リリースバージョン210の後に考慮されるべきパラメータは、グローバルインデックス220と呼ばれ得る。具体的にはリリースバージョン210の前にソフトウェアへの評価は各チームの努力に依存し、リリースバージョン210の後のソフトウェアへの評価はソフトウェア又はサービスの性能に依存するため、考慮すべきパラメータはリリースバージョン210を通じてローカルインデックス200とグローバルインデックス220に分けられる。
【0037】
いくつかの具体的実施形態において、ローカルインデックス200は、納期厳守202などのパラメータを含み得る。納期厳守202は、機能リリースが時間通りであるかどうかを確認するパラメータであり得る。いくつかの具体的実施形態において、機能リリースが時間通りに行われるかどうかの理由は、各チームのスプリント達成率、又は各チームが時間通りにタスクを完了するかどうかであり得る。
【0038】
いくつかの具体的実施形態において、機能リリースは、所定の日付よりも早く、時間通りに、又は遅くてもよい。いくつかの具体的実施形態において、オンタイムスコアOTは、納期厳守202の程度の評価に用いられることができる。いくつかの具体的実施形態において、オンタイムスコアOTの式は、次のように表され得る。
【0039】
OT=1-(Drelease-Dtarget)*0.1 ………………………(1)
【0040】
変数Dreleaseは実際のリリース日であり得、Dtargetは目標リリース日であり得る。式(1)によれば、機能リリースが時間厳守の場合、オンタイムスコアOTは1になることができ、これは実際のリリース日が目標リリース日と同じであることを意味する。いくつかの具体的実施形態において、機能リリースが遅れる場合、オンタイムスコアOTは1未満であり得、逆も同様である。例えば機能リリースが1日遅れた場合、オンタイムスコアOTを0.1減らすことができる。
【0041】
いくつかの具体的実施形態において、グローバルインデックス220は、インシデントレベル目標222、システムレベル目標224及びバグレベル目標226等のパラメータを含み得る。インシデントレベル目標222は、リリースバージョンのインシデントレベルを確定するパラメータであり得る。
【0042】
ソフトウェア開発において、ソフトウェアバグは、コンピュータソフトウェア中のエラー、欠陥又は故障により生じた誤った結果や予想外の結果、或いは予期しない方式で動作することである。解決する優先度に応じて、バグはP0、P1、P2、P3又はP4に分類できる。特に、P0、P1などの優先度の高いバグは、操作処理に支障を生じさせてソフトウェアの中断又はパニックを引き起こし、ソフトウェア中のインシデントと見なされる場合がある。したがって、インシデントレベルは、製品の達成度を評価する重要パラメータである。
【0043】
いくつかの具体的実施形態において、安定性スコアSTAは、インシデントレベル目標222の程度を評価するために用いられることができる。いくつかの具体的実施形態において、安定性スコアSTAの式は、次のように表され得る。
【0044】
STA=1-((1*BP0)+(0.7*BP1)) ……………………(2)
【0045】
変数BP0は、P0バグの数であり得、BP1はP1バグの数であり得る。式(2)によれば、バージョンリリース中にP0又はP1バグがない場合、安定性スコアSTAは、1であり得る。いくつかの具体的実施形態において、P0又はP1バグがある場合、安定性スコアSTAは1未満であり得、逆もまた同様である。例えばP0バグが発生した場合、安定性スコアSTAを1減らすことができ、P1バグが発生した場合、安定性スコアSTAを0.3減らすことができる。いくつかの具体的実施形態において、実際の必要性に応じて1及び0.7等の係数を調整することができる。
【0046】
この具体的実施形態の技術的利点の1つは、インシデントが7日以内に発生し、7日以内に解決される場合、該インシデントは、安定性スコアSTA及び全体的な製品達成率に寄与せず、これにより、エンジニアはインシデントをできる限り早く解決するようになる。
【0047】
システムレベル目標224は、リリースバージョンのサービスレベルを確定するパラメータであり得る。サービスレベルは、サービスプロバイダーのパフォーマンスを測定するための重要な指標である。いくつかの具体的実施形態において、SLOエンハンススコアSEは、システムレベル目標224の程度を評価するために用いられることができる。いくつかの具体的実施形態において、SLOエンハンススコアSEの式は、次のように表され得る。
【0048】
SE=1-(SLOoriginal-SLO7th) …………………………(3)
【0049】
変数SLOoriginalは、リリース時点でのSLI値であり得、SLO7thはリリース時点から7日目のSLI値であり得る。式(3)によれば、SLIが7日間変化しない場合、SLOエンハンススコアSEは、1であり得る。いくつかの具体的実施形態において、SLIが7日以内に減少する場合、SLOエンハンススコアは1未満であり得、逆もまた同様である。例えばSLIが7日間で0.1%下がった場合、安定性スコアSTAは0.1%下がる可能性がある。
【0050】
バグレベル目標226は、リリースバージョンのバグレベルを確定するパラメータであり得る。いくつかの具体的実施形態において、該バグレベルは、ソフトウェア又はAPP内のバグ総数を表すことができる。上記のように、優先度に従ってバグを分類できる。優先度の低いバグを緊急に解決する必要はないが、バグが存在すると、ソフトウェアに異常動作が生じる可能性がある。したがって、バグレベル目標226は、製品の達成度を評価する重要なパラメータである。
【0051】
いくつかの具体的実施形態において、バグ修正スコアBFは、バグレベル目標226の程度を評価するために用いられることができる。いくつかの具体的実施形態において、バグ修正スコアBFの式は、次のように表され得る。
【0052】
BF=1-((B7th-Bexpected)/(Bexpected-Brelease)) …(4-1)
Bexpected=Brelease+BIpredicted …………………………(4-2)
【0053】
変数Breleaseは、リリース時点のバグ総数、B7thはリリース時点から7日目のバグ総数、Bexpectedはリリース時点から7日目の予測されるバグ総数であり得る。
【0054】
Bexpectedは、Breleaseと予測されるバグ増加BIpredictedの和であり得る。予測されるバグ増加BIpredictedは、1つの機能リリースで増加を予測するバグ数を表することができる。各機能リリースについて、追加のバグは避けられない。したがって、予測されるバグ増加BIpredictedは、各機能リリース中のバグの許容誤差数を表すことができる。
【0055】
いくつかの具体的実施形態において、予測されるバグ増加BIpredictedは、手動、自動又は他の任意の可能な方法によって決定され得る。いくつかの具体的実施形態において、予測されるバグ増加BIpredictedは、各リリースの定数、例えば3、5、7などであり得る。いくつかの具体的実施形態において、予測されるバグ増加BIpredictedは、変数であり、かつ各機能リリースに基づいて変化し得る。いくつかの具体的実施形態において、リリースしたい機能の複雑さに基づいて予測されるバグ増加BIpredictedを確定し得る。いくつかの具体的実施形態において、予測されるバグ増加BIpredictedは、実際の必要性に応じて確定することができる。
【0056】
式(4-1)及び式(4-2)によれば、バグ総数が、リリース時点から7日目の予測されるバグ総数と同じ場合、バグ修正スコアBFは1の場合があり、これは、B7thがBexpectedに等しいことを意味する。いくつかの具体的実施形態において、7日以内に発生したバグが予測されるバグ増加BIpredictedよりも多い場合、バグ修正スコアBFは1未満であり得、逆もまた同様である。例えば発生したバグが予測されるバグ増加BIpredictedより多い場合、バグ修正スコアBFは特定の割合で減少する可能性がある。
【0057】
図2を参照すると、インシデントレベル目標222、システムレベル目標224及びバグレベル目標226は、それぞれ重みw
sta、w
se及びw
bfを有することができる。いくつかの具体的実施形態において、品質スコア230は、ローカルインデックス200及びグローバルインデックス220に基づいて計算され得る。いくつかの具体的実施形態において、品質スコア230は、全体的な製品達成率PA
overallと呼ばれることがある。いくつかの具体的実施形態において、オンタイムスコアOT、安定性スコアSTA、SLOエンハンススコアSE及びバグ修正スコアBFに基づいて全体的な製品達成率PA
overallを評価することができる。いくつかの具体的実施形態において、全体的な製品達成率PA
overallの計算式は、次のように表され得る。
【0058】
PAoverall=wse*SE+wot*OT+wsta*STA+wbf*BF
【0059】
wse、wot、wsta及びwbfは、それぞれ、各スコアの重みであり得る。いくつかの具体的実施形態において、各パラメータの重みは選択可能である。いくつかの具体的実施形態において、各パラメータの重要性が同じるか、異なることによってこれらの重みを確定できる。
【0060】
いくつかの具体的実施形態において、上記の4つのパラメータの中で、SLOエンハンススコアSEの重みwseは最大の重みを有し得、オンタイムスコアOTの重みwotが最小の重みを有し得る。例えばwse、wot、wsta及びwbfは、それぞれ0.4、0.1、0.3、0.2である得る。いくつかの具体的実施形態において、重みの合計は、1であり得る。ただし、重み及び重みの和は、実際の必要性に応じて柔軟に調整することができる。
【0061】
上記のように、リリース時点から7日目にバグを直ちに解決し、バグ総数が予測されるバグ総数より少なくなる場合、バグ修正スコアBFは1より高くなる可能性があり、これはB7thがBexpectedよりも低くなることを意味する。
【0062】
例えばバグが解決された場合、バグ修正スコアBFは、特定のパーセンテージ増加される可能性がある。この具体的実施形態の技術的利点の1つは、より高い製品お達成率に達するため、エンジニアがソフトウェア又はAPPの既存或いは新たに発見されたバグを解決するように動機付けられることができることである。例えばリリースバージョンでP1バグが発生し、安定性スコアSTAが0.3下がった場合、全体的な製品達成率PAoverallを上げる方法はバグを解決することである。
【0063】
また、バグ総数がますます少なくなると、インシデントの確率はますます低くなり、ソフトウェア又はサービスの安定性はますます高くなる可能性があり、これは、インシデントレベル目標222、システムレベル目標224及びバグレベル目標226が大幅に改善される可能性があることを意味する。
【0064】
いくつかの具体的実施形態において、Bexpectedは、以前スプリントから寄与されたボーナスポイントBbonusをさらに含み得、より具体的にはBexpected及びBbonusの両方を次のように計算できる。
【0065】
スプリントn+1の場合:Bexpected=Brelease+BIpredicted+Bbonus ……………(5-1)
スプリントnの場合:Bbonus=BIpredicted-BIactual ……………………(5-2)
nは、正の整数である。
【0066】
式(5-1)及び(5-2)によれば、次のスプリントにボーナスポイントBbonusをBexpected内に追加でき、かつ前のスプリントのパラメータに従ってボーナスポイントBbonusを計算することができる。式(5-2)によれば、予測されるバグ増加BIpredictedが7日以内の実際のバグ増加BIactualと等しい場合、Bbonusは0になる可能性があり、これは実際のバグ増加BIactualが予測されるバグ増加BIpredictedと同じである場合、次のスプリントにボーナスポイントBbonusを追加しないことを意味する。いくつかの具体的実施形態において、Bbonusも現在のスプリントに追加され得る。
【0067】
いくつかの具体的実施形態において、実際のバグ増加BIactualが予測されるバグ増加BIpredictedよりも低い場合、Bbonusは0を上回る可能性があり、これは発生したバグが予測よりも少ないことを意味する。例えば実際のバグ増加が予測より2少ない場合、2のボーナスポイントBbonusは次のスプリントでBexpectedに追加される可能性がある。この具体的実施形態の技術的利点の1つは、エンジニアがより少ないバグでより良い機能リリースを提供するように動機付けることである。
【0068】
いくつかの具体的実施形態において、手動で、自動的に、又は任意の機械学習方法に従って上の式を調整することができる。いくつかの具体的実施形態において、7日間の期間を使用してバージョンリリース後のいくつかのパラメータの傾向を評価する。ただし、周期は柔軟に決定することもできる。いくつかの具体的実施形態において、スプリントの長さに基づいて周期を決定し得る。該周期は、例えば3日、5日、10日などと決定され得る。いくつかの具体的実施形態において、式中のパラメータ、変数、又は係数は、実際の必要性に応じて柔軟に決定することができる。いくつかの具体的実施形態において、上の式は、実際の必要性に応じて調整することができる。
【0069】
いくつかの具体的実施形態において、全体的な製品達成率PA
overallに従って各チームの製品の達成率を計算することができる。
図2に示すように、ローカルインデックス200は、各チームのチームスプリント完了204a、204b、204c及びチームスコア206a、206b、206cそれぞれさらに含むことができる。チームスプリント完了204a、204b、204cは、1つのスプリントにおける各チームの完了率を表すことができる。いくつかの具体的実施形態において、完了率は、総タスクに対する完了済みタスクのパーセンテージを表すことができる。チームスコア206a、206b、206cは、各チームの製品達成率PA
teamを表すことができる。いくつかの具体的実施形態において、PA
teamの式は、次のように表され得る。
【0070】
PAteam=Cteam*PAoverall-((1-OTteam)*wot-team) …(6-1)
OTteam=1-Ddelay*0.1 ………………(6-2)
Ddelay=Dactual-Dtarget ………………(6-3)
【0071】
変数Cteamは、各チームの完了率、OTteamは各チームのオンタイムスコア、Ddelayは各チームの遅延日数であり得る。式(6-2)によれば、各チームのタスクが時間どおりに完了した場合、各チームのオンタイムスコアOTteamは、1であり得る。いくつかの具体的実施形態において、各チームのタスクが遅れている場合、OTteamは1未満であり得、逆もまた同様である。例えば機能リリースが1日遅れた場合、オンタイムスコアOTteamが0.1減りうる。
【0072】
式(6-3)によれば、チームの遅延日数Ddelayは、実際の完了日Dactualと目標完了日Dtargetとの間の差によって確定することができる。
【0073】
また、各チームのオンタイムスコアOTteamは、時間通りにタスクを完了することの重要性を強調するため、重みwot-teamを有し得る。重みwot-teamは、柔軟に決定でき、例えば0、1、2又はこれ以上である。重みwot-teamがゼロの場合、各チームの製品達成率PAteamは、CteamにPAoverallを掛けることで決定できる。いくつかの具体的実施形態において、重みwot-teamは、実際の必要性に応じて決定することができる。
【0074】
いくつかの具体的実施形態において、各チームの製品達成率PAteamは、PAoverall、Cteam、OTteamなどのパラメータに従って計算し得る。いくつかの具体的実施形態において、各チームの製品達成率PAteamに従って全体的に分割された製品達成度を計算し得る。例えば各チームの製品達成率PAteamの平均を計算することにより、全体的に分割された製品達成度を計算する。いくつかの具体的実施形態において、全てのチームが機能リリースに含まれるわけではないので、参加していないチームのスコアはゼロを表示し、全体的に分割された製品達成度の計算に寄与しない。
【0075】
いくつかの具体的実施形態において、製品達成評価システム1は、各パラメータ、変数、又はボーナスポイントのために範囲を設定することができる。より具体的には、各パラメータ、変数、又はボーナスポイントのために最大値及び/又は最小値を事前に決定し得る。例えばSLOエンハンススコアは30%、50%、80%程度などの最小スコアを有し得る。SLOエンハンススコアが最小スコアよりも低い場合、SLOエンハンススコアを最小スコアに置き換えることができる。別の例として、バグ修正スコアBFは、200%、300%、500%、800%、1000%程度などの最大スコアを有し得る。したがって、全体的な製品達成率は、某パラメータの影響を強く受けず、全体的な製品達成率の精度はより良くなる。
【0076】
いくつかの具体的実施形態において、実際の必要性に従ってパラメータを選択すると共に組み合わせて、製品達成率を計算することができる。例えばバグ修正スコアBFをSLOエンハンススコアSEと組み合わせて、製品の達成率を計算できる。いくつかの具体的実施形態において、バグ修正スコアBFをオンタイムスコアOTと組み合わせて、製品の達成率を計算できる。いくつかの具体的実施形態において、バグ修正スコアBFを安定性スコアSTAと組み合わせて、製品の達成率を計算できる。バグ修正スコアBFが考慮すべき唯一のパラメータである場合、エンジニアは最も単純なバグを修正し、製品の達成率をすばやく上げることができるが、ソフトウェア又はサービスのパフォーマンスをますます低下させる可能性がある。
【0077】
図6は、本発明のいくつかの具体的実施形態に係る製品達成評価システム1の構成動作を示す例示的なシーケンス図である。ステップS302において、パラメータ選択ユニット112は、パラメータを選択し、対応するデータベースからデータ又は値を検索することができる。ステップS304において、重み付けユニット114は、各パラメータの重みを確定することができる。ステップS306において、計算ユニット116は、パラメータ及び重みに従って製品の達成率を計算することができる。
【0078】
図7は、本発明のいくつかの具体的実施形態に係る製品達成評価システム1の構成動作を示す例示的なシーケンス図である。ステップS322において、パラメータ選択ユニット112は、パラメータを選択し、対応するデータベースからデータ又は値を検索することができる。ステップS324において、重み付けユニット114は、各パラメータの重みを確定することができる。ステップS326において、計算ユニット116は、各パラメータ、スコア、又はボーナスポイントの範囲を設定することができる。ステップS328において、計算ユニット116は、パラメータ、スコア、又はボーナスポイントが範囲を超えているかどうかをチェックすることができる。いずれかのスコアが範囲を超えている場合(ステップS328でのチェック結果が範囲を超えている)、計算ユニット116は、範囲に合うようにスコアを自動的に調整することができる。スコアは範囲を超えていない場合(ステップS328でのチェック結果が範囲を超えていない)、計算ユニット116は、パラメータ及び重みに従って製品の達成率を計算することができる。
【0079】
図8は、本発明のいくつかの具体的実施形態に係る製品達成評価システム1の例示的なGUI500を示す図である。
図8に示すように、製品達成評価システム1のGUI500は、パラメータ領域502と、変数領域504と、重み付け領域506と、製品の達成率領域508と、ボーナスポイント領域510とを含み得る。
【0080】
パラメータ領域502において、パラメータのインデックス及びこれに対応するスコアを表示することができる。変数領域504では、パラメータの変数及びこれに対応する値を表示できます。重み付け領域506では、対応する各パラメータの重みを表示することができる。製品の達成率領域508では、上記のパラメータ、変数、及び重みから計算された製品の達成率を表示することができる。ボーナスポイント領域510では、上記のパラメータ及び変数に従ってボーナスポイントを表示することができる。例えば、ボーナスポイント領域510は、予測されるバグ増加BIpredictedに用いられる基本基準、実際のバグ増加BIactualに用いられるグラウンドトゥルース及びBIpredictedとBIactualとの間の差から計算され得るボーナスポイントを含み得る。いくつかの具体的実施形態において、追加のボーナスポイントは、後続のスプリントなどに役に立つ。
【0081】
図9は、本発明のいくつかの具体的実施形態に係るシステム構成と処理を実行するためのコンピュータハードウェアのブロック図である。
図9において、CPU604、メインメモリ606、HDD(ハードディスク)608、キーボード610、マウス612及びディスプレイ614がシステムバス602に接続されている。CPU604は、好ましくは、32ビットまたは64ビットアーキテクチャに基づく。メインメモリ606は、好ましくは2GB以上の容量を有する。
【0082】
ハードディスク608は、好ましくは、200GB以上の容量を有する。いくつかの具体的実施形態において、ハードディスク608は、オペレーティングシステム、過去のプロジェクト情報、分析対象となる現在のプロジェクト情報、及び本発明による処理プログラムを格納する。オペレーティングシステムは、Linux、Microsoft CorporationのWindowsシリーズ及びApple Computer的Mac OSなど、CPU604と互換性のある任意のオペレーティングシステムにすることができる。
【0083】
また、ハードディスク608は、C、C++、C#及びJava(商標)などのなどの任意のプログラミング言語プロセッサを格納することもできる。該プログラミング言語プロセッサは、本発明に従ってプロセッシングプログラムを作成及び維持するために使用される。いくつかの具体的実施形態において、ハードディスク608は、プログラミング言語プロセッサ及び開発環境によってコンパイルされるソースコードを書き込むためのテキストエディタをさらに含むことができる。
【0084】
キーボード610及びマウス612は、ハードディスク608からメインメモリ606にロードされ、ディスプレイ614に表示されるオペレーティングシステム又はプログラム(図示せず)を起動するため、及び文字をキーインするために用いられる。ディスプレイ614は、好ましくは液晶ディスプレイであり、任意の解像度のディスプレイを使用することができる。ディスプレイ614は、本発明による処理結果を表示するために用いられる。
【0085】
また、上記の具体的実施形態に記載のシステム及方法は、ソリッドステートメモリデバイス、光ディスクストレージデバイス、又は磁気ディスクストレージデバイスなどの非一過性コンピュータ可読ストレージデバイスで構成することができる。或いは、インターネット経由でサーバからプログラムをダウンロードすることもできる。
【0086】
以上、本発明の技術的内容及び特徴につき説明したが、本発明の技術の分野における通常の知識を有する者は、本発明の教示および開示から逸脱することなく、多種多様な変化及び修正を行なうことができる。したがって、本発明の範囲は、開示された具体的実施形態に限定されず、本発明から逸脱しないその他の変化及び修正を含み、かつ以下の特許請求の範囲に網羅される。
【符号の説明】
【0087】
1 製品達成システム
102 入力ユニット
104 記憶ユニット
106 SLO DB
108 バグ情報DB
110 リリース情報DB
112 パラメータ選択ユニット
114 重み付けユニット
116 計算ユニット
118 分析ユニット
120 ディスプレイ
200 ローカルインデックス
202 納期厳守
204a,204b,204c チームスプリント完了
206a,206b,206c チームスコア
210 リリースバージョン
220 グローバルインデックス
222 インシデントレベル目標
224 システムレベル目標
226 バグレベル目標
230 品質スコア
502 パラメータ領域
504 変数領域
506 重み付け領域
508 製品の達成率領域
510 ボーナスポイント領域
602 システムバス
604 CPU
606 メインメモリ
608 ハードディスク(HDD)
610 キーボード
612 マウス
614 ディスプレイ
S302,S304,S306,S322,S324,S326,S328,S330,S332 ステップ
【手続補正書】
【提出日】2022-11-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
パラメータ選択ユニットと計算ユニットとを含むシステムで実行される、ソフトウェア開発を評価するための方法であって、
前記パラメータ選択ユニットが、複数のパラメータを選択するステップと、
前記計算ユニットが、前記パラメータに基づいて製品の達成率を計算するステップと
を含み、
前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含むソフトウェア開発を評価するための方法。
【請求項2】
前記バグ修正スコアは、修正されたバグ数を評価するスコアで、前記SLOエンハンススコアはSLOエンハンスを評価するスコアで、前記オンタイムスコアは機能リリースの時間厳守を評価するスコアで、前記安定性スコアはサービス又はソフトウェアの安定性を評価するスコアである請求項1に記載のソフトウェア開発を評価するための方法。
【請求項3】
前記システムに含まれる重み付けユニットが、各パラメータの重みを確定するステップと、
前記計算ユニットが、各パラメータの範囲を設定するステップと、
前記計算ユニットが、前記パラメータ、重み及び範囲に基づいて製品の達成率を計算するステップと
をさらに含む請求項1に記載のソフトウェア開発を評価するための方法。
【請求項4】
前記計算ユニットが、予測されるバグ増加を設定するステップと、
前記計算ユニットが、前記予測されるバグ増加に基づいて前記バグ修正スコアを計算するステップと
をさらに含む請求項1に記載のソフトウェア開発を評価するための方法。
【請求項5】
前記計算ユニットが、前記予測されるバグ増加及び実際のバグ増加に基づいて第一スプリントでのボーナスポイントを計算するステップと、
前記計算ユニットが、前記ボーナスポイントを第二スプリントに追加するステップと
をさらに含む請求項4に記載のソフトウェア開発を評価するための方法。
【請求項6】
前記範囲は、最大値及び/又は最小値を含み、
前記バグ修正スコアの前記最大値は、その他のパラメータより大きい、
請求項3に記載のソフトウェア開発を評価するための方法。
【請求項7】
前記パラメータは、バグ修正スコア、SLOエンハンススコア、オンタイムスコア及び安定性スコアを含む請求項1に記載のソフトウェア開発を評価するための方法。
【請求項8】
前記パラメータ選択ユニットが、各チームの完了率及び各チームのオンタイムスコアを取得するステップと、
前記計算ユニットが、各チームの完了率、各チームのオンタイムスコア及び前記製品の達成率に基づいて各チームの製品達成率を計算するステップと、
をさらに含む請求項1に記載のソフトウェア開発を評価するための方法。
【請求項9】
複数のパラメータを選択するよう構成されるパラメータ選択ユニットと、
前記パラメータに基づいて製品の達成度を計算するように構成される計算ユニットと
を含むソフトウェア開発を評価するためのシステムであって、
前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含むソフトウェア開発を評価するためのシステム。
【請求項10】
複数のパラメータが選択される機能、及び
製品の達成率が前記パラメータに基づいて計算される機能、
をユーザ端末に実現させるためのコンピュータプログラムであって
前記パラメータは、バグ修正スコアと、SLOエンハンススコア、オンタイムスコア及び安定性スコアの少なくとも1つとを含むコンピュータプログラム。
【外国語明細書】