web-dev-qa-db-ja.com

入手したプロジェクトにコード品質を要求できますか

私はDrupal外部のWebエージェンシーからのプロジェクトを与えられ、両方のDrupalとサイトを作る彼らのアプローチで賢くなろうとしています。時間とともにDrupalについてもう少し詳しく知りましたが、実際には私のお茶ではないことに気付きました。最近、サイトの一部のHTML生成を「単純に」置き換えようとしました。カスタムモジュール(サイトのアドオン)を介して生成されるコードを変更したところ、効果は何も変更しないことに気づいたか、少なくとも考えていました。

基本的に、私は誇張せずに、同じコードを非常に小さな違いで26回置き換えましたが、stillはどこでも変更されていません。したがって、私が扱っているのは、文字どおりグローバルクラスも関数も聞いたことがないか、ほとんど聞いていないコードのセットであり、サイト全体にコピー&ペーストするだけです。

私はこれで何をすることになっているのか知りたいです。基本的にexactの3000行を超えるコードが16回以上ある1つのファイルだけがあります。サイトで開発するようにウェブ代理店に注文した場合、コードが少なくともlittle保守可能であり、単純に不可能であることが一般的であると期待できますか?大きなコードであり、必要以上に編集するのが面倒なのか、それとも具体的にリクエストする必要があるのか​​。代わりに、サイトの引き渡しの代金を支払う前にコードを検証する必要があったのか。

キャリアの中でこのように書き下ろされたコードに出会ったのはこれが初めてであり、店の外から見た格好良いスーツを買ったかのように感じ、私たちが手に入れたのはそのポスターだけでした。同じ価格でスーツ。

質問

私の場合、何をするのが適切でしょうか?私はそれを吸い上げて、プロジェクトを完了するための私の与えられた期限が延長されることを期待してコードが不十分に書かれていることを雇用主に説得するべきですか、それともウェブエージェンシーに何らかの行動をとることを要求できますか?

編集:
すべての回答をありがとう!彼らは私がこれについていくつかのより多くの視点を得るのを助けます。私はこれについて内部でもう少し議論し、あなたのほとんどが質問の同じだけでなく異なる分野もカバーしているとしても、最良の回答をマークアウトするように努めます。

7
Robin Castlin

コードの品質を要求することについては完全に同意しますが、IS数量化するのは非常に困難です。代理店との契約に何もない場合、どのようにして彼らに再作業を依頼することができるかわかりません。おそらく作業ソリューション。

おそらく、これから将来のために取ることができる唯一のことは、プロバイダーがソリューションを提供するときに、ユーザー受け入れテストに加えて、ある種のコード品質管理を考え出そうとすることです。

コードが本当にそれほど悪い場合、それは単にその会社を再び雇わないことを意味するかもしれません。 mayコードの品質に関する懸念を会社に通知するのにある程度のマイルがあり、顧客としてあなたを維持しようとする努力の中で、彼らはmay上記を試してみるそして彼らの契約を超えていますが、あなたのマイレージはこのアプローチで異なります。

11
ozz

フロントエンドのコーディング(HTML/CSSのみ)を「Web代理店」に外部委託したときも、同様のことをしなければなりませんでした。戻ってきたものはモックアップのように完全なピクセルに見えましたが、あちこちにコピー&ペーストされました。エージェンシーは、彼らがnon finalフロントエンドコードに取り組んでいることを明確に知っていました。これは、後でいくつかのバックエンドコードといくつかの追加のJavascriptで実現されます。彼らは、コードを拡張して変更する必要があることを知っていました。しかし、彼らはまだコピーアンドペーストの結果をもたらしました。

一番下の行は、代理店に戻って変更を要求/リクエストできることです。代理店は、契約で指定されている内容を提供する責任があります。しかし、それがクリンチャーです。特定のコード品質が事前に指定されていない場合、実際の義務はありません。*

