IPA曰く「ソフトウェア開発の生産性は年々低下傾向にある」 91
ストーリー by hylom
生産性を高めるために冗長な記述が求められる言語とフレームワークを導入すべきか 部門より
生産性を高めるために冗長な記述が求められる言語とフレームワークを導入すべきか 部門より
あるAnonymous Coward曰く、
独立行政法人情報処理推進機構ソフトウェア高信頼化センター (IPA/SEC) は3月6日、近年のソフトウェア開発の傾向を分析した「ソフトウェア開発データが語るメッセージ2017」という資料を公開し、ソフトウェア開発の生産性は年々低下傾向にあるとの警鐘を発した(プレスリリース)。
この資料は2018年のソフトウェア開発データ白書用に収集したデータを元に作成されたもの。IPA/SECでは、新規開発プロジェクト全体におけるソースコード行数の生産性が年々低下傾向にあることに着目し、ここからソフトウェア開発の生産性が低下していると主張している。
データのさらなる分析の結果、この要因として「品質要求レベルが上昇している」「要員のスキルに低下傾向がみられる」ことがあると推測し、この傾向を踏まえたプロジェクト運営を行うとともに、上流工程要員のスキルアップを図ることなどを提言している。
タレコミ子としては単にフレームワークの進歩などで無駄なコードが除去された結果に見える。スラド諸氏の見解は如何だろうか?
ほぇ (スコア:5, すばらしい洞察)
> ソースコード行数の生産性が年々低下傾向にあることに着目し、ここからソフトウェア開発の生産性が低下していると主張している。
生産性っていうたら儲けで測るもんじゃないのかいな
さすがにどーなんだ
Re:ほぇ (スコア:2)
行数で比較する文化、COBOLとかの名残だろうか
Re:ほぇ (スコア:2)
いやいや、プロジェクトの規模とかを簡単に比較する方法としては、行数カウントも悪くないだろ。
過剰に絶対視/重要視して、単純に生産性とかコストとか言い始めるからおかしくなっていくだけで。
Re:ほぇ (スコア:1)
そっちの思想だと量が多いのが絶対正義ですね。
コイツ等はシグマで目論んだソフトウェア工場が理想なんだよ!と吐き捨てるように言った人が居たけどその通りなんでしょう。
どうも何かで関わったらしい(と濁しておく)が、IEEE,RFC等々覚えろ!お前の相手は海外で情報処理試験(会社方針)のようなモノに無駄時間使うヒマはない!と新人に叱ってたし。
まあ海外のアチコチからスカウト受けてた人の言葉だけに新人君はショック受けてたな。
Re:ほぇ (スコア:1)
物価とかに連動して変わりそうだけど、儲けか売上で測るのが正しそうですね。
「ソースコード行数」だけで生産性(出来高?)を測られるなら、無駄なコード入れて水増ししまくるようになりそうだし。
Re:ほぇ (スコア:1)
それはかなり虚しそう、いわゆる手段と目的履き違えた仕事ですね。
そういうときって、あからさまなコメント行入れるのか、何か軽く計算でもさせて結果はヌルに吐き出すとかするのかな。
Re:ほぇ (スコア:1)
クラスとか、高機能フレームワークとか、メタプログラムとかで
短くて済むようになった可能性は?
Re: (スコア:0)
フレームワーク自体の行数がカウントされないという暗黙の前提はなぜなのか?
フレームワークは冗長なコードの塊だから、機能に対する記述量は多いよ。
それとも、フレームワークは天から与えられるものなの?
Re:ほぇ (スコア:2)
でも、ほら、 https://code.jquery.com/jquery-3.3.1.min.js [jquery.com] とか 2 行しかないし……。
svn-init() {
svnadmin create .svnrepo
svn checkout file://$PWD/.svnrepo .
}
Re:ほぇ (スコア:2)
しかし、それを徹底すると、ランタイムモジュールとかコンパイラとか実行環境とか、ついにはCPUとかまで入ってこないか?w
Re: (スコア:0)
フレームワークというより、UI上や設定ファイルだけでカスタムできるシステムともなればソースコード0行、生産性ゼロだぜ。やったね!
Re:ほぇ (スコア:1)
つまり「単価が下がってるから生産性が落ちている」という評価ってことですね。
まぁ、結果は似たようなものだと思いますが。
仕様検討を細かく行って、開発メンバーに落とせるだけのスキルを持ったSEが減っているとも言えそうだし、要件が短期で変動する業界が増えたせいで使用が固まらない部分が多いとも言えるし・・・
そのうえ単価も下がってIT業界のブラック加減が増している。
IPAが現状評価するのもいいけど、「どうしていくべき」「どうあるべき」を広報する方の記事もセットで出してくれた方が良いかもね。
方法論は人それぞれ考えが違うから、下手なこと言えばバッシングも受けるだろうけど、今のままじゃ幸せになれる人が減る一方だと思う。
Re:ほぇ (スコア:1)
そうでした。
とんだ勘違いですね。
> 横から話に首つっこんでかき回さないで下さいとか言われてるでしょあなた
別に言われたことはないですけどね。
Re: (スコア:0)
それは労働生産性とかの方でしょ。
ソフトウェア開発の生産性を行数で測るのはどうかとは思うけど。
ファンクションポイントとかはもう古いのかな。
とにかくそういう抽象化された情報処理能力で測らないとね。
Re: (スコア:0)
知見
> 1. ソフトウェア生産性は全体的に低下傾向にある
> 2. ソフトウェアに対する品質要求は高まっている
> 3. 生産性を低下させないポイントは上流工程強化
> 新規開発プロジェクトの中では、上流工程での不具合摘出比率が70%以上と高いグループでの生産性が低下していないことが分かりました。同グループではSLOC不具合密
度が低く、信頼性も高い状態が続いています。
品質要求が高まっているのが生産性低下の一因とだ言っているようだ
上流が出来る子だと2でも生産性が落ちていないと言っているようだ
メッセージ
> 2.定量的管理を推進し、品質要求レ
Re: (スコア:0)
昔は未定義動作?バッファーオーバーフロー?動けばいいんだよ!って感じだったんじゃないかと昔のソースコードを見てて思う。
Re: (スコア:0)
データベースから読んでちょっと加工して表示する、みたいな奴ならいい
のかもしれないが、ファンクションポイントって全く役に立たないよね。
数値計算屋
Re: (スコア:0)
> ソースコード行数の生産性が年々低下傾向にあることに着目し、ここからソフトウェア開発の生産性が低下していると主張している。
ケンシロウ「お前は長く生き過ぎた」
Re: (スコア:0)
儲けというか、生産性は一人当たりGDPで測るのが経済の流儀なんじゃないでしょうか。
Re: (スコア:0)
最近のプログラムは、かつての言語に比べれば多くのことをプログラム言語側で面倒見てくれるので
行数が少なくなると思います。すなわち、目的が少ない行数で実現できると。
少ない行数で完了するということは、より短時間でものが作れるわけで
空いたらどうするかというと、次のプロジェクトを行うだけです。
すなわち、コード行数は一定時間働く限り、一定数はないとおかしいわけです。
にもかかわらず、ソースコード行数が減り続けたら生産性は減っているという話はあながちおかしいとはいえないのでは。
Re:ほぇ (スコア:2)
できることは同じなら情報量は変わらないんだから、
ライブラリ含む言語が高度化すれば少ない行数でかける
しかし情報量は同じなのだから結局のとこ考える量は変わらないので単位時間でできあがるプロジェクトの数はそこまで変わらない
結果時間当たりの行数はへると思いますよ
パンチャーじゃ無いんだから行数が生産速度を律してるってことは無いんじゃないかな
テスト工数は減らせそうな気もしますが
てかじつはディスプレイの高解像度化で行が長くなってるんだったりして
Re:ほぇ (スコア:2)
行生産速度が変わらない、と言うのは
「コーディングの速さはキーを打つ速さでかなりの部分決まっている」
って言ってるんですよね…?
うーん、そうは思わないですけどねぇ
残業 (スコア:3)
昔は1日9時~27時まで18時間仕事していたけど、いまは8時間厳守になったから
生産性は半分以下ですよね。
Re:残業 (スコア:1)
そういうブラック前提なこと言ってるから、ロクな人来ないんでしよ。
待遇や環境の悪いところには、相応の人しか来ないのは当たり前。
デフレ人余りは、終ったんだ。
言い訳ですね、わかります。 (スコア:1)
ITパスポート試験から団体申込者の個人情報が漏洩、排他制御漏れが原因 [security.srad.jp]
身をもって示せた (スコア:0)
とか思っていそう
産業システムの破壊 (スコア:1)
SESが横行してるから結果生産性が落ちる
頼む (スコア:1)
関数ライブラリーにまとめろ(走召糸色木亥火暴)
まとめた横で類似なもの造るな(逝ってよし)
"castigat ridendo mores" "Saxum volutum non obducitur musco"
全体的に古臭いから (スコア:1)
今、仕事でITSSとかをちょっと参考にして教育カリキュラムとか作ってるんだけれど、
なんというか、全体に漂う古臭さ、「そんなの今時……」ってのがところどころあって、
そういう観点の人たちが作った基準でそういう観点で生産性だなんだを測ると、
そりゃそうだよな……みたいな感じはある。
漠然とした感想だけどね。
行数にカネ払うバカがいなくなった (スコア:0)
なぜか流行ってた「無理矢理行数を増やすテクニック」なんて、カネにならなきゃ誰もやらんでしょう・・・
読みにくいだけだし。
Re: (スコア:0)
この案件なら何人月…とかと考えは同じですよね。
Re: (スコア:0)
ライブラリが充実したとかコピペ増殖が減ったとかもありそうですよね。
人類の知性は数十年サイクルでゆるやかに上昇/下降を繰り返している (スコア:0)
そのサイクルに同期して世界大戦が起きている
無駄が多い (スコア:0)
DOSからWindowsに移行したときやゲームの3D化など特に顕著だったけど、必要な処理以外の実装が増えているからかな。
ローカルでやれば済むものまでクラウドにしたがったり、プッシュ配信要らないよってものまでそうしたがる。話題のライブラリや技術、ソフトがあるとそれを導入したがる。
それを「品質要求レベルが上昇」と表現してしまえば確かにそうだけど、無駄な実装が影響して必要な処理の品質が落ちてたりとちょっと違う方向に進んでる。
単価 (スコア:0)
>「品質要求レベルが上昇している」
品質が上昇しているのに単価が上昇しないので、生産性が低く見えているという可能性
生産効率が低下しているのではなく、価格競争に晒されているだけなのでは
Re:単価 (スコア:1)
品質が上昇しているのに単価が上昇しないので、生産性が低く見えているという可能性
違うだろ。
ここで言う生産性に、単価・金額は関係ない。
生産性の高い人が減ってる (スコア:0)
体壊したり年齢で解雇されたり嫌になって転職したり…
インフレで価格が2倍になって給料と収益も2倍になっても (スコア:0)
生産性は変わらないが、株価が2倍になっただけで大喜び
過去25年ぐらい1倍なのが日本
Re:インフレで価格が2倍になって給料と収益も2倍になっても (スコア:1)
つまりそう云う国の通貨が暴落しないのがおかしいって事だな。
出発点が間違ってるとどんな考察も無意味になる好例 (スコア:0)
ソースコード行数で生産性測ってる時点で、
それ以降の考察に何の意味もなくなってる。
時代錯誤もいいとこでしょ。
Re: (スコア:0)
SLOCはソフトウェアエンジニアリングの論文で普通に使われていますが、無意味だという指摘は画期的です
Re: (スコア:0)
SLOCに価値があるとしても、違う時期のものを比べてそれを根拠に生産性があがった下がったとやるのは無意味でしょう。
言語やフレームワークが変われば、同じ機能を実装するのに必要な行数だって変わるんだから。
Re: (スコア:0)
論文読めない人なの?
今回のIPAの発表は定性的なものなので、問題はありませんが?
Re: (スコア:0)
ん?論文どっかにアップされてる?プレスリリースにPDFがある以外は、特に見当たらないけど…?
このPDFは問題のある使い方してるように見えるけど、もっと詳しく書いてある奴があるの???
Re: (スコア:0)
生産性を評価するために使っているのなら無意味ですね。
Re: (スコア:0)
scratchとかnode-redみたいなのって、どうやって測定することになるんだろう?
相関性 (スコア:0)
ソースコードの行数に対する機能・品質・価値の相関性を示した論文とかあるの?見せてほしいものだ。
年々開発手法が変わってきているのに、20世紀の論文基準だと発表者の知性を疑うぞ。
アセンブラで記述されたものを基準にして行数数えて見たらどうかね。
フルスクラッチする必要性がなくなってきている分、オープンソース系のライブラリをリンクしていたりするんじゃないのかね。
まぁ、オープンソースライセンスとうまく付き合っていかないと、人の作ったものをオレ、オレのとか言う奴がいっぱいいそうだ。
# 次はバイナリサイズで生産性を決定してはどうかね。
# Windowsはスタティックで気発領域領域確保したとしても、バイナリファイルには埋め込まれないけどな。
利潤率傾向的低下の法則じゃないのね (スコア:0)
そんなものやたら行数の大きくなるプロジェクトが減ったからだろ?
産業家は賃金が上昇しないと生産性を上げるような固定資本に投資しないけど
この場合はプログラマは一文字あたりの効用を最大にしたいだろうから
必然的にPythonみたいに文字数の節約できる言語に移行するだろ
JAVAの比率が下がったのが大きいと思う
RADがいくら高機能でも文字数が大きいと見直したり修正するのが大変
結果的に行数も節約されていったんじゃないか?
効用面ではむしろ生産性が上がっている可能性が高いと思う
ソースコード以外の成果物 (スコア:0)
ソースコード以外の成果物、例えば各種仕様書や計画書、テストレポートを含めるとどうなるんだろう?
近年はこれらをしっかり書くよう要求されて、それに時間をとられr・・・いや、その結果無駄な手戻りをせずに済んでいるように思います。
これら文書の量も含めると、むしろ昔よりも生産性が上がっているかも?
#本音が漏れそうになった
要求レベルが(プロジェクトの途中で)上昇している (スコア:0)
ってこととかね。