高品質のコードを促進および奨励するにはどうすればよいですか?


16

私は4人のチームの小さなアウトソーシング会社でiOS開発者として働いています。私と私と他の2人の開発者が入社する数年前に開始したプロジェクトに取り組んでいます。それ以前は、プロジェクトはほとんど1人で行われていました。

私がプロジェクトに取り組み始めたとき、それは完全な混乱でした。多くのコードの繰り返しがありました。同じ500のコードが、わずかなバリエーションで20の異なるファイルに対応しているのを見ました。さらに、それは正確に組織化されていませんでした:すべてのUI作成コードは、View Controllerでロジックと一緒に混合されました。

あちこちでリファクタリング、コードの冗長部分の排除、プロジェクトのファイル構造の改善などに最善を尽くしました。前の開発者はこれらすべてを本当に気にしていないか、経験がないと感じました。数か月の間、私は一人でかなり大きな機能に取り組んだことがありました。この機能の性質上、アプリ全体で多くのコードに触れる必要があったため、いくつかの改善を試みました。

他の開発者がプロ​​ジェクトに参加したとき、彼らは異なるコーディングスタイル(時には完全に異なるスタイル)を使用し、プロパティアクセサーなどの最新の言語機能を使用しないことに気付きました(これはObjective-Cの比較的新しい機能です)。フレームワークの類似の機能を使用する代わりに、独自の自転車を発明したり、他のプログラミング言語や学習したパターンをコードベースに転送したりすることもありました。多くの場合、悪い英語のためにメソッドや変数に適切な名前を付けることができません(Objective-Cは長い名前を作成する言語です)。

IDE用でない場合は、インデントや書式設定を一切行わずにすべてのコードを記述すると思うことがあります。

基本的に、私は彼らが書いたコードが嫌いです。フォーマット/構成が不適切で、プロジェクトの他の部分とは根本的に異なる場合があります。彼らがスパゲッティを私の作品に追加すると、とても気分が悪くなり、仕事の気分や生産性に影響します。

学習することや気にしないことはますます難しくなっているように感じます。彼らは彼らから求められていることをして、家に帰るだけです。私は機会があったときに彼らにいくつかのヒントを与えようとしました(例:彼らのPRにコメントしたり、GitHubでコミットします)。私はかつて、既存のコードの大部分のコーディングスタイルとフォーマットに従うようにきちんと要求しました(残念ながら、正式なコーディングスタイルのドキュメントはありません)。しかし、うまくいきませんでした...

「悪い企業文化」や「経験の浅い卒業生」などに焦点を合わせずにこの状況に対処し、実際に状況を改善し始めるにはどうすればよいでしょうか。


3
チームリーダー/シニア開発者/マネージャーの邪魔をするものはありますか?
フィリップケンドール

3
「男に魚を与え、1日間餌を与えます。男に魚を教え、一生餌を与えます」-「単純に仕事をする」のではなく、制御するコードの小さな部分をリファクタリングし、他の人に教え始めますより良いコーディングスタイル。もちろん、このために管理者が何らかのバックアップを取得するようにしてください。
ドックブラウン

回答:


5

あなたが説教することを教え、実践してください。

あなたはこのようなものが重要であることを知っています。あなたはそれが正しく行われていない場合の欠点を知っています。

今の課題は、他の人を説得することです。これは、単一の会話、会議、廊下での会話、ヒント、またはプルリクエスト内では行われません。

これが必要です:

  • これらの項目が重要であることを管理者が一般に認める
  • リンターにより、人々が集まり、スタイルを決めてハッシュし、コンピューターにポリシングを行わせることができます
  • 完全に賛同し、他の人に喜んで教える開発者をリードする
  • これらのアプローチを教えるための会議、デモ、昼食、学習など
  • レビュー中に言及した品質項目で測定されている人々
  • 文書化され公開された標準
  • 多くのレビュアーがいるプルリクエスト
  • コード品質が高くなるまでマージされないプルリクエスト
  • 頻繁なコードペアリング
  • 複雑なPRのグループコードレビュー

