それらは私には非常に異なって聞こえます、そして私はどちらがより重要であるか言うのに苦労しました。
あなたは素晴らしいソフトウェアメンテナーかもしれませんが、あなた自身は非常に悪いプログラマーかもしれません。一部の人々は、コードをデバッグし、その方法を見つけ、修正し、わずかに改善することに優れています。彼らは用務員とよく比較されますが、それは悪いことです。物事をより良い状態にするための真の知識とノウハウを持つことができます。
しかし、新しいコードの作成やアルゴリズムの設計と実装は依然として非常に悪い場合があります。彼らは、物事が一般的に何らかの形でより良い理由を理解することができ、ある事実の後に、ある設計が他の設計より優れていることを理解することもできます。しかし、彼らは自分自身で思いつくのに苦労しています。彼らはこの論理的で問題解決の考え方についての深い理解を欠いています。
どちらも私の心の中で重要です。あなたは素晴らしいソリューションを思いつくことができるハッカーだけを望んでいるのではなく、あなたのコードベースを見るつもりの次世代の目玉のために維持不可能なコードを作り出します。プロトタイピングや短期間のプロジェクトには問題ないかもしれませんが、それほど長い間しか飛行できない大規模なプロジェクトです。
したがって、最初のグループも不可欠です。しかし、2番目のグループでは、優れたソフトウェアを設計することはできません。それは非常に共生的です(そして、品質が実際に同じ開発者にある場合に最適です)。これが鶏と卵の問題だと思ったら、歴史的な理由から、論理的な種類がもう少し重要であることを認めなければなりません。しかし、それはソフトウェアショップでより重要であることを意味するのでしょうか。私はそうは思いません。物事を一緒に構築し、あまり発明しないことで、優れた成功するソフトウェアを作成できます。