まず、「コード品質」を定量化することは非常に困難です。誰もがこの標準に固執する前に、これについていくつかのメトリックを考え出す必要があります。たぶん"新機能を実装するために必要な時間xはy未満でなければならない";しかし、定量化または証明する幸運that。そして、それがまだ契約に含まれていない場合、それは本当にあなたを助けません

2番目に重要なことですが、もし彼らがこの品質のコードをあなたに提供した場合、彼らは彼らが何をしているのかわからないか、あるいはより可能性が高いです組立ラインのようなコード。彼らは品質に関心がなく、高品質のカスタムコードを提供するにはコストがかかりすぎます。どちらにしても、より高い品質のコードを要求しようとする壁にぶつかることになります。試す価値がないと言っているわけではありませんが、おそらくほとんど失敗するでしょう。
彼らが協力的であれば、彼らを高品質の製品を提供するように細かく管理できるかもしれませんが、この時間と神経の投資に価値があるかどうかは疑問です。


品質が不明な請負業者から品質の高いコードを入手したり、損失を削減したりするための実際の唯一の方法は、非常に定期的なフィードバックとQAサイクルを指定することです。開発中はコードを定期的に把握し(リポジトリへの直接アクセス、優先として、毎日または毎週のスナップショットをフォールバックとして)、継続的に評価することを要求します。品質が基準を満たしていない場合は、支払いを保留できる支払い構造を指定してください。定期的にフィードバックサイクルを確立します。これにより、改善が必要な領域を指定し、ベンダーが支払いを停止しないようにフィードバックを実装する必要があります。最初は両方の当事者がお互いをある程度感じる必要があります。ベンダーの品質を評価する必要があり、ベンダーはクライアントの要求に慣れる必要があります。うまくいかなかった場合の時間とお金の損失から双方を適切に保護する契約は、あなたが新しい人々と仕事をしているなら必要です。初めはこれはあなたの側にいくらかのオーバーヘッドを招きます、しかしそれがうまくいき、あなたがある程度の相互信頼を確立したなら、あなたは仕事のあなたの部分を削減し、ベンダーに任せることができるでしょう。

ベンダーがそのような契約に同意しない場合、それは一種の危険信号です。

7
deceze

まず、代理店にプロジェクトの作業を任せないでください。それは彼らのビジネスモデルを確認するでしょう(すなわち:クレイジーなお金のためにジュニア開発者に与えられる毎時のタスク)。

経験から、Drupalベストプラクティスに準拠していないカスタムモジュールをいくつか作成したと思います。カスタムメイドのユーザーモジュールなどのコア機能をいくつか変更して、 Drupal docに従ってモジュールを作成します。

このすべてを削除してリファクタリングする必要があります。そうしないと、このプロジェクトは破滅します。あなたの雇用主はそれを吸い上げて、それを学習経験と考えるべきです:ウェブエージェンシーは小さなプロモーションプロジェクトのためのものであり、より大きなスコープを持つものではありません。

4
Arkh

エージェンシーが初めてひどい仕事をしたなら、将来的にそうするだろうと信じるにはあらゆる理由があります。あなたmightは、追加の支払いなしでより多くの仕事をするように彼らに話すことができます(しかし、私はそれに頼りません)とあなたmight彼らがあなたが実際に望んでいるものを提供するのに十分近く監督することができるかもしれませんが、あなた自身の仕事をするかもしれないほどあなたの側で多くの仕事をする可能性が高いです無駄な会議に費やされる時間を節約できます。

契約を確認します。他のユーザー(つまりご自身)が保守およびサポートできるコードを作成する必要があることが明確でない場合は、次回はより優れた契約を作成する方法を学ぶ必要があります。それが明確であった場合、法的措置を検討してください。そして、代理店をブラックリストに登録します。少なくとも内部的に。特に高品質の製品/サービスを提供したいと考えている人がたくさんいるので、人生は短期間で義務を回避しようとする人々に対処するには短すぎます。

3
Donal Fellows