あなたのコードは誰にも関係ありません

私のコードは誰にも興味がありません。 プログラマーとして働く過程でこれに気付いたとき、私はショックを受けました。 コードはコードそのものではなく製品であるため、彼が誰にも興味を持っていないことに気付くまで、コードを磨くのに多くの時間を費やしました。 この事実をプログラマーが受け入れることで、彼の仕事の生産性と価値が向上します。



コードはツールです



コードを書くことはプログラマの仕事ではありません 。 そして、特定の問題を解決するためのアプリケーションの作成です。 はい、コードはこれに使用されるメインツールですが、それでも単なるツールです。 大工の仕事のように、それはハンマーやのこぎりを使うことではなく、これらの道具で何かを作り出すことです。



ただし、一部のアクションは、コードが製品であるという誤った意見につながる可能性があります。 たとえば、リファクタリング:コードまたは製品の助けを借りて何を改善しますか? 答えがコードの場合、マネージャーはこのレッスンの時間を与えません。 しかし、これは既存のエラーを修正したり、新しい機能を導入するのに役立つ可能性があることを説明する価値があります。



まず、アプリケーション全体を評価します。 これは、コードの各行を記述するときに留意する必要があります。 製品が魅力的でない場合、それ以上のことを議論するだけでは意味がありません。 すべてのツールが完全に使用されていても、製品がひどく判明した場合、作業は失敗します。



これは、コードが貴重ではないことを意味するものではなく、製品要件のコンテキストでチェックすべきではありません。 セキュリティとフォールトトレランスを確保するには、習熟と適切なライブラリの使用が必要です。 これはコードが作業を行うべき場所であり、残りは目立つべきではありません。 レビュアーがそのようなコードをより速く渡すほど、彼は満足します。



「コードはツールです」という考え方が、いくつかの言語とフレームワークの知識の重要性の理由です。 数学の知識と複雑性の理論を使用する理由、しかしそのような知識の必要性の欠如; 開発環境が素晴らしい発見であると同時に最悪のtrapにもなり得る理由。 これはすべて、プログラマーの柔軟性の尺度であり、プログラマーのさまざまなツールに直接依存します。



パフォーマンス重視



たとえば、PMまたは顧客との会議を考えてみましょう。 彼に何を伝えますか? コードの行数、作成されるクラスの数、スクリプトの動作方法、例外の処理方法、データベースの構造はどのようになっていますか?



残念ながら、これらすべての質問に対する答えは、しばしば「はい、それを彼に伝えます」です。 そして、その時彼の顔を見ましたか? 彼は退屈しています。 彼はできるだけ早く次のポイントに行く必要があります。 これらの詳細は彼にとって価値がありません。 彼はそれが何であるかを理解していないわけではなく、彼は気にしません。



デザイナーが、Photoshopで使用したレイヤー、そこにあるオブジェクトの数、どのブラシでどのグラデーションを使用したか、そして彼が書いたクールなアニメーションスクリプトについて話し始めると想像してください。 興味はありません。 写真を撮ることがすでに可能かどうかに興味があります。



準備状態のレベルで通信する必要があります。インポートの準備はできていますが、これに対する十分なサポートがありません。 アプリケーションはほとんどの携帯電話で動作しますが、この携帯電話では速度が低下します。 クライアントアプリケーションは既に動作していますが、機能はこれまでのところ不十分です。 これがマネージャーや顧客にとって重要なことです。 これは、彼にさらなる行動を計画するのに役立つ情報を提供するものです。



あなたの図書館は価値がない



ソースコードの保護に関するインターネット上の質問によく会います。 プログラマーは顧客用のコードを作成し、これに自分の個人用ライブラリーを使用します。 そのため、クライアントはプロジェクト全体のソースコードを必要とし、プログラマは次のように考えています。貴重なコードを自分のライブラリに渡したいとは思いません。



まず、クライアントがソースコードを必要とする理由について考えてみましょう。 プログラマーが突然姿を消したとしても、おそらく開発を継続できると確信しています。 おそらく、セキュリティ監査またはライセンスコンプライアンスを実施するためです。 それ自体で、彼はコードを必要としません;再び、それは単に他の何らかのタスクを実行するためのツールの役割を果たします。



また、個人のライブラリは価値があるかもしれませんが、それ自体は価値がありません。 より速く仕事ができるので、それはあなたにとってのみ重要です。 実際、それはあなたのビジネスの最も重要な部分かもしれませんが、別のプログラマーはそれを不必要なものとして破棄するかもしれません。



しかし、ライブラリが本当に価値がある場合はどうでしょうか? 彼女自身が製品になれるという自信があるなら。 その後、それを共有したり、販売したりできます。 少なくともある程度の成功を収めた製品はほとんどないことを考慮する価値があります。



このような演習は、一般的にプログラマにとって便利です。 他のプログラマーがあなたの仕事に興味を持っている人がほとんどいないという認識につながります。 はい、あなた自身のプロジェクトを取ります。 サードパーティのライブラリを選択するとき、あなたは何をフォローしますか?それはどんなクールなコードを持っているのでしょうか? インストール後に彼女のコードを見ますか?



はい、しかし...



これはあなたががらくたコードを書くことができるものですか? いいえ、そうではありません。 高品質の製品を作成するには、スキルが必要です。 コードは誰にも興味がないという事実にもかかわらず、それは依然として目標を達成するための主要なツールです。 完璧主義は呪いになる可能性がありますが、このツールの使用が効果的でない場合、タスクを完了できません。



大工との類推に戻ると、汚れたハンマーは爪を磨いて輝きを出すほど悪くはありませんが、さびたハンマーは打たれたり傷つけられたりすると簡単に壊れることがあります。



プログラマーの目標は、コードではなく製品を改善することです。 最大の効果を得るには、製品の機能に基づいて構築し、結果の真の価値を理解する必要があります。



All Articles