コーディング効率を改善するための簡単なトリック

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

誰もが、この「より多くはより多く」のような考え方がどこから来たのかを知りません。 多くの作家が大きな数字を引用することで聴衆に印象づけようとするため、おそらくそれは消費者向けのジャーナリズムから始まったのでしょう。 ほとんどの場合、これは機能します。この小さなフラッシュドライブは200テラバイトのデータを保持し、CPUは毎秒48億の命令を処理できます。また、同じことがソースコードに適用されないことを理解するのに十分な技術的知識があるとは限りません。

しかし、コーディングの効率性は、厳密なアルゴリズムを作成することだけではありません。 また、無駄を減らすことができるということでもあります。 これは、問題の修正に費やす時間の浪費、コンピューターリソースの消費量の浪費、そして週の終わりまでにチームがオフィス周辺に積み重ねたピザボックスの数の浪費を意味します。 理想的には、これらすべてのものを削減したいです。

したがって、この記事で取り上げるのは、効率を改善して生産性を向上させるためにできることです。

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

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

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

あなたが開発チームのマネージャーである場合、これらの提案はチームを最大の効率にするのにも役立ちます。 または、開発チームのワーカーの場合、これらのアイデアのいくつかをマネージャーに提案するか、少なくともこのページへのリンクをマネージャーに送信して、最善を尽くすことができます。

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

プログラミングは部分的には論理の練習ですが、それはさらに創造的な挑戦です。 最高のプログラマーは、あらゆるタスクと同等の方法で脳のどちら側でも使用できます。 科学者は創造的な人々が夜に最高の仕事をすることを長い間認めてきました。そしてそれは私たち全員が経験したものです。 では、なぜほとんどのマネージャーは従来の9対5のルーチンを主張するのでしょうか。

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

あなたが理解する必要があるのは、あなたのコーダーがおそらく一晩中最新のゲームを試していたか、多分彼らはパーティーに行ったか、単に家族と付き合う必要があったということです。 つまり、彼らが月曜日の朝に仕事に出かけるとき、あなたは彼らを彼らの最高の生産性レベルに達していないだけでなく、彼らはすでにエネルギーを使い尽くされており、疲れ切っているのです。

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

例外は、緊密なコラボレーションが必要な場合ですが、実際には、ほとんどのコーダーは、独自の方法で作業を任せた方が効率的であり、緊密なコラボレーションの必要性はまれです。 オフィスに来るオプションはまだあるはずですが、最高機密の軍事プロジェクトに取り組んでいない限り、それが必要となる現実的な理由はありません。

フリーランサーとして、ここで重要な点を確認することもできます。実際のコーディング作業のほとんどを夜間に行うと、より多くのことを達成できる可能性が高いということです。 夜遅くの気晴らしが少なく、静かで、より創造的になります。

音楽を避ける

私達は皆、何人かの超汚れたuberhackerがヘッドホンを装着してデスメタルにジャムしながら、息を止めることさえせずに画面一杯のコードを簡単に作り出す、クレイジーな映画のステレオタイプを見てきました。 そして、現実の世界で実際にコーディングする私たち全員が、そのイメージがどれほどおかしいかを知っています。

ただし、作業中に音楽を聴く場合は注意してください。 仕事ではなく音楽について考えるのは簡単で、音楽の種類によっては、すてきな効果がある場合があります。 ジムでワークアウトに行くとき、適切な種類の音楽が、あなたにその余分な数のトレーニングを押し出すように刺激するかもしれません。 しかし、セミコロンのない行を見つけたり、forループを使用するか、whileループを使用するかを正しく選択したりするのに影響を与える音楽を作成することに成功した人はいません。 私たちがこれに最も近いのは、Electric Dreamsです。

整理整頓してください

乱雑さは奇妙に心地よいかもしれませんが、あなたを遅くする可能性もあります。 混乱の中で失われたものを探していると、20分の時間を簡単に失ってしまい、そもそもなぜそれが欲しかったのかを忘れてしまいます。