言葉で言えば

リーダーシップ

良いニュースは、これらのすべてのアクティビティは一般にグッドプラクティスとして認識されているため、それらを宣伝したり、経営陣から賛同を得たりすると、成功のチャンスがあり、正しいことを守ることができるはずです。しかし、経営陣はまだ賛同できないかもしれません。それは別のトピックであり質問です。


2

過去にSoftwareEngineering.SEでこのテーマについて多くのことを書いてきましたが、私自身も同様の状況にありました。したがって、いくつかのヒントを示し、質問を読んだときに気付いたいくつかの問題を強調するようにします。

しかし、最初に、重要な側面について話しましょう。会社でのあなたの役割です。

あなたの役割

物事を強化するために、上司からの明確な委任があり、また、他の開発者があなたの注文に耳を傾けなければならない階層内の場所もあります。または、同じ役割と同じ権限を持ち、あなたの選択肢は...まあ... 意見です。

どちらの場合も、重要なのは階層内の自分の位置よりも少ないことです。

  • 他の開発者があなたをどう思うか。彼らがあなたを彼らに愚かなことを尋ねる迷惑な男として扱うなら、あなたは遠くに行かないでしょう。技術リーダーやプロジェクトマネージャーがチームにまったく影響を与えないケースが多く見られました。チームは、それらの「リーダー」が自分の決断を下すのに必要な技術的背景を持たないことを知っていた(考えていた)からです。一方、私は実際に彼らの仲間に耳を傾けられたいくつかの開発者を見てきました。

  • あなたのチームはどれほど堅固で、何が彼らを動機付けていますか。すべての開発者がKLOC /月の支払いを受ける会社を想像してください。スタイルについて何か言いたいことが同僚にありますか?おそらくそうではありません。なぜなら、より少ない給料を望む人はまれだからです。一般に、これがチームではなく、同じプロジェクトで作業している人のグループである場合、何も改善することはできません。

それに応じて、変更する努力に値するかどうかを決定できます。声がなく、チームの結束がない場合は、別の仕事を探してください。才能があり、尊敬されている開発者として知られ、強いチームフィーリングがある場合、上司や他のチームからの敵意に直面しても、物事を比較的簡単に改善することができます。

すべての場合において、チームに圧力をかけないことが不可欠です。彼らに対してではなく彼らと協力てください。命令するのではなく、目標に向かって誘導します。

今、ヒント。

スタイル

私はかつて、既存のコードの大部分のコーディングスタイルとフォーマットに従うようにきちんと要求しました(残念ながら、正式なコーディングスタイルのドキュメントはありません)。しかし、うまくいきませんでした...

もちろん、そうではありませんでした。これは、それが行われるべき方法ではないからです。

  • スタイルは退屈です。

  • 次のスタイルは退屈です。

  • コーディングスタイルのドキュメントを書くのは退屈ですそして非常に困難です。10年以上この言語で作業したことがない限り、やろうとしないでください)。

  • スタイルドキュメントを読むのは退屈です。

  • スタイルの間違いについてコードを確認するのは退屈です。

  • 私のスタイルがあなたのスタイルよりも優れているというトローリングは、特にあるスタイルが他のスタイルよりも客観的な利点がない場合に刺激的です。真剣に、すべての正気の人が書き込みに正しい方法を知っているif (x)私は、それを書いていない方法ですif(x)if ( x )

したがって:

  • スタイルのレビューをしないでください。これはスタイルチェッカーの仕事です。これらのかわいいアプリケーションには、脳に対していくつかの利点があります。数時間または数日ではなく、ミリ秒単位でプロジェクト全体をチェックし、ミスをせず、スタイルエラーを見逃しません。

  • 独自のスタイル標準を作成しないでください。とにかくあなたはそれを間違ってします、そしてあなたの同僚はあなたが悪い選択をしたことをあなたをだまします。

  • 開発者に2000のスタイルエラーの修正を強制しないでください。

  • コミット時にスタイルを自動的に強制します。スタイルに誤りがあるコードには、バージョン管理の場所がありません。

  • プロジェクトの最初からやります。既存のプロジェクトでスタイルコントロールを設定することは不可能または困難です。

