web-dev-qa-db-ja.com

コードレビューを行う人がいない場合、コードを検証するにはどうすればよいですか?

私は、通常はIT担当者であるクライアントがコードをピアレビューしてテストする大規模な開発環境での作業に慣れています。現在、私は開発者だけでなく、IT担当者も1人だけの非常に小さな会社で働いています。

アジャイルストーリーを終了するたびに、同僚や上司に私の仕事を見てもらおうと思っています。そうすれば、慣れているパターンのように、彼らがそれを受け入れたり拒否したりできます。しかし、私の同僚は、私の仕事を十分に理解してそれを判断できないか、誤解して悪いコードを受け入れるか、リンクの色のような表面の外観だけに基づいて良いコードを拒否することがよくあります。

だから私は今テストを受け入れ/拒否するときをどのように決定すべきか疑問に思っていますか?外部の人のように自分のコードを評価する必要がありますか?スキップしてすべてを受け入れる必要がありますか?同僚を少し教育して、適切なテストを実施してもらう必要がありますか?

14
Dylan Karr

ユーザーストーリーは、お客様と連携して作成する必要があります。

お客様ですか?

もしそうなら、あなた自身の物語を受け入れてください。そうでない場合は、お客様と一緒にレビュー/書き込みの時間をスケジュールします。

1
Steven A. Lowe

あなたがあなたの会社のためにオンラインシステムを開発しているなら、それはあなた以外の誰かが少なくともUIレベルでそれがどのように機能するはずであるかについての考えを持っている必要があることを意味します。そのため、社内の他のユーザーがあなたの作業をレビューできるレベルになります。

残念ながら、それはあなたのコードをレビューする人がいないことを意味します。 1つの可能性は、独自のコードを確認できることです。コードが完成してから1週間ほど前に戻ってコードを調べ、それでも理解できるかどうかを確認すると役立つ場合があります。または、会社に別の開発者を雇ってもらうこともできます。

9
Dima

唯一の開発者として、私はあなたが(できれば一時的に)より大きなチームが持っているプロのテクニックのいくつかを手放す必要があると思います。しかし、あなたはいくつかの代替品を作ることができます!

常にリポジトリを使用する必要があります。おそらく以前よりも多くのテストを行う必要があります(間違いを見つけることができる人は他にいないため)。

可能であれば、各機能を作成するか、別のチェンジセット/シェルブセット(またはgitのブランチ)を追加して、機能を作成してテストし、1〜2週間無視するようにします(長い方がおそらく良いでしょう)。次に、シェルブセット全体を読みます。今:コードのすべての行をすぐに理解するのに問題がない場合は、コードが適切にレビューされていると考えてください(1人として、これが最善の方法だと思います)。コードのすべての側面をすぐには理解できないコードの部分がある場合は、少し時間をかけて、コードをより簡単に理解できるようにするかどうかを確認してください。

上記のすべてよりも優れているのは、上司に別のプログラマーを雇ってもらい、お互いのコードをピアレビューすることです。

幸運を!

5
Thomas N

ミクロマネージメントの世界へようこそ。

上司がお金を失い、技術者が他人のためにコーヒーを作った場所

これまでに学習したアジャイル開発手法のほとんどは、この瞬間には適用できなくなります。主な問題は、開発チームがいない場合、おそらく「極端なプログラミング」が残っていることです。私のアドバイスは、会社に明確にすることです(この規模に関係なく)。この状況は、ソフトウェアがアマチュアレベルで開発された場合にのみ持続可能です。これはあなたの役割とは何の関係もありません。ソフトウェアの設計と開発のレベルでのみ、あなたが知っているすべての技術を適用することによって開発を続けることができます。 TDDを使用して開発を続行したり、UMLでユースケースを描画したりするなどを続けます。しかし、製品では、開発、デバッグ、調整、展開、宣伝するために、より多くのメンバーが必要です...

製品の開発は、強い批判を乗り越え、これを乗り越え、継続的な統合の道をたどる必要があることを忘れないでください。プログラマーとして、私たちは他人の批判をうまく消化せず、他人からの素晴らしいアイデアを必要とすることがよくありますが、彼らがそこにいない場合、私たちは全能になり、すべてのエラーが私たちのものになります。

上司(定義どおり)は、技術の説明を拒否していると思います。これらは通常、費用をかける必要性につながり、技術部門に予算が定義されていない会社では、これにより競合が発生する可能性があります管理者と技術の間。

