プログラミングにおける有害な誘惑


97

ちょうど好奇心が強い、プログラミングでどんな誘惑があなたのプロジェクトで本当に有害であることが判明しましたか?

何かをしたいという衝動を実際に感じて、それがプロジェクトに利益をもたらすと信じているとき、または信じられないように自分をだまして、1週間後に実際の問題を解決していないが、代わりに新しい問題を作成した、または、最良の場合、目に見える影響なしにあなたの内なる獣を喜ばせました。

個人的には、悪いコードをリファクタリングしないのは非常に難しいと思います。私は多くの悪いレガシーコードを扱っていますが、リファクタリングが何も壊さないことを証明するためのテストがないとき、それに触れないようにするには深呼吸が必要です。

ユーザーインターフェイスのもう1つの悪魔は、UIレイアウトの変更を楽しんでいるという理由だけで、文字通り何時間もUIレイアウトの変更に費やすことができることです。時々私はユーザビリティに取り組んでいると自分自身に言いますが、真実はボタンを動かすのが大好きです。

あなたのプログラミングの悪魔とは何ですか?また、どのように回避しますか?


19
誰もあなたの質問の2番目の部分に答えることができなかったことをユーモラスに感じます-「[そして]どのようにそれらを避けるのですか?」。
クレイジュ

3
誰もがこれが一日中SEの一番の質問であることに気づきましたか。
msarchet

「... UIレイアウトを変更する時間を費やす...」の+1。私はあまりにも頻繁にそのtrapに陥ります。
-7 wp

回答:


67

時期尚早の一般化は私の大きなバガブーです。まず手元の問題を解決し、一般的なケースの実際の解決が必要になるまで待つのではなく、私は常に一般的なケースを前もって追跡し、必要以上に複雑な大量のコードを書くことにします。

更新:

詳細な説明については、「Sin#1-Premature Generalization」を参照してください。


6
建築の宇宙飛行士がそうするのが嫌いです!
-ozz

13
ああ、メタファクトリーの喜び:(

+1 "優れたデザイナーの研究により、彼らはすべて変化を予測するのが得意であることがわかった"(コード完了2)どのような変更が行われる可能性があるのか​​を伝えることができるのは良いことです。次に、より一般的なケースを早い段階で解決することで、後から時間を節約できるかどうかを判断することができます。価値がない場合もありますが、後でコードを変更するのも同じくらい簡単です。
MarkJ


1
この。特に問題自体がそれほど難しくなく、かつ/または以前に行ったことの再ハッシュである場合は、かなり一般化され再利用可能なコードを作成することは非常に満足できるという事実に責任を置きます。適切なケース、一般的なCRUDデータベース操作(UI、ユーザーアクションへの応答、DBで何かを行う、タール)。
クトゥルフ

197

「これに戻り、後で修正します。今すぐ動作する必要があります!」


16
これは絶対的な悪魔です。
-alesplin

6
可能であれば、これに対して+100を差し上げます。「後」は決して起こりません。はじめて正しいことをするか、まったくしない。
すぐに

12
これは、悪いコードをリファクタリングするのに時間を費やすことの補完ではありませんか?「後で修正する」が修正しないプログラマーと、最初に正しく修正してから「不良コードのリファクタリング」に何時間も費やすプログラマーに世界を分けることができます。

6
これを「私たちは戻ってこの次のイテレーションを修正します」と言い直すと、非常に構造化されたように聞こえます
クリスS

4
あなたは必要があり、これを行います。あなたがそれを完璧にするためにすべての時間を費やすならば、それは決して出荷しません。プロジェクトを終了しから磨きます。
ザンリンクス

105

締め切りはとても遠いです、私はそれをするのに十分以上の時間があるので、ウェブサーフィンに少し時間を費やしてみませんか?


72
「web」を「programmers.stackexchange.com」に置き換えます:)
davidhaskins

