LOC法【見積もり】
見積もりの やり方だよ
プログラムの行数をもとにして見積もるよ
個人的には無意味なやり方だと思ってるよ
「LOC」の部分は「Lines Of Code」の略だよ
簡単に書くよ
LOC法【見積もり】(読:エルオーシーホウ)とは
工数とかを見積もるときの やり方のひとつ
であり
「このプログラムは中身が1,000行くらいだから100万円にしようか」のように、プログラムの行数をもとにして見積もるやり方
です。
詳しく書くよ
サクっと一言で説明すると
「このプログラムの中身は何行だから、何万円ね!」な見積もりのやり方
が「LOC法」です。
「プログラムステップ法」とも呼ばれます。
「LOC」の部分は「Lines Of Code(ラインズ・オブ・コード)」の省略表現です。
「Code」はソースコード(人間語で書いたプログラムの元ネタ)を意図しています。
ソースコード(Code)の行数(Lines)をもとにして見積もるやり方だからLOC法です。
例えば、そうですね。
ピヨ子さんがピヨ太君に「ピヨピヨ自動ケーキ作成システム」の開発を依頼することにしました。
……が、ピヨ子さんは慎重派です。
まずはピヨ太君に見積もりを出してもらうことにしました。
ぼったくられたら大変ですからね。
ピヨ太君は「ちっ、お昼代とおやつ代を こっそり紛れ込ませようと思ったのに……」と舌打ちしましたが、仕方がありません。
頑張って真面目に見積もることにしました。
う~ん、いくらくらいかなぁ。
ピヨ太君は悩みます。
う~ん、そうだなぁ。
悩んでいたピヨ太君は、ついに閃きました。
ピヨ太君は「プログラムの大きさで金額を決めよう」と考えました。
具体的にはソースコードの行数です。
ピヨ太君の予想では、ピヨピヨ自動ケーキ作成システムのソースコードは100行くらいになりそうです。
1行1万円として100万円の見積もりにしましょう。
ピヨ太君は「ピヨピヨ自動ケーキ作成システムを作るには100万円かかります」な見積書を作って、ピヨ子さんに渡しました。
見積もりを見たピヨ子さんは「全部の処理をつなげて1行で書きなさい。そうすれば1万円よね」と言いました。
ピヨ子さん、鬼ですね。
この話においてピヨ太君のやった見積もりのやり方がLOC法です。
プログラムの行数、もう少し正確に書くとソースコードの行数をもとにして金額を決める見積もりのやり方です。
個人的には、LOC法で見積もるのは昔のやり方だと思っています。
今の時代、LOC法で見積もると逆に怒られるのではないでしょうか。
理由は
ソースコードの行数は、どうとでも調整できるから
です。
例えば、PHPで書かれた以下の処理が あったとしましょう。
■処理1
if($num == 1){
$result = "1";
}else{
$result = "1以外";
}
■処理2
$result = ($num == 1) ? "1" : "1以外";
処理1と処理2は、やっていることは同じです。
どちらも
1.$numに「1」が入っていたら、$resultに「1」を入れる
2.$numに「1」以外が入っていたら、$resultに「1以外」を入れる
処理をします。
この同じ処理を、処理1では5行に分けて書いています。
一方の処理2では1行で書いています。
LOC法で計算すると、処理1のお値段は処理2の5倍です。
やっているのは同じ処理なのに、です。
お金を払う方としては、ちょっと納得しにくい差ですよね。
ただし、1行で書いた処理2の方が良い書き方かというと、必ずしもそうとは言えません。
5行に分けて書いた処理1の方が見やすいですし、変更するのも簡単だからです。
例えば、それぞれの処理に
$numが「2」だったら$resultに「2」を入れる
処理を追加して「1以外」を「1、2以外」に変えるとしましょう。
処理1は
if($num == 1){
$result = "1";
}else{
$result = "1以外";
}
から
if($num == 1){
$result = "1";
}elseif($num == 2){
$result = "2";
}else{
$result = "1、2以外";
}
に書き換えられます。
パッと見で分かりやすいですよね。
これが処理2になると
$result = ($num == 1) ? "1" : "1以外";
が
$result = ($num == 1) ? "1" : (($num == 2) ? "2" : "1、2以外");
に なります。
いかがでしょう。
何となくゴチャゴチャしているように感じませんか?
さらに他の処理を追加したら、どうなるでしょう。
処理2の方は、さらにゴチャゴチャしそうですよね。
プログラムというのは
1.同じ処理でも、いろいろな書き方ができる
2.どのような書き方が正解か、一概には言えない
のです。
無駄に長いのは論外ですが、短ければ良いとも言いきれません。
よって、私自身は、LOC法による見積もりに対して「それって、どーなのよ?意味なくない?」と思っています。
一言でまとめるよ
まぁ「LOC法」って単語が出てきたら「ソースコード
(人間語で書いたプログラムの元ネタ)の行数を判断基準にする、見積もりのやり方なんだな~」と お考えください。
おまけ
■訳してみるよ
「LOC」は「lines of code(ラインズ・オブ・コード)」の略です。
「lines(ラインズ)」は「line(ライン)」の複数形です。
「line(ライン)」の意味は「線」とか「行」とかです。
「of(オブ)」の意味は「~の」です。
「code(コード)」は今回は「source code(ソースコード)」の略です。
「source code(ソースコード)」はIT用語の「ソースコード」です。
「source(ソース)」の意味は「源」とか「起源」とか「根源」とかです。
「code(コード)」の意味は「記号」とか「暗号」とか「符号」とか「コード」とかです。
「法」は日本語ですね。
何となく くっつけると
「源の記号の行」法
となります。
■検索してみる?