詳細については、SE.SEに関するこの他の回答の最初のセクションをお読みください

また:

  • 厳しすぎないでください。たとえば、jslint準拠コードの作成は非常に面倒なので、どうしても必要な場合(またはチームのメンバー全員がそれを使用して満足している場合)にのみ行う必要があります。静的チェックツールについても同じことが言えます。たとえば、最大レベルでの.NETのコード分析は、非常に抑圧的で気のめいるようですが、ほとんどメリットはありません。一方、中程度のレベルで設定された同じツールは、非常に役立つことが判明しています。

コードレビュー

コードレビュー中にスタイルを気にする必要がなくなったので、ソースコードを強化する(修正する)より興味深いものに集中できます。

コードレビューに対する反応は人によって異なります。機会だと考える人もいます。他の人はそれを嫌います。一部の人はあなたが彼らに伝えるすべてを聞き、メモを取り、たとえたとえ彼らが正しいかもしれないとしても、議論しない。他の人はあらゆる点で議論しようとします。すべての開発者の性格に応じて対処する方法を見つけるのはあなた次第です。通常、次のことに役立ちます。

  • 特に開発者が後輩であり、本当に悪いコードを書いている場合は、プライベートでコードレビューを行ってください。

  • 個人的なものは何もないことを示します。あなたはその人のスキルではなくコードをレビューしています。

  • コードレビューの実際の目標を示します。目標は、開発者がどれほど悪いかを示すことではありません。目標は、改善の機会を提供することです。

  • 議論することはありません。説得するためではなく、専門知識を提供するためにここにいます。

  • レビューから何かを学ぶことができるのは、レビュー対象者だけだと思い込まないでください。コードを読んだり、理解できない部分について説明を求めたりすることで、あなたもここで学びます。

コードのレビューが完了したら、その人が実際にコードを改善していることを確認してください。実際の会議が終了すると、コードレビューが終了すると開発者が考えるいくつかのケースがありました。彼らは去り、新しい機能に戻り、共有したものを新しいコードにのみ適用しようとします。コードレビュー用の適切な追跡ツールがあると役立ちます。

会社での特定の役割や他の人と比較した専門知識とは別に、コードもレビューの対象となることに注意してください。他人のコードをレビューするのはあなただけではないはずです。

私が技術リーダーとして働いていた最近のプロジェクトでは、同僚を含め、お互いのコードのレビューを行うことが自分の役割であることを同僚に説明するのに苦労しました。技術リーダーのコードをレビューしようとしているインターンの恐怖は、コードの最初の問題を見つけるとすぐに消えます。

トレーニング

コードレビューは、プログラミングとソフトウェア設計のいくつかの側面を教え、学ぶ絶好の機会ですが、トレーニングが必要なものもあります。

同僚を訓練できる場合は、それを行います。トレーニングのアイデアに経営陣が敵意を抱いている場合は、非公式に行います。私はそのようなトレーニングセッションを非公式の会議の形で、または時には単純な議論として、時には経営者によって中断され、後に追求する形で行いました。

直接的なトレーニングは別として、McConnel's Code Completeなどの本を十分に理解し、それらの本について同僚に話してください。オープンソースプロジェクトのソースコードを読むように提案し、高品質のコードの具体例を示します。そして、明らかに、高品質のコードを自分で書いてください。

人ではなくコンテキストに焦点を当てる

「悪い企業文化」や「経験の浅い卒業生」などに焦点を合わせずにこの状況に対処するにはどうすればよいですか。

これらの卒業生には目標があります:経験を積む、物事を学ぶ、より熟練する。年々、彼らがくだらないコードを書き、プログラミングについて何も知らないのは、おそらくあなたのチームや会社が彼らにこの機会を与えていないからでしょう。