1
ウェブ上に読む価値のあるものは他にありますか?他に何かあったことを忘れていました!
ジェームズマクロード

3
別名「くそー、Minecraft」
-johnc

1
@david、それはウェブ上の単なる出発点です-質問はあなたがどこまで行くかです

Id 'と言うと、これはアジャイルのせいでもはや有効ではない。
バルテック

103

「これは単なる概念実証コードです。彼らが気に入ったら、私は本当にそれを良くします。」


13
これは、迅速なアプリケーション開発と呼ばれます。また、ビジネス環境では機能しません。:)
ジョンクラフト

12
私にとっては逆であるというのは面白いことです。まさにそれが必要なものであったとしても、スローアウェイコードを書くことはできません。
ダン

6
私は金融業界で働いており、RAD、特にVBA / Excelの分野ではまだ力強いです。それにはコツがありますが、RADはずさんなことを意味する必要はありません。
イアン

5
そして、2年かけて完成させたアプリケーションが、捨てられたコードになってしまうことがあります。なぜなら、はしごの上位の誰かが「ああ、私たちはそれはできません」または「気にしない」他のバージョンを決定したからです。
PSU

12
この。私:「これは単なる概念実証です。ご希望の場合は、製品版を作成します。」マネージャー:「あなたのバージョンは動作します。出荷しましょう!」私:「まあ、それはすべての使用をカバーしていません...あなたはすでに出荷しましたよね?」

74
  1. リリースの数日前にコードの一部をリファクタリングします。
  2. インターネット:すべての最大の注意散漫。
  3. 新技術新技術から手を離せない。
  4. 最適化:最適化、最適化。..など最適化
  5. 完璧さ:コードに満足していない。
  6. TODO:決して実行されない時間のTodoがありません。
  7. 時間の推定:多くのPMは、これを「推定」と見なしません。彼らは事実として取る。
  8. 約束:あまりにも多くの約束を与えます。

1
かつては大きな部屋に100人の人がいて、2台の共有PCだけがインターネットを使用していたプロジェクトに取り組んでいました。生産性は非常に高かった。経営陣は皆にインターネットを提供し、なぜ仕事の成果が半減するのか疑問に思いました。
すぐに

2
時間の見積もりについて...非常に多くのマネージャーが交渉の出発点としてそれを取ります(価格交渉など)。それを事実と誤解しているが、実際には平均を
上回っている人...-dbkk

@quickly_nowネットの切断は、おそらく、データ入力や日常的な修正など、何も調べる必要のない日常的なタスクに適しています。多くの異常なこと(たとえば、APIドキュメントやサンプルコードの検索)については、Googleがあなたの友人です。自分で理解するのに5倍の時間がかかります。また、人々がやる気がなく、気を散らされたい場合は、方法を見つけます。
dbkk

@dbkk-ポイントまではい。すべてAdaにあり、検索するAPIはありませんでした。特殊なハードウェア上にあり、国のセキュリティは分類されていました。未分類のインターネット接続マシンをその環境に配置することも、セキュリティ上の悪夢でした。
すぐに

55

既存のフレームワークとライブラリがある場合、すべてを社内で構築しようとすることの犠牲になります。


6
時には、既存のフレームワークとライブラリは、ITの法定により、大きな赤い文字でVerbotenとマークされています。
クリストファーマハン

22
そしてもちろん、反対の誘惑:なじみのないフレームワークまたはライブラリを使用し、それがあなたが必要とすることを行い、すべてがスムーズに進むと仮定します。
Carson63000

「しかし、書くのに1週間しかかからず、私たちのフレームワークは私たちが望むことを正確に行います。無料のオンラインフレームワークはおそらくバグでいっぱいです。」

2
@Christopher:それは、再実装する(または、許容可能なライセンスを持つ別のライブラリを見つける)正当な理由です。しかし、多くの場合、再実装の理由はNIHだけです…
ドナルドフェローズ

@カーソン:+1 :
マッケ

48

