コーディング効率を高める 8 つの簡単なトリック

このページのリンクからサービスに加入すると、Reeves and SonsLimitedがコミッションを獲得する場合があります。 私たちを参照してください 倫理声明.

ソフトウェアの発行元の間で奇妙な現象が発生しています。 人々は、品質の高い製品をより良くするものについての理解を逆転させる傾向があるようです。少なくとも、マーケティングを行う人に関しては、これは真実です. 「彼らの製品には XNUMX 万行のコードがありますが、私たちの製品には XNUMX 万行あります。したがって、私たちの製品はより優れているに違いありません。」

この「多ければ多いほど良い」という考え方がどこから来たのかは誰にもわかりません。当時は誰もが「少ないほど豊かである」という哲学を作り上げようと懸命に働いていました。多くの作家が大きな数字を引用することで聴衆に感動を与えようとするため、おそらくそれは消費者向けジャーナリズムから始まったものと思われます。ほとんどの場合、これは機能します。この小さなフラッシュ ドライブには 200 テラバイトのデータが保存され、CPU は 48 秒あたり XNUMX 億の命令を処理できます。また、作成者は、同じことがソース コードに当てはまらないことを理解できるほど技術的に精通しているとは限りません。

しかし、コーディングの効率化とは、厳密なアルゴリズムを作成することだけではありません。無駄を削減できるかどうかも重要です。これは、問題の解決にどれだけの時間を費やしたかという点で無駄を意味し、あまりにも多くのコンピュータ リソースを消費するという点で無駄を意味し、さらには週末までにチームがオフィスの周りに何個のピザの箱を積み上げたかという点で無駄を意味します。理想的には、これらすべてを削減したいと考えています。

したがって、この記事で見ていきたいのは、効率を改善し、生産性を高めるためにできることです。

1.働きやすい職場環境を構築する

すべてのコーダーは独自の状況で動作しており、読者は非常に多様な束であるため、これらの提案を実装する方が他の人よりも簡単です。

あなたがフリーランサーなら、おめでとうございます。あなたはすでに自分の作業環境をマスターしているからです。もちろん、クライアントを訪問して現場で作業しなければならない場合は状況は変わりますが、成功できれば依然として有利な立場です。

あなたが開発チームのマネージャーである場合、これらの提案はチームの効率を最大化するのにも役立ちます。あるいは、あなたが開発チームの従業員である場合は、これらのアイデアのいくつかをマネージャーに提案するか、少なくともこのページへのリンクをマネージャーに送信して、最善の結果を期待することをお勧めします。

チームメンバーに在宅勤務を許可することを検討する

プログラミングは論理の演習でもありますが、それ以上に創造的な挑戦です。優秀なプログラマーは、どのタスクに対しても脳のどちらの面も同等に活用できます。クリエイティブな人は夜に最高の仕事をするということは科学でも長い間認められており、それは私たち全員が経験していることです。では、なぜほとんどのマネージャーは従来の 9 時から 5 時までのルーティンにこだわるのでしょうか?

実際、私たちはそれに対する答えをすでに知っています。それは部分的には制御に関するものであり、部分的にはビジネスの観点 (または少なくとも管理上の観点) から物事をより便利にすることに関するものです。しかし、ルーティンや場所へのこだわりがチームの効率と生産性を損なっています。

認識する必要があるのは、プログラマーはおそらく徹夜で最新のゲームを試していたか、パーティーに行っていたか、単に家族と交流しなければならなかった可能性があるということです。これは、月曜日の朝、彼らが仕事に来たとき、彼らは最高の生産性レベルに達していないだけでなく、すでにエネルギーを使い果たし、犬に疲れていることを意味します。

従業員にいつ働くか、そして理想的には場所についても選択肢を与えることは、生産性と士気を向上させる優れた方法です。彼らが仕事をやり遂げ、優れた質の高い成果を上げている限り、いつ、どこで、どのようにしてそれを達成したかを気にする必要はありません。

例外は緊密なコラボレーションが必要な場合ですが、実際のところ、ほとんどのプログラマーは自分のやり方で作業を任せたほうが良い結果を出せるため、緊密なコラボレーションが必要になることはほとんどありません。オフィスに出社するという選択肢は依然として存在するはずだが、最高機密の軍事プロジェクトに取り組んでいない限り、それが必要となる現実的な理由はない。

フリーランサーとして、ここで重要な点は、実際のコーディング作業のほとんどを夜間に行うと、より多くの作業を完了できる可能性が高いということです。深夜は気を散らすものが少なくなり、より静かになり、よりクリエイティブな気分になれます。

音楽を避ける

私たちは皆、超不潔な超ハッカーがヘッドフォンをつけてデスメタルに合わせてジャムりながら、息も止めずに楽々と画面いっぱいのコードを吐き出す、あのクレイジーな映画のステレオタイプを見たことがあるだろう。そして、現実世界で実際にコードを書いている私たち全員は、そのイメージがどれほどばかばかしいものであるかを知っています。

