回答:
ああ、これは簡単です:
多くの回答がコンテキスト切り替えとゾーンからの脱出について語っていますが、ノイズ、特に会話は、私にとってそれらにつながるものの1つです。
キューブワールドでは、すべての面でノイズと会話に囲まれています。メインフレームチームは1行を超えて、キューブ行で定期的な計画会議を開催します。時々、彼らは壁に沿ってオフィスでコンサルタントと会うでしょう、そして、それは騒々しいフーチンとホレリンと笑いにつながる傾向があります、そして、私は彼らにドアを閉めるように頼まなければなりません。
反対側では、Webチームの会議テーブルは私のウェストキューブウォールの反対側にあるので、私はそれが好きかどうかにかかわらず、すべての会議の一部です。サウスキューブの壁の反対側にもプリンターがあります。これは、プリントアウトを待っている人とのチャットに適しています。
「ノイズキャンセリングヘッドフォンを手に入れることはできません」という即座の明白な答えは、あなたが望むものが沈黙である場合には役に立ちません。
コードレビューのために、私は書類の山を昼食室に持って行きます(もちろん昼食以外の時間に)が、そこにはテレビがあります。誰も見ていない場合はオフにします。それ以外の場合は、建物の別の部分の他の部門で空のキューブを見つけに行きます。
プログラマーに必要な作業(主に思考と熟考と検討)を行わせたい場合、それを実行できる環境が必要です。
適切なテストなしでコードの行を書きすぎます。
高品質のコーヒーの欠如。
議題のない会議。
遅いマシン。
2番目のモニターの欠如。
素敵な新しいマウスの代わりにボールを持っている古いマウス。
マシン上でインターネットにアクセスできないため、MSDN / stackoverflow /などのクエリが少し苦痛になります。
事前に知っていれば、実装が簡単だった変更要求。
あなたを遅くする多くのことは、ブログの投稿としてお。
...
多くのプロジェクトは、コアインフラストラクチャレベルの機能を何度も繰り返し、ビジネスを競合他社と差別化する機能を提供することでビジネスを減速させます。
...
製品とイノベーションが開発者が差別化されていないタスクに費やす時間を削減するのに役立つことは避けられません。問題は、これらのサービスとツールがどのような形になるかです。
...
最近の最大の減速は、特定の順序で行われるべきいくつかのことを同時に開発しているためです。だから、私は(無実を保護するために名前が変更された)ジョンが私のSSISパッケージに必要なコンポーネントを終了し、ハリーはエクスポートをテストするためにいくつかのデータが必要なため、レコードをインポートするのを待って減速しますテーブルにデータがないときに複雑なエクスポートレポートを作成するには?)、設計が完了しておらず、タスクを実行するために必要なデータベーステーブルがまだ作成されておらず、終了しない可能性があるため、全員が遅くなります彼らがそうなると言っていたことである、など。
気晴らしをリストしないように頼んだが、それらは大きい要因である場合もある。彼らの作業環境を見て、頻繁に中断されているか、プロジェクトに関係しない他のことをするように頼まれているかどうかを確認します。
時々、開発者は今までにやったことのないことをしていて、どこに助けを求めればいいのかわからないために立ち往生するかもしれません。小規模なチームまたは個人の場合、さらに困難になる可能性があります。私たちはやや誇り高い傾向があり、物事のやり方がわからないときは認めたくない。また、他の人に助けを求めるのは好きではありません。開発者にこれを認めさせる簡単な方法はありません。ただし、締め切りに間に合うかどうか、または締め切りに間に合わせるために必要なものを尋ねて、正直になることを望みます。他の助けを求めたり、助けてくれる人を見つけたりする必要があるかもしれません。
要件が明確に定義されていないため、物事を把握したり決定したりする必要が生じます。
続けられますが、金曜日ですので、仕事を忘れたいです。
これは非常に個人的な意見であり、おそらく物議をかもしますが、常に前もって設計するか、「品質」コードを常に書くことについて考えすぎています。「数週間のコーディングで何時間も計画を立てることができる」ということわざがありますが、これは場合によっては真実かもしれません。
しかし、コーディングを始める前に、プログラマーが良いデザインをスケッチしようとするのをよく見ます。プログラムを進めていくと、問題と解決策についてより多くのことを学び、解決策を迅速にリファクタリングして優れた設計にすることができるので、「始め」ることが簡単だと思います。発生する問題のほとんどは、コーディングの開始時にはほとんどわかりません(少なくとも私の弱者の頭の中では)ので、前もって設計するのに多くの時間を無駄にするのは時間の無駄です。
これがTDDが嫌いな理由でもあります。テストの作成に時間を浪費しすぎて、リファクタリングの可能性が低くなるか、テストの書き換えに時間がかかります。単体テストは、プロジェクトのいくつかのケースといくつかの段階に最適ですが、1つの始まりは私見ではありません:)
何かをすばやく取得して改善します。