私のアドバイスは、トレーニングマネージャーに投資することです。多くの説明はせず、小さなプロジェクトでも、開発チームの新しいメンバーを歓迎する準備を整えてください。

いくつかのヒント

  1. 常にrepositoriesを使用してください。コードは Super Project として整理され、githubの素敵なプロジェクトかもしれません。
  2. 少なくともあなたに行われるリクエストのmilestonesを定義することに時間を費やしてください。
  3. マイルストーンをシンプルに整理するオンラインスプレッドシート。これで、優れたプロジェクトマネージャー、ガント図、リソース管理、資金フローなどは必要なくなりました。
  4. 常にcommunicatee-mailで作業の進捗状況を示し、マイルストーンのステータスをPDFで添付します。

今日あなたが選ぶ方法は、あなたが何をしているか、そしてどれだけの時間を費やしているかを示さなければならない、と私は思います。

最後の検討

上司に示すと、10マイルストーン、はコードの記述で、もう1つはデバッグ、設計、インストール、テスト、その瞬間にあなたは行政との対話のための素晴らしいツールを持っています...

その時、あなたは彼らの言語を話します。

3
marcocs

私は開発者だけではなく、IT担当者も1人だけです。同僚や上司に会いたい...

そのような状況では、コンピュータについてまったく何も知らなくても、友人を招待すると便利な場合があります。あなたは家や別の場所で会うことができ、彼にあなたのコードを見せたり、彼にあなたのコードを見せたりすることができます。私の経験では、彼は私の友人であり、通常はコードの一部をつついていましたが、その後エラーを見つけることがよくありました。

また、コードが何をするかをなんとかして忘れようとするのも良い方法です。ただ寝たり、散歩に行ったり、プロジェクトを変更したりするだけです。完了したタスクを完全に忘れたら、プロジェクトに戻り、コードを読んで、コードの目的を再構築してください。もう一度コードを理解してみてください。多くの新しいアイデアが見つかるだけでなく、間違いも見つかるでしょう。ただし、あまり長く待たないでください。

このアプローチは、記事を書くときにも適用できます。

コードを評価するには、 [〜#〜] pmd [〜#〜]FindbugsSonar などの自動化ツールを使用できます。これらの1つには、最高の評価とデザインパターンに対してコードを評価する一連のルールがあります。また、パターンやアーキテクチャ設計に一致する新しいルールを作成することもできます。 IDE、CIサーバー( Jenkins など)、または単純なバッチスクリプトで統合して実行できます。

それらは完璧ではありませんが、コードをレビューするための別の開発者がいない場合に役立ちます。これらは無料で、毎晩実行するようにスケジュールできるため、毎朝新鮮なレポートを取得できます。 :)

0
Gustavo Coelho

あなたが唯一のIT労働者である場合、あなたの周りの誰かにコードをレビューしてもらう意味はほとんどありません。それが何を意味するのか誰もわからず、スペルミスのような些細なことを指摘するだけです。

単体テストを広範囲に使用します。コンパイラの警告に注意し、自動化されたコード品質ツールの使用を検討してください(ただし、それらからの多くの無用な警告を無視またはオフにする準備をしてください)。

あなたのコードが彼らが望んでいることをするかどうかあなたの周りの人々にたずねるだけです。混乱する場合、または機能しない場合は、修正してください。彼らが満足しているなら、あなたのコードは大丈夫でなければなりません。

0
Simon B

あなたが小さな会社で働いているとき、それはいくつかの帽子をかぶる必要があるのが普通です。最も極端な例を挙げます。会社が最初に作成されたとき、開発者、テスター、アナリスト、販売、簿記、マーケティングなどの役割が残っていますが、作業を共有するのはおそらく2〜3人です。

この場合、必要なものの分析、開発、テスト、展開、保守、サポートを行っている可能性があります。高価な贅沢かもしれない小さな会社で、品質とビジネス継続性の両方の観点からこれらの役割を担当する複数の人がいることが望ましい一方で、.

私が与えることができる最高のアドバイスは、役割が何であるかを常に明確にし、プロジェクトでタスクを実行しているときにこれらの各役割を実行しているように考えることです。時間が経つにつれ、このプロセスはより流動的になり、先を見据え、競合する責任を処理することに慣れるようになります。

私が現在あなたのマネージャーである場合、私はあなたが先の挑戦にステップアップし、所有権を得ることができるかどうかを探しています。

0
Michael Shaw