ただし、仕事中に音楽を聴く場合は注意してください。仕事のことではなく音楽のことを考えてしまうのはよくあることですが、音楽によっては眠気を誘う効果があるものもあります。ジムでトレーニングをするとき、適切な種類の音楽が、さらに数回の繰り返しを頑張ろうという気持ちを奮い立たせてくれるかもしれません。しかし、セミコロンが欠けている行を見つけたり、for ループを使用するか while ループを使用するかを正しく選択したりするような音楽を作成できた人は誰もいません。これまでで最もそれに近いのは、Electric Dreams です。

整理整頓してください

散らかっていると、妙に落ち着くことがありますが、作業が遅くなる場合もあります。混乱の中で紛失したものを探すのに簡単に 20 分を費やしてしまい、そもそもなぜそれが欲しかったのか忘れてしまうことがあります。

では、それが引き起こすあらゆる不便にもかかわらず、なぜ私たちは、少なくとも一部の人は、これほど散らかることに夢中になってしまうのでしょうか?組織の専門家で作家のジュリー・モルゲンスターン氏は、こうしたものが私たちを過去と結びつけ、私たちのアイデンティティを定義する役割を果たしているからだと主張しています。ニューヨーク市を拠点とする教師兼舞台監督のマーカス・ゲドゥルド氏は、それは「無菌」環境よりも乱雑な環境のほうが好ましいからだと示唆し、乱雑な環境を混乱に喩える。 affirm自由と創造性の創造。

しかし、散らかったものを減らすことが、気が散ったり、混乱したりするのを避けるのに役立つことは間違いありません。したがって、これは達成する価値のある目標です。ぜひ、気分を良くしてストレスを軽減してくれる神聖な物をいくつか身の回りに置いてください。ただし、やりすぎないように注意してください。片づけは、ほとんどの人にとって最も難しいことの 1 つであり、それは私たちの身体的な問題だけではありません。 desktop整理整頓が必要ですが、多くの場合、私たちのコンピューター desktopもです。これに本当に苦労する場合は、Fluxbox などのシンプルな DTE を使用してみるとよいでしょう。

しかし、こうした整理整頓の最中でも、行き過ぎないようにしましょう。環境内の多少の混乱が実際に創造性を促進する可能性があることを示唆する優れた科学はたくさんあります。これに関する研究で最も頻繁に引用されるものの 1 つは、ミネソタ大学のヴォース、レッドデン、ラヒネルによる「心理学科学」誌の論文です。 肉体的秩序は健全な選択、寛大さ、慣習を生み出すが、障害は創造性を生み出す。 おそらくこれが紙のジャーナリストが固執している理由は、「…無秩序な部屋の参加者は整然とした部屋の参加者よりも創造的だった」と明確に結論付けているからです。

以下のような反対意見はあまり一般的ではありません 環境障害は自主規制の失敗につながる (Chaye&Zhu、2014年)、Journal of Consumer Researchに掲載。 この研究は、無秩序な環境で働いている人々がタスクを実行する能力に障害があることを発見しました。

さて、これであなたはどうなるでしょうか?混沌とした環境で働くべきでしょうか、それとも無秩序な環境で働くべきでしょうか?答えは、インスピレーションを維持するには十分なほど混沌としていても、気が散ったり、物事を見つけるのに苦労したりしないバランスを見つけることのようです。

自分の考えを整えるために、部屋を後ろに置いてください

熟考するときは、歩き回れるだけの余裕を持っておくとよいでしょう。歴史上最も優れた提督や将軍の多くは、戦闘戦略を計画する際に甲板上を歩き回るのに長い時間を費やしたことで知られています。

戦闘員だけがこの慣習に従うだけではありません。 多くの僧侶も「ウォーキング瞑想」を提唱しており、それが心の明晰さを促進するのに役立つと信じています。 解決すべき特に厄介なプログラミングの問題があるときはいつでも、デッキの周りを瞑想的に歩くことで足を少し伸ばすのに役立つことがあります。 明らかにここでも、混乱がないため、病院に行くことなくこれを行うことができます。

ボスとして、創造的な努力の批判に対して慎重なアプローチをとる

建設的な批判は悪いことではありませんが、適切なタイミングを選び、適切な方法でアプローチする必要があります。そうしないと、将来的にスタッフの生産性が低下するという逆効果になる可能性があります。彼らにインスピレーションを与え、洞察を提供するのではなく、実際にリスクを取ることを恐れさせる可能性があり、これは創造性を殺す良い方法です。マリケ ロスケス、 クリエイティブパフォーマンスを支援または阻害する制約:動機付けのアプローチは、クリエイティブワーカーのモチベーションに対処する方法のフレームワークを提供します。具体的には、意図せずにモチベーションを下げないようにする方法も提供します(Creativity&Innovation Management、Vol 24、Iss 2、2015)。

2.良いSOPを確立する

