28

私は最近ソフトウェア見積もりについて考えています、そして私はコーディングに費やされた時間に関してたくさんの質問があります。ソフトウェアの開発に少なくとも2年の経験がある人から聞いてみたいです。

何かに取り組むのに費やす時間を見積もる必要がある場合、1日の何時間コーディングに費やしますか?他の非コーディング時間は何を占めていますか?

チームメイトのコーディングよりも多かれ少なかれ時間を費やしていると思いますか?あなたは彼らよりも多かれ少なかれ仕事をしているように感じますか?

あなたの労働条件はどのようなものですか?プライベートオフィス、シェアオフィス、チームルーム?単独でコーディングしますか、それともペアでコーディングしますか?あなたの労働条件は、あなたが毎日コーディングに費やす時間をどのように変えましたか?自宅で仕事ができる場合、それは生産性を向上または低下させますか?

どのような開発方法を使用していますか?滝?アジャイル?ある方法から別の方法に変更することで、1日あたりのコーディング時間に影響がありましたか?

最も重要なこと:生産性に満足していますか?そうでない場合、最も影響を与える変更を1つだけ行いますか?

4

9 に答える 9

21

私は企業の開発者であり、いくつかのStackOverflowポッドキャストで「落ち込んでいる」と呼ばれる種類のJoelSpolskyです。私の会社はソフトウェア会社ではないので、ソフトウェアの専門家が会社が開発者の生産性のために従事することを推奨する多くの手段を実行するビジネス上の理由はほとんどありません。

プライベートオフィスやデュアル30インチモニターはありません。私たちのソース管理システムはMicrosoftVisualSourceSafeです。十分に言った。その一方で、私は自分の一日を埋め、仕事にいくつかの多様性を加える多くのことをするようになります。私は、事業分析、プロジェクト管理、開発、生産サポート、国際的な実装、トレーニングサポート、チーム計画、およびプロセス改善に携わっています。

集中できて、主要なプログラミングタスクがあるときは、1日の85%をコーディングに費やすことができます。しかし、多くの場合、私は1日の約50%をコーディングに費やしています。本番サポート(コーディングに関連しない)が重い場合は、1日の15%しかコーディングできない可能性があります。

私が働いてきた企業のほとんどは、アジャイルプロセスやテスト駆動開発の評価に積極的に取り組んでいませんでしたが、ウォーターフォールの仕事もうまくいきませんでした。彼らの開発者のほとんどは、無頓着なカットアンドペーストのカウボーイのように働いていました。

時々私は家から、そして子供たちと一緒に仕事をします、それはひどいです。私は仕事でより生産的です。

私の生産性は良好ですが、メンタルコンテキスト切り替えの中断要因とコストを取り除くと、より良くなる可能性があります。生産サポートとプロジェクト管理のオーバーヘッドはどちらも、これらのタイプの中断を引き起こします。しかし、どちらも仕事に必要な部分なので、私はそれらを取り除くことはできないと思います。私が検討したいのは、プロジェクトの担当者がプロジェクトに集中できるようにチームを再編成し、他の担当者がサポートに専念することで中断をブロックできるようにすることです。そして、プロジェクトが終わったときに交換します。

残念ながら、誰もサポートを望んでいないので、私が望む他の生産性向上策は次のいずれかです。

  • 単体テストを高速化するためのより優れたテストツール/方法論
  • 新規開発の品質を改善し、本番サポートの負荷への貢献を制限するためのより優れたビジネス分析ツール/スキル
于 2008-08-16T21:25:03.607 に答える
18

現実的には、平均して1日4〜5時間になるでしょう。その「ゴツゴツ」ですが、8時間または9時間かかる日もあるかもしれません。

私が知っているすべてのソフトウェア開発者の中で、(研究ではなく)本番コードを作成する開発者は4〜5人が実際のコーディングの最大値のようです。進行中の他のものがたくさんあります。