それで、それによって引き起こされるすべての不便さのために、なぜ私たち—少なくとも私たちの一部は—散らかりに中毒になっているのですか? 組織の専門家であり作家であるジュリーモーゲンスターンは、これは私たちの過去と私たちを結びつけ、私たちのアイデンティティを定義する役割を果たすためであると主張しています。 ニューヨーク市に拠点を置く教師兼ステージディレクターのマーカスゲドルド氏は、クラッターは「無菌」環境よりも望ましいためであると示唆し、クラッターの混乱を自由と創造性の肯定に例えます。

ただし、混乱を減らすことで、注意散漫や混乱を避けることができることは間違いありません。 このように、それは達成する価値のある目標です。 必ず、いくつかの神聖なオブジェクトを周囲に置いておくと、気分が良くなり、ストレスが減りますが、無理しないでください。 整理整頓は、ほとんどの人にとって最も難しいことのXNUMXつです。整理整頓が必要なのは、物理的なデスクトップだけではなく、多くの場合、コンピューターのデスクトップでもあります。 これに本当に苦労している場合は、FluxboxなどのシンプルなDTEを使用してみてください。

しかし、これらすべての片付けの最中に、船外に行かないでください。 環境のカオスが実際に創造性を助長しているかもしれないことを示唆している多くの良い科学があります。 これについて最も頻繁に引用される研究のXNUMXつは、ミネソタ大学のVohs、Redden&RahinelによるPsychological Scienceのジャーナルエントリです。 肉体的秩序は健全な選択、寛大さ、慣習を生み出すが、障害は創造性を生み出す。 おそらくこれが紙のジャーナリストがしがみつく理由は、「…無秩序な部屋の参加者は整然とした部屋の参加者より創造的だった」と明確に結論付けているためです。

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

これはどこにあなたを残すのですか? 無秩序または無菌状態で作業する必要がありますか? 答えは、インスピレーションを維持するのに十分混沌としたバランスを見つけることですが、気が散ったり、物事を見つけるのに苦労したりするほどではありません。

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

審議するときは、放浪するための十分なスペースを確保することをお勧めします。 歴史上最高の海軍大将や将軍の多くは、戦闘戦略を計画する際にデッキを歩き回った長い時間で有名でした。

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

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

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

2.良いSOPを確立する

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

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

ペアプログラミングの利点は、より自然な文書化とより厳密な文書化を実現できることでした。 また、バグをより簡単に特定し、アルゴリズムの強化に関する提案を行うこともできました。 ただし、同時に、微調整や調整が実際には必要でない場合があるため、同じ利点によって問題が発生しました。

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

プログラマーはしばしばペアプログラミングを好むと述べています。 これは、彼らが提供する社会的相互作用を楽しんでいるためである可能性がありますが、これはおそらく士気向上剤として以外は、生産の効率に何の貢献もしません。

したがって、確立する必要があるのは、開発者にとって実際に機能するものと機能しないものです。 うまくいかなかったものについては、たとえそれがホットなトレンドの慣行であっても、それらを破棄することをお勧めします。 チームが迅速に進歩するのを助けるものは何でも良いことです。 しかし、彼らが彼らのスタイルに合わない方法論で圧迫されているならば、それは結局問題につながります。

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

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

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

よく書かれたコードは、しばしば自己文書化されています。 指定した名前から関数の動作が完全に明らかである場合(ほとんどの場合そうです)、説明を追加する必要はありません。 変数の命名と戻り値についても同様です。 名前から彼らが何をしているのか明らかであるはずであり、それを行うことができない場合には、コメントにそれらの説明を含めるべきです。

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

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

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

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

7.徹底的にテストする

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

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

メジャープロジェクトでバージョン管理を使用しないのは、頭がおかしいはずです。 これがないと、マイナーなミスから保護されず、また、別のチームメンバーが気に入らない何かでコードを上書きすることによって、コードを誤って(または故意に)妨害することが非常に簡単になります。

これらのXNUMXつの重要な提案を考慮に入れることにより、あなた自身と一緒に働くすべてのチームメンバーにとって最も効率的なものを抽出するための独自の戦略を開発することができます。 必ずしもすべてを適用する必要はありません。確かに実用的でないものもありますが、それらを組み合わせると、手間をかけずに作業を完了することができます。 生産性の高いワークフローは、ストレスを軽減し、自分自身により多くの時間を与えることになっても、時間の経過とともに元が取れます。 これは、取り組む価値のある目標です。

ボグダン・ランセア

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