今朝、私はジョージ・ストッカー氏の記事「プログラマーの仕事効率を破壊する方法」とジョエル・スポルスキー氏の記事「ショットと場所の変更」を見つけました。これら 2 つのブログ投稿では、プログラマーの生産性の問題、特に生産性を低下させるパターンについて説明しています。そこで、生産性向上に関する私の実践的な経験を共有することを考えました。
情熱
仕事の効率を向上させるための最初のヒントは、毎日取り組んでいるプロジェクトに対して情熱を持つことです。あなたは自分がやりたいプロジェクトに対して心から楽観的でなければなりません。 1 年後、2 年後、3 年後にそれがどれほど素晴らしいものになっているかを想像する必要があります。私は何度か考えました。ねえ、NDepend (私のプロジェクト) は過去 2 年間で大きく進化しました。 2 年前、私はその新機能や改善点を SF のように想像しましたが、今日ではそれが現実となり、世界中の実際のユーザーに提供されています。とてもクール!
忍耐と信仰
したがって、情熱だけでなく、愛と忍耐さえも必要です。過去 X 年間の作業成果を測定すると、一度に 1 つの機能を実行し、1 つの改善、1 つのバグ修正、1 行のコードを作成するという、この 1 つずつの考え方が私を向上させ続けていることに気づきました。過去のすべての成功は、将来のさらなる成功を生みます。これよりも(専門的に)重要なことはないので、生産性を高めるために毎時間自分自身を動機づけます。
今日は迷惑なバグの解決に丸一日を費やしたようですが、もし私がずっと愚かでなかったら、おそらく 30 分で修正できていたでしょう。過去にこのようなことがたくさんありましたが、これまで私が歩んできた道を振り返ると、これが私が進みたい道であることがわかりました。これは自信です。
今すぐ始めましょう
プロジェクトの中心点は、どこに向かうべきかを知っていることです。短期(数日、数週間)、中期(数か月)、長期(数年)。私にとって短期的な意味は、コード ベースが優先度の高いコメントで埋め尽くされており、優先度 5 のほうが優先度 4 よりも緊急であるということです。これは非常に基本的な To Do リストのアプローチのように聞こえるかもしれませんが、To Do リストには強力な利点があります。プログラミング操作を実行する必要がある場合には、アクション プランが表示されます。したがって、アクション プランの作業を開始すると、プログラミングの優先順位をどこから始めるべきかを把握するプロセスが不要になります。この行動をすぐに開始する (またはすぐに開始しない) と、生産性が低下します。したがって、すぐにコードを書き始めるのに役立つものはすべて、生産性資産になります。
行動計画のもう 1 つの利点は、すべての計画が完了すると仕事が完了することです。プログラミングに関連するすべてのタスク (テストの作成、コード レビュー、検証など) はアクション プランに配置することができ、またそうしなければならないため、アクション プランはもはや完了した作業の単純な定義ではありません。
フォーカス
もちろん、ある時点でアクション プランをレイアウトし、コードを最も可能性の高い場所までクロールする必要があります。通常、これは、あるもの (製品バックログ項目) の作業を開始するときに起こります。この時点で、製品バックログ項目は (複数または多数の) 優先バックログ項目に変換され、優先順位は製品バックログ項目のサイズに応じて決まります。修正するのに 1 時間かかるバグもあれば、開発に 3 か月かかる機能もあるかもしれません。
生産性を向上させるための重要なヒントは、今やっていることに集中することであるため、一度に 10 個を超える優先 ToDo 項目を持つべきではありません。したがって、この機能は、第 1 種優先 To Do 項目 90 個と第 2 種優先 ToDo 項目 10 個に分解でき、第 1 種優先 ToDo 項目 90 個のうち 10 個を選択して完了することができます。現在取り組んでいるタイプ 2 の優先度の To Do が価値がありすぎる場合は、それをタイプ 3 の優先度の ToDo などに変換できます。
この方法では、毎朝ワークスペースで To Do アイテムを調べるだけで、何をすべきかがすぐにわかります。今日何をすべきかを考える必要はありません。ただすぐに始めて、集中力を維持してください。
目標
中期 (数カ月) と長期 (数年) の目標を想像することで、仕事への情熱と日々の仕事の効率を高めることができます。これを行うには、To Do リストを 2 つ保持する必要があります。 NDepend は Visual Studio のリリースを厳密にフォローしているため、スプリント期間は約 12 ~ 18 か月です。そこで、現在から次のメジャー バージョンをリリースする N か月前までに実行する必要があることの中期リストを作成しました。中期リストは、ROI (投資収益率、開発投資に対する機能の有効性の比率) と、将来の各機能のパフォーマンスに関する適切な情報を提供するユーザーの声の両方によって決定されています。スプリント期間に拘束されないリストを除き、長期リストにも同じことが当てはまります。
心理学
これまで、情熱を損なうことなく生産性を向上させることができることを示す、プロジェクト管理と組織の経験をいくつか取り上げてきました。しかし、情熱、忍耐、情報、スタート、集中力、目標設定はすべて心理学に関係します。生産性を維持するための古典的な心理学の実践例をいくつか紹介します。
健康で幸せな生活を送ることは確かに不可欠です。個人的には、人生にはプログラミングのほかに、友人、家族、子供、趣味など他のものが必要です。コード以外のことに毎日数時間を費やす必要があります。よく眠って、通常の時間に働かなければなりません。仕事に最も集中できる時間帯 (通常は早朝か深夜) を決めて、この特別な時間帯に仕事をするようにしなければなりません。これはあなた(そして私)には明白に聞こえるかもしれませんが、世の中の非常に不快な人々はこれを認識する必要があります。 1 日 14 時間コードを書きながら、長期プロジェクトの生産性を維持することはできません。
私のプログラミングのキャリアを向上させるための最も創造的な方法は運動であることに気づきました。定期的にランニングすることは、私にとって生産性を高めるルーチンです。このプロセスにより、新しいアイデアを自然に思いつくことができるだけでなく、持久力運動によりエンドルフィン ホルモンの急速な分泌が引き起こされ、痛みやストレスが非常に軽減されます。実際にランニングをする人は、これに簡単に夢中になってしまうことがあり、とても楽しいプロセスです。私は運動時間も勤務時間の一部だと考えています。これを行うことは非常に実用的であり、会議を欠席することはありません。ちなみに、私は最近、アラン・チューリングがランニング中に多くの素晴らしいアイデアを思いついたことを知りました(彼は 1948 年のオリンピックのマラソンをほぼ完走するところでした)。
運動に加えて、特にMBSR(マインドフルネスベースのストレス軽減)を中心に瞑想も毎日行っています。こうすることで、私はより静かになり、より平和になり、より集中できるようになります。 MBSR は非常に簡単で、わずか数分の会議中に 1 日数回行うことができます。それは主に、呼吸の観察、認識、環境の感覚を通じて今この瞬間を感じる人々の能力を開発することに基づいています。重要なのは、「物事に満足せず、自分自身に悲しまない」能力を開発することです。筋肉を増やしたいなら運動しなければならないことは誰もが知っていますが、脳がうまく機能するように訓練することが可能であり、訓練しなければならないことを理解している人はほとんどいません。一般に、MBSR と瞑想は、脳と認知能力を訓練し、発達させるために使用されます。
心理学と仕事の効率性を結びつけるとき、「フロー」という概念をよく聞きます。 「フロー状態にある」とは、現在の活動に完全に集中していることを意味します。 「フロー」の条件を達成することは、仕事効率の神、つまり仕事への情熱と確かなスキルを維持することです。スキルを習得するには10,000時間の練習が必要だという話をよく聞きます。 「フロー」は経験豊富なプログラマーによく起こります。魔法の「フロー」が発生するもう 1 つの条件は、十分にやりがいのあるタスクを受け入れることです。単純なことをやっているだけでは「流れ」を実現することは不可能です。良いニュースは、プログラミングは簡単な仕事ではないということです。
もちろん、作業の効率を考えると、中断を避けることも非常に重要な側面です。オンラインで議論する代わりにバッチモードでメールを 1 日に 2 回処理する、時々ソーシャル ネットワークを閲覧するなど、自分でコントロールできる中断がいくつかあります。集中力が向上するため、瞑想と運動が重要な役割を果たします。 。また、同僚、会議、子供(在宅勤務の場合)など、制御できない中断も発生します。こうした中断に対処し、できるだけ早く集中する以外に選択肢はありません。
私と一緒に仕事をすることができなかった人のために、ボーナス理論をご紹介します。たとえば、グループ編成で 3 時間のコーディング作業を行った後、1 時間ビーチに行きます。これは私だけに効果があるわけではありません。仕事が終わって海に行きたいときのご褒美だと思っています。報酬理論は、仕事に情熱を持っていない人には効果があるかもしれません。あなたのキャリアにおける最初の責任は、あなたが情熱を注げる仕事を見つけることです。
LAMP BrothersオリジナルPHPチュートリアルCD/『Essential PHP in Detail』を無料でプレゼント 詳細は公式サイトカスタマーサービスまでお問い合わせください: http://www.lampbrother.net
PHPCMS二次開発 http://yun.itxdl.cn/online/phpcms/index.php?u=5
WeChat開発
モバイルインターネットサーバーサイド開発 http:// yun.itxdl.cn/online/server/index.php?u=5
Javascriptコース http://yun.itxdl.cn/online/js/index.php?u=5
CTOトレーニングキャンプ
|