そして正直に言うと、先延ばしがたくさんあります。私はそれがライターズブロックに少し似ていると思います。始めるのが難しいこともありますが、2時間のセッションはたくさんの作業が必要です。それはあなたが経験しなければならないすべての準備、あなたが正しいアプローチを取っていることを確認するための実験です。窓の外を見つめたり、メールなどをチェックしたりする無限の量...

于 2008-08-16T21:38:59.863 に答える
6

私は週37.5時間働いています。
そのうちの 30 時間 (80%) は、クライアントに請求することになっています。
実際には、実際のクライアント システムで約 60% のコーディングを使用し、20% は新しい手法の実験とブログの閲覧に使用し、20% は社内政治と「社交」に浪費されていることがわかりました。

私はそれについて満足していますか?
週に 30 時間、画面を見つめて、与えられた課題のコーディングをしたいと思いますか?

良い。時間の 20% は自分の技術を向上させるために使用されるため、効果的なコーディングである 60% では、そうしなかった場合の 90% の時間よりも多くの時間を作成できます。
もう一度、その事実を上層部に説明してみてください ;)

于 2008-08-16T22:30:51.413 に答える
6

ええと、私は通常、少なくとも 15 分遅れて到着します。ああ、私は横のドアを使用します - そうすれば、ランバーグは私を見ることができません.

...ええ、私は自分の机をじっと見つめています。しかし、私は働いているようです。私はおそらく昼食後もそれをさらに1時間行います。ある週に、実際の実際の作業はおそらく 15 分ほどしかしていません。

私にとって、プロジェクト間の切り替えは先延ばしの大きな原因です。プロジェクトを終えたばかりのとき、自分に割り当てられた次の要件の開始を先延ばしにする傾向があります。私の心はまだコーディングモードのように感じますが、最初に仕様を作成するための費用を見積もる必要があります. そのため、コーディングから顧客への電話などに切り替える必要があり、不快に感じます。

私が生産性を維持するのに最も役立つのは、1 日の最初の数時間は気を散らすものをすべて取り除き、その日の最も重要なタスクをすぐに開始することです。できるだけ早く流れに乗る必要があります。


The Programmer's Stone をご覧になることをお勧めします。

ストレスが一部の認知機能を損なうことはわかっています。これらの機能の喪失は、プログラミングが難しい理由を正確に説明し、物事を整理する方法を改善するための他の多くの機会を示しています. その結果は、言語、論理、文化的規範に影響を与えます。紹介はこちら...

于 2008-08-17T00:34:27.497 に答える
5

私は1日のコーディングの約40%を費やしています。40%は非コーディング活動(大ざっぱなビルドサーバーとの戦い、NUnitがエラーメッセージなしで失敗した理由の解明、コードが階下のOracleサーバーとの通信を停止した理由の解明など)に費やされます...そのようなジャンク)。残りの20%は通常、先延ばしや会議に費やされます。

生産性に満足していますか?絶対違う。私は1日7時間働いており、そのコーディングの約2.5を費やしています。私はむしろ1日のコーディングに5〜6時間費やし、他のすべてのものに1時間だけ費やしたいと思います(悲しいことに、それを実現する1つのことは、PMが毎日ビルドスクリプトをいじるのをやめることです)。 -発生しません)。残念ながら、私は企業の開発者であるため、経営陣は時間が途方に暮れているとは考えていません。建物内のほとんどのドローン(PMを含む)が1週間で完了するよりも、1日の40%ではるかに多くのことが行われるため、彼らは私が生産的であると考えています。

于 2008-08-16T21:47:45.137 に答える
4

@Bernard Dy: 私はおそらくキャリアの 30% を企業環境で過ごしてきました (現時点ではありません)。通常、いくつかの失敗した(または失敗しなかったが失敗した)スタートアップのアイデア、またはある種の燃え尽き/変化の後です。少しの間なら大丈夫です。まったく異なるバックグラウンドを持つ人々に会うのはいいことです (弁護士やアクチュアリーと一緒に過ごすのはとても楽しいと思っていたでしょう)。モチベーションを持って朝起きます(または、休暇の恐怖が戻った後)-おそらく、あなたが定義するような理由で(単にケアが不足しているだけです)。しかし、それは良い経験であり、少なくともアイデアの源です。そして、どこでも優秀な人々に会うことができます (頭の良いプログラマーだけではありません。私は常に、ビジネスの背後にいる本当の頭脳は誰なのかを探ろうとしました)。