チームに経験の浅い卒業生がいるという事実に注目している場合、これは役に立ちません。代わりに、あなたが彼らのために、そして彼らと共にできることに集中してください。コードのレビューとトレーニングは、状況を改善するための2つの手法です。

悪い企業文化は別の獣です。時々、変更することができます。時々、それはできません。すべての場合において、あなたこの会社の一員であること忘れないでください。あなた会社の文化の一員です。それを変更できず、遅かれ早かれ本質的に悪いことがわかった場合は、離れなければなりません。

メトリックを正しく取得する

現在、どのくらい正確にコードを測定していますか?開発者ごとに1日あたりのコミット数を測定しますか?それともプログラマあたり月あたりのKLOCですか?それともコードカバレッジですか?または、発見され修正されたバグの数は?または、回帰テストで検出された潜在的なバグの数は?または、Continuous Deploymentサーバーによって行われた復帰の数は?

チームメンバーは、測定された要因に作業を適合させるため、測定するものは重要です。たとえば、数年前に仕事をしなければならなかったある会社では、測定された唯一のことは、オフィスで過ごす時間だけでした。言うまでもなく、これは、より良いコードを提供したり、よりスマートに動作したり、...まったく動作したりすることを奨励するものではありませんでした。

肯定的および否定的な強化を理解し、測定された係数を経時的に調整することは、基本的にチームメンバーに対するレバレッジです。適切に行うと、単純な階層では達成できない結果を達成できます。

あなたを悩ますものは、それらを測定可能にします。それらを測定し、結果を公開します。次に、他のチームメンバーと協力して結果を改善します。

たとえば、チームメンバーがクラス、クラスメンバー、変数の名前のスペルを間違えすぎていると考えてみましょう。これは面倒です。それをどのように測定できますか?パーサーを使用すると、コードからすべての単語を抽出し、スペルチェッカーを使用して、ミスやタイプミスを含む単語の割合、たとえば16.7%を特定できます。

次のステップは、目標比率についてチームに同意することです。次のスプリントでは15%、次のスプリントでは10%、6週間で5%、2か月で0%になります。これらのメトリックは、コミットするたびに自動的に再計算され、オフィスの大画面に表示されます。

  • 目標比率を達成できない場合、チームはスペルミスの修正にさらに時間を費やすことを決定する場合があります。または、開発者ごとの比率を計算し、この情報を大画面に表示することをチームが検討する場合があります。または、あなたのチームは、目標が楽観的すぎて、それを確認する必要があると感じるかもしれません。

  • 目標比率を達成したら、次のステップは、ミスやタイプミスの数が時間の経過とともに増えないようにすることです。そのために、スペルミスをチェックするビルドで追加のタスクを作成し、少なくとも1つのミスが見つかった場合にビルドを失敗させることができます。この問題を取り除いたので、新しい関連する統計を表示するために大画面を再利用できます。

結論