ビジネス管理やプログラミング手順には、実際よりも理論的にははるかに賢明に聞こえる、キャッチーなトレンドがたくさんあります。特定のアプローチがあなたにとってうまくいくかどうかは、あなたの目的と、あなたが個人的に何を成功結果と考えるかによって決まります。

私が働いていた会社が試みた方法論のXNUMXつの例は、同じようにすぐに廃止されました(ペアプログラミングです(PEARプログラミングと混同しないでください))。 一部の人々は実際にこの作業方法論を賞賛し、アジャイル開発パラダイムにおけるその位置を賞賛しますが、それはひどく非効率的であることがわかりました。 まず、ワークステーションごとにXNUMX人のプログラマーが必要だったので、実際の開発作業に費やす費用はXNUMX倍になりました。 また、頻繁な停止/開始フローと不要なダイアログの傾向があるため、この方法で作業するのははるかに遅いこともわかりました。

ペア プログラミングの利点は、より自然なドキュメントとより厳密なドキュメントが得られることでした。また、バグをより簡単に発見できるようになり、アルゴリズムを強化するための提案を行うこともできました。しかし同時に、微調整や調整が実際には必要ではない場合もあったため、同じ利点が問題を引き起こすこともありました。

このアプローチのもう 1 つのリスクは、Roskes によって特定された効果が得られる可能性があることです。プログラマーは修正されたくないため、試行を躊躇する可能性があります。一人の開発者が非常に衒学的で伝統的であるのに、もう一人の開発者はより創造的で自発的である場合、性格の衝突が激しくなることがあります。

プログラマはペアプログラミングを好むとよく言います。これは、彼らが社会的交流を楽しんでいるからである可能性がありますが、これはおそらく士気を高める以外に、生産の効率にはまったく貢献しません。

したがって、開発者にとって何が実際に機能し、何が機能しないのかを確立する必要があります。効果のないものについては、たとえそれが流行の習慣であっても、捨てたほうがよいでしょう。チームが迅速に進歩するのに役立つものは何であれ、良いことです。しかし、自分たちのスタイルに合わない方法論を押し付けられると、最終的には問題が発生します。

3.詳細なドキュメントを奨励する

冗長性によって非効率が増すように見えるかもしれませんが、コメントをより詳細かつ正確に表示するためにかかるわずかな時間により、プロジェクトが進行したり改訂されたりするときに多くの問題を回避できます。

4.不必要な文書を作成しない

よく書かれたコードは多くの場合、自己文書化されます。関数に付けた名前から関数の動作が完全に明らかな場合 (ほぼ常にそうなるはずです)、これ以上の説明を追加する必要はありません。変数の名前付けと戻り値についても同様です。それらが何をするのかは名前から明らかである必要があり、それが不可能な場合には、コメントにそれらの説明を含める必要があります。

5.空白はあなたの友達です

コード内で空白を適切に使用することは、コードを読みやすく、レビューし、理解しやすくするために役立ちます。 それは、優れた文書化と自己文書化コードの記述と密接に関連しています。 経験豊富なプログラマー(またはプログラマーではない場合でも)がソースコードのコピーを取得して、各関数の目的とその機能を即座に理解できるようにする必要があります。 理想的には、誰かがあなたのよく書かれたコードを研究することからプログラミングすることを学ぶことができるべきです。

6.複雑さよりも単純さを優先する

コードを複雑にするほど、絡まりを解くことが難しくなります。 皮肉なことに、これはプログラミングのショートカットに適用されます。 作成時間を節約できますが、後でコードをレビューするために経験の浅いプログラマーがあなたの意図を理解できない場合があります。

7.徹底的にテストする

コードは段階的かつ頻繁にテストする必要があります。 何かをデプロイする前に、最初のリリースがAlphaに指定される場合でも、可能な限り社内テストを実施する必要があります。

8.バージョン管理を使用する

主要なプロジェクトでバージョン管理を使用しないなんて、頭がおかしいと思います。これがないと、自分自身の小さなミスから守られず、また、他のチームメンバーが、あなたのコードを気に入らないもので上書きして、誤って (または意図的に) コードを妨害することも非常に簡単です。

これら 8 つの重要な提案を考慮することで、あなた自身と一緒に働くチーム メンバーの効率を最大限に引き出すための独自の戦略を立てることができます。必ずしもすべてを適用する必要はなく、実際には実用的でないものもあるかもしれませんが、それらを任意に組み合わせれば、作業をより簡単に完了できる可能性があります。生産性の高いワークフローは、たとえストレスが軽減され、自分のための時間が増えるという点だけであっても、時間の経過とともに効果が現れます。それは取り組む価値のある目標です。

ボグダン・ランセア

ボグダンはインスパイアードマグの創設メンバーであり、この期間でほぼ6年の経験を積んでいます。 余暇には、クラシック音楽を学び、視覚芸術を探索するのが好きです。 彼はフィクシーにもかなり夢中です。 彼はすでに5を所有しています。

コメント 0応答

コメントを残す

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *

評価 *

このサイトでは、スパムを減らすためにAkismetを使用しています。 コメント処理方法.