興味深いことに、私が厳格なアジャイル/XP を実践したのは企業の環境だけでした。その場合、おそらく 1 日 7 時間は実際に (ペアで) コードを実践していました。それが良いことかどうかはわかりません。おそらく私は怠け者です。

于 2008-08-17T03:23:34.350 に答える
2

私自身の質問のいくつかに答えるには:

私が所属している現在のチームは、総タスクの見積もりの​​みを行っているため、1日あたりの時間を追跡することは困難です。私のキャリアでは、コーディングに費やした時間は25%(主に管理職)から85%以上(週に4日自宅で仕事をし、週に1回半日会議に集まる)でした。しかし、私が推測しなければならない場合、平均はおそらく60%近くのどこかにあります。

コーディングに費やした時間の中で私にとって最大の影響は、会議の有無です。同じ部屋で全員とアジャイルプロジェクトに取り組んだとき、会議は臨時で非常に短い傾向があったため、コーディングに費やした時間は非常に長くなりました。また、チームルームにいるときは、コーディング以外の作業に費やす時間が少なくなり、場合によってははるかに少なくなると感じました。これは、モニターがはっきりと見えない場合に、偶然またはその他の方法で時間を無駄にすることがはるかに簡単だからです。 。:)

于 2008-08-16T20:36:02.877 に答える
2

私はアウトソーシングを行っており、基本的には一日中コードを書いています。2 つのプロジェクトがあり、他に何かを作る時間があまりありません。つまり、何も完成できなかったので、これ以上仕事をすることができないということです。これは良い方針です。できるだけ取る必要があります。

また、余暇が必要であり、非常に重要なことは、十分な休息をとることです。ここで重要なのは、計画と規律です。

妻と過ごしたコーディング以外の時間には、町に出て自分のプロジェクトについて考えないようにするのも好きです。このバランスをとればとるほど、生産性が向上します。

あまり仕事をしていないときは、プログラミングのブログを読むのが好きで、プログラミングを勉強するのも好きです。

そして最後に、私は私たちのキャリアは作品として見られるべきではなく、何か楽しいものとして見られるべきだと言いたい.

于 2008-08-17T07:34:31.550 に答える
1

私は R&D 部門で週 40 時間働くソフトウェア開発者です。

私は自分の時間の 10% を実際にコーディングに費やしています。コーディングをしていない時間は、主にテスト、評価、比較を行い、結果を書き留めています。また、これから書くコードの仕様書を書いたり、これから書くコードの調査に多くの時間を費やしたり、現在のプロジェクトのブレインストーミング ミーティングに参加したりしています。

チームメイト (ソフトウェア開発者でもあります) からは、現時点で私が最も多くコーディングしていると言えます。ただし、毎回作業するタスクによって異なります。私は、実際にコーディングすることを懸命に取り組んでいると数値化するつもりはありません。優れた仕様、適切な調査、およびプロジェクトの十分な理解があれば、コーディングはformalityほぼスムーズかつ迅速に進行します。

ここには、2 つのチームがいる共有オフィスがあります。私たちはほとんど一人でコーディングしていますが、ペアでコーディングすることはめったにありません。私の仕事は、コーディングに費やした時間によって大きく変化します。以前は、コーディングについてよく理解していないまま、ほとんどの時間をコーディングに費やしていました。タスクがあれば、すぐにコーディングを開始し、何か間違ったことをしたことに気付くたびにコーディングをやり直しました。そして、それは非常に効果がありませんでした。

開発方法論は、現在、プロトタイピングとスパイラルの間のどこかにあります。コーディングする時間数が明らかに変わりました。

締め切りと目標に関連する生産性に満足しています。

于 2012-03-21T07:33:49.087 に答える