私の再発する悪魔:時期尚早の最適化とオーバーエンジニアリング。

そして、私はまだそれらを100%避けることはできません...


10
オーバーエンジニアリングの場合は+1。私はかつて.iniファイル、XMLファイル、データベーステーブルおよびネットワークソケットのための「configパラメータアダプタ」で全体の「コンフィギュレーション・フレームワーク」を書いた(誰もが右、コンフィギュレーションのWebサービスをホストしたいので?)
TMN

8
時期尚早のオーバーエンジニアリング?
クリストファーマハン

しかし、@ Chrisの「早すぎるオーバーエンジニアリング」も適用されます。他の回答でも言及されています。それが私のベインであることは知っています。
マシューシャーリー

早すぎる過度に最適化されたメガエンジニアリングについてはどうですか?
ニュートピア

4
これは私のものです。私は、特定のコンポーネントの期限を自分に与えず、自由な統治/遠い期限を管理者に与えます。
クトゥルフ

46

過度に楽観的な見積もり

上司があなたをじっと見つめているとき、あなたはあなたの腸があなたに言っているよりも低い推定値を与えるために燃えるような気持ちを感じます... それをしないでください!

結局のところ、あなたの腸はおそらくすでに低すぎます


13
それがされます場合、彼らはあなたを尋ねたとき、本当に彼らはぎこちなさを感じるまで...ただそう言って、その時間がかかり、その後、沈黙の中で座っている
PeterAllenWebb

4
私の大学の教授はかつて私に言った、「あなたの最良の見積もりを見つけて、それを2倍にしてください」。これまでのところ私のために働いています。
zzzzBov

2
または、SMBCアプローチを試してください。
確実に

4
私の上司の一人が開発者の見積もりを3倍にした後、クライアントと交渉して2倍になりました。クライアントは契約を結んだと考え、開発者はそれを知らなくても必要な時間を得ました。ウィンウィン!
デイブ

2
エビデンスに基づくスケジューリングがこの問題の解決に役立つ可能性があります。joelonsoftware.com
宮坂

33

プロジェクトでテクノロジー/ツール/言語を使用したのは、それを学んだばかりだからです。

開発者の素晴らしさを証明しようとする。

あなたが書いたコードをあなたのものとみなすために。


私がそうするたびにそれを支持することができれば。幸いなことに、ソリューションの半分はかなり良いことが判明しました。半分はしませんでした。
ダン

または、まだまったく学んでいないもの。拍車をかけることを忘れないでください。長いライドになるからです。
エヴァンプライス


31

最悪の誘惑:

ああ、まあ.. 1つの汚い小さなトリック/ハック/修正は傷つかないでしょう。

推測すると、痛い。:)

後藤


11
「ゲートウェイの修正」
マークC

4
gotoステートメントを使用すると、猛禽類の攻撃になります。
Maxpm

1
@Maxpm:良い考えです!含まれています。
ゴランジョヴィック

1
@Mark C、ゲートウェイ修正とは何ですか?私のgøøgle-fuは十分ではありません。

1
@ThorbjørnRavn Andersen: en.wikipedia.org/wiki/Gateway_drug_theory
ジミー


23

機能クリープ

計画を立て、それに固執し、展開します。そして、その後、戻って、人々が求めているものを追加します。

私はこれを何度も見ました。座って、デザインを練り、コーディングを開始します。ユーザーは、お気に入りの機能が「欠落」しているという混乱したナンセンスを聞き、それを求めてロビー活動を開始します。上司は、11時間目に追加することを要求し、展開をファウルし、あらゆる場所にバグを導入し、3か月後、全員が落ち着くと、それを削除するように求められます。そのくだらないレトロな機能はそもそもです!デザインの残りの部分が無意味になったとは言えませんか?


最初のPM(現在解雇された)はソフトウェア開発について何も知らず、完全に非現実的なリリーススケジュールを設計したため、仕様を凍結せずに譲歩として残しました。最悪のアイデア。
エヴァン

