- ベストアンサー
プログラムの「生産性」について
最近、「貴方の『生産性』はどれ位ですか?」 と良く聞かれます。 「1日で最高何ステップ作れますか?」 と尋ねられます。 私の場合、「こことここは心臓部は同じだからパラメータを設ければ関数にできる」 とか考えてコーディングしてしまうので どうも他人より、半分以下の数値となってしまいます。 もはや、「関数化・サブルーチン化」なんて過去の遺物となってしまったのでしょうか? 関数を1個作っている時間があったら10カ所コピペするのが主流なんでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
個人的な意見(回答)になりますが。 生産性をステップ数で把握するのはナンセンスですし、余りにも古い考え方です。 関数化は当然必要で、コピペは主流なんてことはないです。 コピペしてステップ数を多くしても、それはスパゲッティコードであって、最終的には生産性を落とすものだと考えます。 コピペした箇所にバグがあった場合などを考えると、プログラムのフェーズは生産性が高いでしょうが、テストフェーズで必ず大変な目にあいます。 ですが、顧客サイドやマネージャークラスでは生産性を測る手段に乏しく、ステップ数で判断したいと思ってしまう傾向もあると思います。 ですので納得させるのは難しいのですが、 生産性はステップ数で測れるものではない プロジェクトは複数人で進めるものだから、個人のスキルだけが高くてもうまくいくとは限らない と説明した上で、それでもステップ数を知りたいなら、と話をするようにしています。
その他の回答 (4)
- higeG
- ベストアンサー率22% (4/18)
> もはや、「関数化・サブルーチン化」なんて過去の遺物となってしまったのでしょうか? 逆です。 生産性を1日あたりのステップ数で勘定する方が過去の遺物です。 アセンブリ言語時代の考え方ですね。 他の方が挙げられているように現在は再利用性の高いプログラムを組む方が生産性が高いです。
- dscripty
- ベストアンサー率51% (166/325)
「貴方の『生産性』はどれ位ですか?」 「1日で最高何ステップ作れますか?」 う~ん、質問者さんほどのベテランなら、この質問が、これだけだと何の意味も持たないことはわかっているとおもうんだけど、 たとえば、ある課題に対して、「解決のロジックを文章と図でどれだけすぐに記述できて、他の人に説明できるか?」が、プログラムの生産性なんだから。 例えば、オブジェクト指向なら、どんなオブジェクトをどのように相互作用させるかがほぼ全てだから、これできてれば、あとコードするだけだし。基本オブジェクトの属性とメソッド暗記してれば、キーパンチの早さだよねステップなんて。 『ステップってなんですか?ダンサーじゃないしぃ~』とこころでつぶやきながら そのあたりを突っ込んで、質問をより具体化させてみたらどうかな?
- hamada-i13
- ベストアンサー率12% (6/49)
> もはや、「関数化・サブルーチン化」なんて過去の遺物となってしまったのでしょうか? いいえ。現役です。 > 関数を1個作っている時間があったら10カ所コピペするのが主流なんでしょうか? いいえ。まったく同じ内容のコードが多数存在することは避けるべきです。 保守性を保つために関数を作るやりかたが良いと思います。 しかし・・・コピペするほうがステップ数を稼げるのは当然です。 それを生産性と言えるかどうかは微妙です・・・。
- edomin7777
- ベストアンサー率40% (711/1750)
例えば、(数字は適当ですが) 1日に2000ステップ作れるとします。 このときに重要なのは、 1 あるソフトを2000ステップで作る(1日で作る) 2 同じソフトを効率化して1600ステップで作る(4/5日で作る) ことが同じかどうかです。 当然「2」は一日当たりの作成ステップ数が同じなら、余った時間で他のソフトの作成に取りかかれますよね? 質問者さんが気にしているのは、 3 あるソフトを2000ステップで作る(1日で作る) 4 同じソフトを効率化して1600ステップで作る(やっぱり1日で作る。考えながらなので2000ステップ行かない) 時の、評価だと思うんですが…。 2と4を比べると、2の方が断然評価が上がりますよね? そこをアピールすれば良いのでは。 なんか、回答になっていなくて済みません。
補足
基本的に4です。 「関数にまとめよう」とか考えている時間があったら 手を動かす(コピペ)という時代なんでしょうか? 個人的には 「なんで同じ処理があちこちに散らばっているんだ!」 と腹が立つんですが・・・・ 古い人間だからでしょうか?