あなたの質問で言及されたすべての側面は、私が答えに含めたテクニックを通して解決できると信じています:

  • 他の開発者がプロ​​ジェクトに参加したとき、異なるコーディングスタイル(時には完全に異なるスタイル)を使用していることに気付きました

    あなたは強制しなければならなかったスタイルをコミット時に自動的に。

  • 多くの場合、プロパティアクセサのような最新の言語機能は使用しません(Objective-Cでは比較的新しい機能です)。

    言語の知識を伝えるために、コードレビュートレーニングの両方があります。

  • フレームワークの同様の機能を使用する代わりに、独自の自転車を発明することもありました

    フレームワークの知識を伝えるために、コードレビュートレーニングの両方がここにあります。

  • または、他のプログラミング言語または彼らが学んだパターンをコードベースに転送します。

    これは素晴らしいことです。あなたは彼らから学ぶ機会のようです。

  • 多くの場合、悪い英語のためにメソッドや変数に適切な名前を付けることができません

    コードレビューは、適切な命名にも焦点を当てるべきです。一部のIDEにもスペルチェッカーがあります。

  • IDE用でない場合は、インデントや書式設定を一切行わずにすべてのコードを記述すると思うことがあります。

    もちろんそうです。スタイルは退屈で、自動化する必要があります。

  • 基本的に、私は彼らが書いたコードが嫌いです。

    コードレビューの部分から思い出してください。「目標は、開発者がどれほど悪いかを示すことではありません。目標は改善の機会を提供することです。」

  • フォーマット/構成が不適切で、プロジェクトの他の部分とは根本的に異なる場合があります。

    自動スタイルチェック。

  • 彼らがスパゲッティを私の作品に加えたとき、私はとても怒っています

    ちょっと待って!?芸術作品?!何だと思う?一部の人(6か月以内にあなたを含む)は、あなたのコードが芸術品ではないことに気付くかもしれません。一方、あなたの作品を芸術作品として、そして彼らの作品をがらくたとして考えることは誰にも役に立たないことを理解してください。あなたを含みます。

  • 学習することや気にしないことはますます難しくなっているように感じます。彼らは彼らから求められていることをして、家に帰るだけです。

    もちろん、彼らは彼らから要求されることをします。覚えておいてください:コンテキストではなく、個人右のあなたのメトリックを取得します。コンテキストが彼らから彼らがすることで最高になることを要求する場合、彼らはそれをします。コンテキストが1か月あたりできるだけ多くのKLOCを生成する必要があり、それ以上を生成しない場合は、それも実行します。


あなたはコードレビューに言及して初めて+1を獲得しました-あなたが公の場でコードベースに対して行った混乱を守らざるを得ないことは非常に教育的です。しかし、コードレビューは管理レベルの誰かに本当に気を配り、その誰かが行方不明になった場合、あなたは私見の運命にあります。
トフロ

@tofro:ありがとう。ただし、コードレビューは側面の1つにすぎません。自動スタイルチェックはより重要な方法ですが、これまでの回答では言及されていませんでした。メトリックも言及されていません。同様に、OPが彼のコードを「芸術作品」と呼んでいるという事実を強調するものはありませんが、これは非常に重要な側面です。
Arseni Mourzenko

@tofro:「コードレビューは、管理レベルの人に本当に気を配ってくれます。その人が行方不明になった場合、あなたは運命にあります」:私の経験によると、経営陣からのサポートは必須ではありません。私は、管理者が時間の無駄を考慮して、実際にコードレビューに敵対するチームで作業する必要がありました。私たちはまだそれらを行っており、コード品質の面で測定可能な利点(バグが少なく、バグを解決する時間も少ない)と、チームメンバーの幸福と経験の測定不可能な利点をもたらしました。優秀なチームは、能力のない管理者に対しても素晴らしいことをすることができます。
Arseni Mourzenko

チームがCRに取り組む共通の関心を持っている場合、管理サポートが必要ないことに同意します。明らかに、ここではそうではありません。
トフロ

0

コーディング標準を実装し、それらに従う、デザインパターン、ガイドラインとして使用できるコードスニペットライブラリなど

コーディング標準は、スペースまたはタブを使用するかどうかの決定、使用するデザインパターン、命名規則などの範囲になります。これは、誰もが異なるコーディングを行う場合でも大いに役立ちます。


0

可能であれば、コーディング標準とコードレビューを実装して、チェックインごとにレビューを開始します。小さなチームでは、コードに余分な2倍または3倍の費用をかけることで、全体の開発時間を20倍または30倍節約できることを理解していない人にとっては難しい販売になりますが、それは購入する価値のあるもう1つの概念です-オン。

私は一度にすべてを実装しようとはしませんし、標準を考え出すために最善を尽くします-インデントだけでなく、彼らが持っているコードで遭遇したことについて考えさせる生活を楽にしたり難しくしたりしました。