20
  1. 機能を追加する

  2. 競争にはこの機能があります。したがって、これは必須の機能であるため、戦略、ポジショニングなどを分析するよりも多くのプログラミングが必要です。

  3. 競合他社にはこの機能はありません。したがって、これは差別化機能であるため、戦略、ポジショニングなどを分析するよりも多くのプログラミングを行います。

  4. より多くのプログラミングでビジネス上の問題を解決します。例えば、あなたのウェブサイトがホストされているLinuxサーバーの管理に関するより良い専門知識は、より多くの機能をプログラミングすることで得られません。場合によっては、すべてをC#.Netに再コーディングするのではなく、問題を修正する方法を学ぶ必要があるだけです。

  5. より多くのプログラミングでマーケティングの問題を解決します。たとえば、製品に多くの機能をプログラミングして「紫の牛」にすることで、マーケティングの問題を間接的に解決しているというセスゴディンの紫の牛の概念を悪用します。時々、ただの突然変異体モンスター。

  6. 本当に重要なものを実際にプログラミングする代わりに、このスクリプトを書くのに費やした時間は数時間で節約できると主張するプログラミングを増やして生産性の問題を解決する

  7. コーディングを計画しているが、「正しく」したいのでまだコーディングしていない

  8. ダーティバージョンをコーディングし、「後で改善する」ことを約束しますが、「改善する」には戻らないことを約束します。

  9. モックアップやサイトマップは「面倒」だからやっていない。モックアップとフリーハンド描画サイトマップ「後で」の競合他社のページのスクリーンショットを撮ることができます。そして、頭の中に視覚化した最初のページのプログラミングにまっすぐ進みます。

告白:私は個人的に1、3、7、8の間違いを犯しましたが、2、4、5、6も犯しましたが、私はそうしなかったことがしばしば自分に惑わされました。

現在、9を修正しています。

編集 質問が解決策を提示する必要があることに気づかなかった。

1)機能を追加する しないでください。ビジネス、マーケティング、ファウンダー、アドバイザーなどと連携して、アプリケーションを1つだけ削除します。

twitterやGrouponなどについて読んで、成功につながったものを1つにまとめた方法について読んでください。

大企業を設立したい場合にのみ機能すると思われる場合は、もう一度考えてください。この行のCtrl + F「このソフトウェアに追加する機能が多いほど、販売は悪くなります。(これは言うまでもなく、ほとんどのソフトウェア開発者にとって非常に直感的ではありません。)」このリンク

2)コンテストにはこの機能があります。だから、これは必須の機能です

ソリューション1を参照

3)競合他社にはこの機能がありません。これは差別化機能です

ソリューション1を参照

4)より多くのプログラミングでビジネス上の問題を解決する。

あなたがあなたに教えるために誰かを雇う必要がある場合、相談をするか、あなたのためにそれをしてから、彼がそれをどのようにしたかを文書化してください。早くやれよ!!コードを書き換えたり、GOを渡したり、$ 200を集めたりしないでください。

5)より多くのプログラミングでマーケティングの問題を解決します。

あなたが販売しているものを人々が理解していない場合、それはマーケティングの問題です。ソリューション1に戻ってピボットします。

6)より多くのプログラミングで生産性の問題を解決する

待つ。

特定の生産性の問題で生産性が2週間より長く苦しんでいると感じるまで待ちます。それがさらに2週間続くと合理的に起こります。

次に、この問題を解決するためのスクリプトのプログラミングに費やされた時間を評価します。最悪の推定値を取り、2を掛けることを忘れないでください。

見積もりに時間料金を掛けます。

次に、代替ソリューションを確認します。アウトソーシング、既製のソリューションの購入、それについて何もしないなど。

最も費用対効果の高いソリューションを選択してください。

それに固執。

7)コーディングを計画しているが、「正しく」したいのでまだコーディングしていない

