ソフトウェアメーカーの間で奇妙な現象が起きている。人々は、高品質の製品をより良くするものについての理解を逆転させる傾向があるようです。少なくともマーケティングを行う人に関してはこれが当てはまります。
「彼らの製品には 100 万行のコードがあるが、当社の製品には 200 万行あるため、当社の製品の方が優れているに違いありません。」といった感じです。
この「多ければ多いほど良い」という考え方がどこから来たのかは誰にもわかりません。当時は誰もが「少ないほど豊かである」という哲学を作り上げようと懸命に働いていました。
多くの作家が大きな数字を引用することで聴衆に感動を与えようとするため、おそらくそれは消費者向けジャーナリズムから始まったものと思われます。ほとんどの場合、これは機能します。この小さなフラッシュ ドライブには 200 テラバイトのデータが保存され、CPU は 48 秒あたり XNUMX 億の命令を処理できます。また、作成者は、同じことがソース コードに当てはまらないことを理解できるほど技術的に精通しているとは限りません。
しかし、コーディングの効率性は、厳密なアルゴリズムを作成することだけではありません。 また、無駄を減らすことができるということでもあります。 これは、問題の修正に費やす時間の浪費、コンピューターリソースの消費量の浪費、そして週の終わりまでにチームがオフィス周辺に積み重ねたピザボックスの数の浪費を意味します。 理想的には、これらすべてのものを削減したいです。
8 つの簡単なステップでコーディング効率を向上させる方法
したがって、この記事で取り上げるのは、効率を改善して生産性を向上させるためにできることです。
1.働きやすい職場環境を構築する
すべてのコーダーは独自の状況で動作しており、読者は非常に多様な束であるため、これらの提案を実装する方が他の人よりも簡単です。
あなたがフリーランサーの場合は、おめでとうございます。あなたはすでに自分の作業環境をマスターしているからです。 もちろん、クライアントを訪問して現場で仕事をしなければならない場合は、状況は変わりますが、成功することができれば、それは良い位置です。
あなたが開発チームのマネージャーである場合、これらの提案はチームを最大の効率にするのにも役立ちます。 または、開発チームのワーカーの場合、これらのアイデアのいくつかをマネージャーに提案するか、少なくともこのページへのリンクをマネージャーに送信して、最善を尽くすことができます。
チームメンバーに在宅勤務を許可することを検討する
プログラミングは論理の演習でもありますが、それ以上に創造的な挑戦です。優秀なプログラマーは、どのタスクに対しても脳のどちらの面も同等に活用できます。
クリエイティブな人は夜に最高の仕事をするということは科学でも長い間認められており、それは私たち全員が経験していることです。では、なぜほとんどのマネージャーは従来の 9 時から 5 時までのルーティンにこだわるのでしょうか?
実際、その答えはすでにわかっています。 それは、部分的には制御に関するものであり、部分的には、ビジネスの観点(または少なくとも管理上の観点)から物事をより便利にすることです。 しかし、ルーチンと場所へのこだわりは、チームの効率と生産性を低下させています。
認識する必要があるのは、プログラマーはおそらく徹夜で最新のゲームを試していたか、パーティーに行っていたか、単に家族と交流しなければならなかった可能性があるということです。
これは、月曜日の朝、彼らが仕事に来たとき、彼らは最高の生産性レベルに達していないだけでなく、すでにエネルギーを使い果たし、犬に疲れていることを意味します。
労働者にいつどこで(理想的にはどこで)働くかについての選択を与えることは、生産性と士気を向上させる優れた方法です。 彼らが仕事を成し遂げ、優れた品質の結果をもたらす限り、あなたは彼らがいつ、どこで、どのようにしてそれを達成したかについて気にする必要はありません。
例外は緊密なコラボレーションが必要な場合ですが、実際のところ、ほとんどのプログラマーは自分のやり方で作業を任せたほうが良い結果を出せるため、緊密なコラボレーションが必要になることはほとんどありません。
オフィスに出社するという選択肢は依然として存在するはずだが、最高機密の軍事プロジェクトに取り組んでいない限り、それが必要となる現実的な理由はない。
フリーランサーとして、ここで重要な点を確認することもできます。実際のコーディング作業のほとんどを夜間に行うと、より多くのことを達成できる可能性が高いということです。 夜遅くの気晴らしが少なく、静かで、より創造的になります。
音楽を避ける
私達は皆、何人かの超汚れたuberhackerがヘッドホンを装着してデスメタルにジャムしながら、息を止めることさえせずに画面一杯のコードを簡単に作り出す、クレイジーな映画のステレオタイプを見てきました。 そして、現実の世界で実際にコーディングする私たち全員が、そのイメージがどれほどおかしいかを知っています。
ただし、仕事中に音楽を聴く場合は注意してください。仕事のことではなく音楽のことを考えてしまうのはよくあることですが、音楽によっては眠気を誘う効果があるものもあります。
ジムでトレーニングをするとき、適切な種類の音楽が、さらに数回の繰り返しを頑張ろうという気持ちを奮い立たせてくれるかもしれません。しかし、セミコロンが欠けている行を見つけたり、for ループを使用するか while ループを使用するかを正しく選択したりするような音楽を作成できた人は誰もいません。これまでで最もそれに近いのは、Electric Dreams です。
整理整頓してください
乱雑さは奇妙に心地よいかもしれませんが、あなたを遅くする可能性もあります。 混乱の中で失われたものを探していると、20分の時間を簡単に失ってしまい、そもそもなぜそれが欲しかったのかを忘れてしまいます。
では、それが引き起こすあらゆる不便にもかかわらず、なぜ私たちは、少なくとも一部の人は、これほど散らかることに夢中になってしまうのでしょうか?組織の専門家で作家のジュリー・モルゲンスターン氏は、こうしたものが私たちを過去と結びつけ、私たちのアイデンティティを定義する役割を果たしているからだと主張しています。
ニューヨーク市を拠点とする教師兼舞台監督のマーカス・ゲドルド氏は、乱雑な環境は「殺風景な」環境よりも好ましいためだと述べ、乱雑さの混沌を自由と創造性の肯定に例えている。
ただし、散らかったものを減らすことが、気が散ったり、混乱したりするのを避けるのに役立つことは間違いありません。したがって、これは達成する価値のある目標です。
気分を良くし、ストレスを軽減してくれる神聖な物をぜひいくつか置いておきましょう。ただし、やりすぎには注意してください。整理整頓はほとんどの人にとって最も難しいことの 1 つであり、整理整頓が必要なのは物理的なデスクトップだけではなく、コンピューターのデスクトップも必要な場合が多いのです。
これに本当に苦労する場合は、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を確立する
ビジネス管理とプログラミング手順には、実際の結果よりも理論的にはるかに賢明に聞こえるキャッチーな傾向がたくさんあります。 特定のアプローチが機能するかどうかは、目的と、成功した結果として個人的に何を検討するかによって異なります。
私が働いていた会社が試したが、すぐにやめた方法論の一例は、ペア プログラミング (PEAR プログラミングと混同しないでください) です。
この作業方法論を心から賞賛し、アジャイル開発パラダイムにおけるその位置を称賛する人もいますが、私たちはそれが非常に非効率であることに気づきました。
まず、各ワークステーションに 2 人のプログラマーが必要だったので、実際の開発作業が少なくなるのに 2 倍の費用がかかることになります。また、この方法では停止/開始フローが頻繁に発生し、不必要なダイアログが発生する傾向があるため、作業が大幅に遅くなることもわかりました。
ペアプログラミングの利点は、より自然な文書化とより厳密な文書化を実現できることでした。 また、バグをより簡単に特定し、アルゴリズムの強化に関する提案を行うこともできました。 ただし、同時に、微調整や調整が実際には必要でない場合があるため、同じ利点によって問題が発生しました。
このアプローチのもうXNUMXつのリスクは、Roskesによって特定された効果を得ることができることです。この場合、プログラマーは修正を望まないため、物事を試すのをためらいます。 XNUMX人の開発者が非常に独創的で伝統的であり、もうXNUMX人がより創造的で自発的である場合、個性の衝突が激しくなることがあります。
プログラマーはしばしばペアプログラミングを好むと述べています。 これは、彼らが提供する社会的相互作用を楽しんでいるためである可能性がありますが、これはおそらく士気向上剤として以外は、生産の効率に何の貢献もしません。
したがって、確立する必要があるのは、開発者にとって実際に機能するものと機能しないものです。 うまくいかなかったものについては、たとえそれがホットなトレンドの慣行であっても、それらを破棄することをお勧めします。 チームが迅速に進歩するのを助けるものは何でも良いことです。 しかし、彼らが彼らのスタイルに合わない方法論で圧迫されているならば、それは結局問題につながります。
3.詳細なドキュメントを奨励する
冗長性によって非効率が増すように見えるかもしれませんが、コメントをより詳細かつ正確に表示するためにかかるわずかな時間により、プロジェクトが進行したり改訂されたりするときに多くの問題を回避できます。
4.不必要な文書を作成しない
よく書かれたコードは、しばしば自己文書化されています。 指定した名前から関数の動作が完全に明らかである場合(ほとんどの場合そうです)、説明を追加する必要はありません。 変数の命名と戻り値についても同様です。 名前から彼らが何をしているのか明らかであるはずであり、それを行うことができない場合には、コメントにそれらの説明を含めるべきです。
5.空白はあなたの友達です
コード内で空白を適切に使用することは、コードを読みやすく、レビューし、理解しやすくするために役立ちます。 それは、優れた文書化と自己文書化コードの記述と密接に関連しています。 経験豊富なプログラマー(またはプログラマーではない場合でも)がソースコードのコピーを取得して、各関数の目的とその機能を即座に理解できるようにする必要があります。 理想的には、誰かがあなたのよく書かれたコードを研究することからプログラミングすることを学ぶことができるべきです。
6.複雑さよりも単純さを優先する
コードを複雑にするほど、絡まりを解くことが難しくなります。 皮肉なことに、これはプログラミングのショートカットに適用されます。 作成時間を節約できますが、後でコードをレビューするために経験の浅いプログラマーがあなたの意図を理解できない場合があります。
7.徹底的にテストする
コードは段階的かつ頻繁にテストする必要があります。 何かをデプロイする前に、最初のリリースがAlphaに指定される場合でも、可能な限り社内テストを実施する必要があります。
8.バージョン管理を使用する
メジャープロジェクトでバージョン管理を使用しないのは、頭がおかしいはずです。 これがないと、マイナーなミスから保護されず、また、別のチームメンバーが気に入らない何かでコードを上書きすることによって、コードを誤って(または故意に)妨害することが非常に簡単になります。
まとめ
これら 8 つの重要な提案を考慮することで、あなた自身と一緒に働くチーム メンバーの効率を最大限に引き出すための独自の戦略を立てることができます。
必ずしもすべてを適用する必要はなく、実際には実用的でないものもあるかもしれませんが、それらを任意に組み合わせれば、作業をより簡単に完了できる可能性があります。生産性の高いワークフローは、たとえストレスが軽減され、自分のための時間が増えるという点だけであっても、時間の経過とともに効果が現れます。それは取り組む価値のある目標です。
コメント 0応答