その週の各人にとって何がうまくいったか、悪いかをレビューするために、週に1回会議を開くことを検討してください。 。このようなアイデアについては、XP /アジャイルの本をご覧ください。小規模なチームであるため、これも大変な売り込みになる可能性があります。

あなたは言語の問題について言及しました。これらの労働者が現地にいる場合(現地の請負業者またはフルタイムの雇用)、それはあまり問題になりませんが、彼らが遠隔地で働いている海外の請負業者である場合、私の個人的な経験ではこれは決してありません修正される予定です。経営陣が機能しないと判断するまで乗り切るか、退職することを検討してください。あなたが彼らの仕事に責任を負っている状況に陥らないでください。また、チームの開発慣行を修正しようとして時間を無駄にしないでください。おそらく、あなたの仕事は、コードを機能させるためにあなたの時間の100%を費やすことに進化するでしょう。ちなみに、多くの海外の請負業者は優れたプログラマーです。ちなみに、私は契約会社があなたが説明した種類の才能をあなたに送った場合について言及しています。


0

あなたが説明する症状は、チーム結束の欠如を強く示唆します。

そのような状況では、コーディング標準、トレーニング、手順、またはツールは、品質を大幅に向上させることができる特効薬ではありません。最初に、チーム精神、オープンで建設的なコミュニケーション、および製品の共有所有権を開発する必要があります。

症状:

  • 「彼らはただ必要なことをして家に帰るだけだ」:彼らはやる気を失っているようだ。彼らが到着したとき、彼らはもっと熱狂的でしたか?
  • 「私たち」/「私」/「私」に対する「彼ら」:相互信頼の欠如?
  • 「私はいくつかのヒントを与えました:GitでPRをコメントしました」:書面による批判のトーンは、建設的な意図にもかかわらず攻撃的またはar慢であると誤解されることがあります。面と向かって議論してみませんか?

あなたは小さなチームです:この利点を活用してください!始めるべきいくつかのアイデア:

  • 重要な決定をまとめて行います。公然と意見の相違を議論します。「話し合う」とは、1つの視点を課すことではなく、共通の根拠を聞き、それを見つけようとすることです。
  • あなたはコードの重要な部分をリファクタリングしたので、あなたは本当に強い所有権を持っています。彼らに賛成させてください。彼らに言いたい言葉を聞かせてください。
  • また、コードの書式設定など、非常にデリケートではあるが非常に主観的なトピックについては、チェックインのたびに感じずに標準に従って再フォーマットする自動プリティプリンタに義務を外注するだけです。

今日の名言:

早く行きたいなら、一人で行きましょう。あなたが遠くに行きたいなら、一緒に行きます


0

あなたの質問は「あなたの会社を変えるか、あなたの会社を変える」で答えられます。知らない人にとっては、これはあなたが滞在し、あなたの会社で見たい変化をもたらすために戦うことを意味します。

2番目の部分は最も単純です。退職し、同じ価値観を共有している会社を見つけます。最初の理由は...人々のためです。

あなたがする必要があるのは、人を変えることです。それらが壊れていて、それらを修正する必要があると考えることはうまくいきません。人々は感情的な存在です。これは個人的な戦争で簡単に退化する可能性があります。そう...

まず第一に、状況が現状である理由を見つける必要があります。みんなと話してください。探し出す。あなたが今見ているのは、何年にもわたって行われた決定の結果です(あるいは、適切なタイミングでいくつかの重要な決定を行わないかもしれません)。判断したり、結論に飛びついたりしないでください。

これは、経験の浅い開発者が原因ですか?経験豊富で高価な開発者ではなく、安い卒業生を雇ってコストを削減しようとする経営陣が原因でしたか?これは、怠け者で悪意のある人々、または壊れたシステムによって敗北した人々に関するものですか?締め切りはあなたがそれを機能させるために「しなければならないこと」をすることを余儀なくされているのですか、それとも人々は単に時間を無駄にし、彼らが取り組んでいることにあまり気にかけないのですか?等