運動に行きます。あなたはお尻をやる気にさせ、行動する計画を立てるエンドルフィンのラッシュを感じるでしょう。5x5のベンチプレスと5x5のスクワットをしたので、これを知っています。

8)ダーティバージョンをコーディングし、「後で改善する」ことを約束しますが、「改善する」には戻らないことを約束します

GTDでticklerファイルシステムをセットアップします。そして積極的にフォローアップします。自分や他の人への約束をすべてフォローアップしてください。

9)モックアップやサイトマップは「とても面倒」だからやっていない。

balsamiqモックアップデスクトップエディションに75米ドルを費やしてください。私は3週間前に買ったのでこれを知っています。実世界でのドローイングはダメなのに、アーティスト、建築家、先見の明がある人のように感じるので、モックアップをやり直しました。balsamiqで使用されるフォントは、これが単なるモックアップであり、RADで役立つ石に設定されていないことを無意識に思い出させます。

編集を終了


この回答に+1を付けましたが、読みにくいと感じました。私は最初の9つのポイントのコンテキストを本当に理解していません。明確化していただけますか?それでも、いい仕事だ。

@MattFenwickこんにちは、+ 1をありがとう。ポイント1〜5は通常、販売する製品を作成するシナリオに適用されますが、ベストアンサーを見つける傾向が先行技術に関する広範囲な研究につながるシナリオにも適用できます。たとえば、研究中。
キムスタック

ポイント6-9は、プログラマーの神経症的傾向に関するものです。私はどこかで(見つけられない)、デザイナーは常にデザインソリューションの問題にアプローチするだろうと読みました。マーケティングソリューションを持つマーケティング担当者。コードソリューションを備えたプログラマー。はい、恐ろしい「金色のハンマーを持っているとき、見えるのは爪症候群だけです」。これは、ポイント6)で特に顕著です。より多くのプログラミングで生産性の問題を解決する
キムスタックズ

@MattFenwickあなたが私の名前と混同してしまったらごめんなさい。この回答を書いた後、ニックネームを変更しました。あなたの背景はもっと研究にあるようです。私の答えは、販売するソリューションを開発した私の経験に大きく由来しています。しかし、私たちは両方ともプログラミングを行っているので、私の仕事のラインとあなたの仕事のラインには特定の類似点があると確信しています。
キムスタック

17

いくつかのビールは、私がより良く、より長く働くのに役立ちます。


11
待って...そうではないのですか?(xkcd.com/323
Craige

4
@Craige:飲酒の21年の経験とプロのソフトウェアエンジニアとしての20年の経験の後、私はまだキャリブレーションの部分に取り組んでいます。
アダムクロスランド

4
@adam、エンジニアになるのに一年かかった?

17
ビールを飲みながらコーディングすると、数年で数十億の価値がある大人気のソーシャルネットワークを作成できます。本当です、私はこれを映画で見ました。
janosrusiczki

1
@Kitsched:うん!特に、他の誰かの既存のデザインが食い物になっている場合。
メイソンウィーラー

16

「ええ、1日で2000行のスパゲッティの巨大な混乱をリファクタリングできます...」


13
あるいは、「新しい人(ソフトウェアまたはそのコードの構造についてまったく何も知らない)は何もしていません。彼はそれを修正できます」。ボーナスは、その男がコードが書かれている言語さえ使用したことがないことを示しています。
ワイルドピーク

16

「そのためのテストがなくてもうまくいく。テストするのは難しすぎる」

それは邪悪な兄弟です

「テストの作成や理解がどれほど困難であっても、そのためのテストが必要です。」


2
テストを書くのが難しい場合、正しくプログラミングしていない可能性があります:)
マーリンモーガングラハム

2
@Merylyn Morgan-Graham、まったく真実。ただし、並行性など、テストが非常に難しい領域がいくつかあります。
ウェインコンラッド