ソフトウェア開発のこの分野の問題は、人々が仕事で学ぶことです。彼らが安っぽい環境で働くなら、彼らは悪い習慣を取り戻すでしょう。そして、習慣は固執し、揺れにくい傾向があります。それが彼らが知っているのはそれだけだからです。すべての開発者が、時間をかけて改善する、または改善を求めることに情熱を注いでいるわけではありません。他のさまざまな理由でこのビジネスに参入した人もいました。だから、なぜ人々は彼らがどうであるかを見つけてください。

次に、管理があります。経営者は状況を認識していないのですか、それとも気にしないのですか?探し出す。物事を改善したい場合、経営陣のサポートが絶対に必要です。テストを作成し、コードレビューを行い、ホワイトボードでチームと議論して適切なソリューションやペアプログラムなどを決定する必要があるため、突然の構築に3か月かかったものが4か月かかるようになった場合、管理者が時差に気付くようにしてください。3か月から4か月に変わるものは、観察して測定するのが簡単です。強固なコードベース、保守可能な製品、優れた安定したアーキテクチャ、優れた製品構造を実現するものは、それほど測定が容易ではありません。長期的にベストプラクティスがどれだけの時間をあなたに購入するかは、事前に測定することはできません。一方、1か月の遅延は簡単です。したがって、これに関する管理サポートがあります。ハードセールを行う準備をします。

また、ビジネスのコンテキストも見てください。これはあなたの働き方に影響を与えていますか?コードの品質やベストプラクティスを犠牲にすることを含め、どんなコストでも従わなければならない機会がありますか?

少し視点を変えましょう。

彼らがスパゲッティを私の作品に追加すると、とても気分が悪くなり、仕事の気分や生産性に影響します。

申し訳ありません...あなたは何ですか?アート?私たちの大部分が同業者からの承認のためにここにいることを知っています。あなたが優れた開発者である場合にのみそれを得ることができますが、あなたのコードは絵画の隣の博物館に表示されますか?それを見ている人々に感情を引き起こす必要がありますか?喜びと至福の涙?はい、私は皮肉屋であり、現実感を保つために言いたいので、意図的に誇張しています。コードに感情的にならないでください。

私は、みんなに彼の「芸術」を課すために、チーム、プロジェクト、会社を喜んでバスに放り込む男と仕事をしていました。彼は「真実の保持者」であり、定義上、誰もが未経験で、盲目で、学習したくない、気にしない、または単なる愚か者でした。その男にならないでください。ソフトウェア開発者としてのあなたの仕事は、良いコード、テスト済みのコード、保守可能なコード、ビジネス価値を追加し、絶え間ない将来の変更の下でそうすることができるコードを書くことです。そして、あなたはそれらすべてを予算と時間の制約の下でしなければなりません。それがプロのソフトウェア開発者であることの意味です。あなたがアートギャラリーでない限り、アートはビジネスに良くありません。実用的になり、物事についてバランスの取れた見方をしてください。「同僚が書いた悪いコードを無視して仕事に集中する方法「問題をフレーム化した方法のために質問をクローズしました。戻って全体を見てください。

「悪い企業文化」や「経験の浅い卒業生」などに焦点を合わせずにこの状況に対処し、実際に状況を改善し始めるにはどうすればよいでしょうか。

TL; DR:状況を注意深く見て、その状況になった理由を見つけてください。そのような状況であることを受け入れ、そこからどのように改善できるかを確認してください。これに関する皆の意見をご覧ください。戦いを選びます。変更の強制は機能しません。協力して変更を加えます。物事がどれほど悪いかを指摘するのではなく、物事をどのように改善できるかを示すようにしてください。あなたがしたいことは長期的にはより大きな利益のためであることを皆に納得させてください。乗船してください。

そして、小さなステップでそれを行います。

あまりにも多くの変更を一度にもたらすと、人々は落胆してあきらめます。変更には時間がかかります。会社を変更するか、会社を変更します。幸運を!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.