1
@Merlyn:適切な場所でコンテキストの切り替えを強制できるように命令シミュレーターを作成していることに気付いた場合、同時実行性テストの方法が多すぎるでしょう。:)
ザンリンクス

1
@Zan:私は同意します-必要な時点で、開発者を押し戻して、コードをリファクタリングしてモックを挿入できるようにします。私は、Big-Oを見て、ボトルネックを最適化し、生の速度ではなくデータの整合性について主に並行性を検討する必要がある高レベルの言語に取り組んでおり、出荷しますボックス)。
マーリンモーガングラハム

15

先延ばし楽観的なタスクの見積もりは私の最大の罪です。

ストレッチ、腕立て伏せ、またはプルアップ(またはその他の身体的運動)を行い、2番目の推定を行う前に悲観的な気分にします。


明確化...「楽観的なタスクの推定」とは、「たわごとの簡単な症候群」という意味ですか?:)
エヴァンプライス

@Evan Plaice-正確に。「ああ、とてもつまらない」のように、実際のコーディングを開始した後、コードのすべての文字をグーグルで検索します。
ニキータバルスコフ

13

「既存のコードを理解するよりも、最初から機能再実装するほうがはるかに簡単です。」


2
はい、c2.com / cgi / wiki?RewriteCodeFromScratchは、これは「絶対にすべきでないこと」の1つであると主張しています。
デビッドケーリー

オープンソースでの作業は、この傾向に役立ちます。クロスアイの前に個人的にパッチをじっと見つめてから、先に進み、自分の実装を作成しました(コードを改善/リファクタリングした後でも)。それがどのように機能するかは面白いです。
エヴァンプライス

10

私が取り組んでいるプロジェクトが被った非常に有害な誘惑の1つは、「内部プラットフォーム効果」です。これは、長い間行っていたアーキテクトが無限の知恵で着手したアプローチであり、年間約2,000万ドルを生成するプロジェクトを作成しましたが、更新および保守には6,000万ドルかかります問題の)。


10

NIH -ここに発明されていません

サードパーティのソリューションに公平なチャンスを与えるのは本当に大変です。誰もが彼らのために作られたものではないサードパーティのソリューションに自然に懐疑的であるべきですが、私はそれについて100%客観的であるのに苦労しています。

時間の節約は、サードパーティのソリューションを避けるべき10のうちたとえ9回は、私は実現するのに十分な客観的である必要がほど巨大な可能1動作します。


1
私はあなたの主張を見て、常にそれと共に生きなければなりません。私は時として正反対の意見で、あなたのすぐ隣の答えに値する場合があります。しかし、私は何年もの間それを経験してきた問題についての専門家のグループよりも一週間でうまくやれると信じるのに苦労しています。もちろん、サードパーティの背後にいる人々が確かに専門家であることを確認する必要があります。コンポーネントの周辺環境をよく調査することで、採用とコーディングのどちらかを正しく選択することができました。
ニュートピア

1
@Newtopianの「正しい」方法は、間違いなく中間のどこかにあります。サードパーティのライブラリに関する私の問題は、数か月または数週間の時間をかけて専門家チームよりうまくやれるかどうかではありませんが、私たちが必要とするライブラリを見つけることはめったにありませ。そこは常に行うに適応した後、私は頻繁に自分自身と他の人が書いソリューションとして、それと格闘として多くの時間を費やして見つけることだである私たちが必要とする正確に何を。
ニコール

スペクトルの反対側から来た私自身は、どうにかしてこの「ちょうど中間」を達成しようとする方法を知りたいと思っていました。また、サードパーティが生産性に等しく有害であると確信しているため、サードパーティを過度に使用する理由を理解しようとして、サードパーティを使用したくない理由についても興味がありました。
ニュートピア

@Newtopianは、上記の私の説明が理由として理にかなっていますか?中間を達成しようとする私の試みは、サードパーティのソリューションを評価して探すときに、より客観的になるのは簡単です。
ニコール

9

顧客の実際のデータベースのコピーを分析する代わりに、提供された「サンプルデータ」に対する設計、コーディング、または単体テスト。期限は短く、彼らはそれが来ると言い続けましたが、決してしませんでした。それが展開されたとき、爆発は壮観でした。本当に、顧客に3人の親顧客がいると予想した人は誰でしょう。

実際のデータのコピーを取得するまで、プロジェクトを再開することはありません。


製品がまだない場合、コピーするデータはありますか?
Svish

データがない場合は、常に紙があります。ここでも会社の記録が役立ちます。
burnt_hand

9

お奨めは、どこかのないライブラリもあり症候群。

密接に関連する

プラグインフェティッシュ


2
私はいつも「やってくれる」ライブラリを見つけることができるように思えます。私の問題は、しばしば彼らが広告通りに機能するようにすることです。:(
ベンL

ライブラリの検索が簡単-優れた単体テストが組み込まれたライブラリの検索が
難しい-burnt_hand

8

完全主義が殺す; おそらくプロジェクトが成功しない最大の理由です。


これが真実である可能性はあると思いますが、この理由で失敗したプロジェクトや遅れたプロジェクトに参加したことはありません。
PeterAllenWebb

完成度をどのように定義するか、そしてどのレベルを目指しているかによって異なります。
Svish


7

リファクタリングではなく書き換え。


同意する。リライトに必要な労力を払おうとするなら、ほぼ常にリファクタリングする方が良いでしょう。それでも思ったよりも時間がかかりますが、リファクタリングは段階的に行っていますよね?「完璧」になる前に停止できます。
PeterAllenWebb

1
当然の結果として....リファクタリングの代わりに別の場所に再び書く。私たちのコードベースには、同じものの非常に多くの異なる実装があり、どのような種類の一貫性も得ることができません。
ニュートピア

6

そこを考えることは、これを行うためのより良い方法でなければなりません。「十分に良い」何かに落ち着くつもりはありません。私は完璧に勝っています!通常、これは、問題について異なる視点を持つ可能性のある他の人と話したり、別の角度から解決策を見たりすることによって回避されます。


5

すべてを自動化して、実際の作業よりもツールの保守に多くの時間を費やします。

解決策:コードの最適化と同様に、最初に生産性のボトルネックを見つけ、それが発見されて初めて、いくつかの優れた自動化でそれらを修復します


原則としてこれに同意できますが、実際に過度の自動化を見たことはありません。それでも、それは私の経験かもしれません。
-PeterAllenWebb

4

あなたのプログラミングの悪魔は何ですか?

他の一部の人が言及したことは別として。

優先順位付け:プロジェクトに関して優先度の高い作業を無視し、プロジェクト内の他の作業を最初に行うのは、それらがより興味深いからです!

それらをどのように回避しますか?

もう少し自己規律をもって。真剣に、正しいことをするための自制心と自発性は、これらの「悪魔」のほとんどを避けるのに役立ちます。


3

私たちはまだクライアントから承認を得ていませんが、締め切りが近づいているので、ここであなたが始めることができるようにいくつかの予備的なコンプがあります...

後で、コンプに一致するプロジェクトの構築が完了したら...

ああ、ここにクライアントのリビジョンがあります、彼らはいくつかの小さなものを変更したいだけです*

(*主要な機能はまったく異なります)

次に、短い期限のプレッシャーにさらされ、それらが最後のリビジョンであると仮定するため、ゼロから始めるのではなく、元の欠陥モデルに基づいて元のコードをリファクタリングし続けます。

私はいつもこれに少しずつ慣れます。Web開発者として避けることは困難です。最善のアドバイスは、より多くの時間をプッシュして、変更を正しい方法で行えるようにすることです。


2
クライアントの署名があるまで開発を開始しないというポリシーを採用します。
ベンL

1
@Ben:それだけが私たちの管理下にあったなら!
sevenseacat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.