他の人のコードを学習するプロセスをどのように説明すればよいですか?(請求書発行の状況で。)[終了]


16

編集:ジャスティン・ケイブは、この種のコミュニケーションが私の引用/見積もりで前もってあるべきであるという良い点を指摘しました。この場合、「既存のコード学習」アクティビティを記述するために人々がどのような言語を使用しているかを知りたいと思っています。特に、以前にソフトウェア請負業者と取引したことがない会社にとって。 編集を終了

大企業向けに社内ソフトウェアをアップグレードする契約を結んでいます。同社は、複数の機能追加といくつかのバグ修正を要求しています。これは私の最初のフリーランススタイルの仕事です。

まず、アプリケーションがどのように機能するかを理解する必要がありました-私はユーザーであるかのようにそれを学びました。

次に、ソフトウェアがどのように機能するかを学ぶ必要がありました。広い概念から始め、必要な詳細に絞り込んでから、各バグ修正と機能に取り組みました。

少なくともプロジェクトの開始時には、既存のコードを学習するのに、追加機能を書くよりもはるかに長い時間がかかりました。

請求書の既存のコードを学習するプロセスをどのように説明できますか?(会社のこの部分は通常社内で仕事をしているので、私のようなソフトウェア請負業者との取引経験はあまりありません。他の人のコードを学ぶオーバーヘッドを理解できないかもしれません。)実際の機能のアップグレードに学習時間を追加したくありません。これは、場合によっては「単純なタスク」に時間がかかりすぎるように見えるためです。請求書を関連するステップに分割し、自分のコードを追加する前に他の人のコードを学習するための大きなオーバーヘッドを請求していることを伝えたい。

ジョブの請求時にこの種のアクティビティを記述する標準的な方法はありますか?


いい質問です!それはほとんどリファクタリングにいますが、暗黙の編集がないため、そうではありません。
ZJR

2
詳細な内訳を提供することが期待されている/必要な場合は、多くの機能と修正があり、すべて続行するにはコードベースの理解が異なる必要があるため、それらのそれぞれについてコードベースを理解する費用を償却しますそのタスクにかかった時間に比例したタスク。
マークブース

回答:


4

「既存の機能のレビュー」や「既存のコードのレビュー」などのタスクを請求します。新しい機能の複雑さに応じて、「Design xxx」タスクを追加します。このタスクには、既存のコードへの統合ポイントの把握に費やす時間が含まれます。

新しいコンサルタントをスピードアップするのにいくらかのオーバーヘッドがあることを顧客に明確にすることは良い考えだと思います-そして、もし彼らが結果に満足していれば、同じコンサルタントで仕事を続けることはおそらく彼らを救うでしょうお金。


請求書には問題なく「既存のコードを学習する」などのタスクを含めました。
tcrosley

13

問題の診断。

これはおなじみの用語であり、自動車を修理したり医師に相談したりした場合、診断は何が悪いのかを理解するための一般的な用語です。また、正確です。何が機能していないかを把握するには、内部を調べて、すべてがどのように接続されているかを確認する必要があります。それは本当にマニュアルなしでエンジンに取り組むことに似ており、会社は以前に別のエンジンを見ずに行ってエンジンを作りました(それはおそらくユニークです)。

長く巻き込まれた、または奇妙な言葉の広告申込情報には、本当に必要のない質問がさらに表示されます。「問題の診断」は、多かれ少なかれ普遍的に理解されている概念です。


ありがとう、アノン。はい、長い巻き弦で半分隠されるのではなく、明確で前もってする必要があると思います。
-MattyG

6

顧客への請求書に記載されている内容は、顧客にとって驚きではありません。それを考えると、ユーザーの観点と開発者の観点の両方からアプリケーションに慣れるのに、かなりの時間を費やすことになると顧客に期待していることを既に望んでいます。また、最初のいくつかの機能の見積もりでは、コードに慣れるのに十分な時間が含まれていることを願っています。

最初の請求書のほとんどの時間はアプリケーションに慣れるのに費やすという顧客への期待を既に設定している場合、請求書にどのように記載するかはあまり重要ではありません。推定値を提供し、期待値を設定するときに使用した言語を使用します。あなたが今これを伝えようとしているだけなら、問題があります。


ジャスティン、ありがとうございます。求人フェーズではどのような言語を使用しますか?
-MattyG

3

フリーランサーとしての私の立場では、一般的な意味でこれを「知識同化」のように呼ぶでしょう。そして、これは最初に顧客に提供された見積もりに含まれていたでしょう。

ここでは役に立たないかもしれませんが、今後の参考のために、今後これをよりアクティブなタスクにすることをお勧めします。たとえば、コメントなしのコードへのコメントの追加、未テストのコードへの単体テストの追加などに費やした時間について顧客に請求します。これらは、コードベースの理解を促進しながら、少なくとも少しの価値を追加するタスクの例です。 。

文書化中の読書と読書の間に大きな違いがなくても、顧客はおそらくこれらの「アクティブな」タスクに対する心理的な好みを少し持っているでしょう。そして、実際に読むのではなく、他の人のコードを文書化することで、より多くを学ぶことができます。(コードに対してテストを記述する場合、これは確かに当てはまります)。

これを行うと、「知識同化とレガシーコードのテスト/文書化」などのような請求書の明細を作成できます。

編集:説明されているあなたの状況では、私はおそらくこの活動のコストを食べるでしょう。私はあなたの財務に話すことはできません、そして私は推定するつもりはありませんが、あなたが始めているとき、私は数時間の請求よりもお客様の声と顧客を喜ばせることにずっと高い価値を置きます。それが早期に効果的な低金利を意味する場合、それは良い投資かもしれません。長期的に請求可能な時間を食べることは、おそらく、彼または彼女がかなり揺れたと思っている満足している顧客に支払うための小さな価格です。


エリック、ありがとう。コードのコメントに関する素晴らしい点。ゼロが存在していたので、私は途中でそれをやってきた。はい、私は同意します、私はすでに「知識同化」時間の約半分を自分で食べました、そして残りの半分についてのみ請求します。
-MattyG

2

バグの修正:根本原因分析。

新機能:分析、設計、統合、およびテスト。

新しいバグの紹介:ジョブセキュリティ。:)


根本原因分析の場合は +1ですが、残りの回答の場合は-1で、詳細が少しわかりません。
マークブース

1

物事がどのように機能するかを理解し、夢のような目で私に耳を傾けるのが好きなクライアントと、私はまっすぐに行きCodebase Familiarizationます。私はすでに彼が私を苦しめていることの流れと、さらなるアップグレードのために私に来ることの利点について彼に説明したでしょう。

他のタイプの顧客とは...(同じ扱いですが、彼は私が言っている言葉を一言も聞いていないようです

  • Planning Phase
  • Intervention Planning

    (実際にはこれを使用しますが、イタリア語で書いたほうがいいでしょう)

  • その後、多分... Solution Planning

DiagnosisProblem Diagnosis提案の一部が好きですanonが、それProblemは私には正しく聞こえません。軽度で偏見があり、無知で、表面的な批判にさらされる可能性があります...

ご存知のように、誰もが外部コンサルタントにダーツを投げたいと思っています。(...彼は彼らと話している間、問題の根本を理解するのに十分でなく、彼の無知を主張しなければならなかった、または神は何を知っているかのように)


1

私のメカニックは私に請求書を送ります。「オイル交換、スパークプラス、フィルターのチェック、タイヤの回転。エンジンのがたつきを修正し、ロードテストを.....

部品(アイテム化)、

労力x @ $ y /時間= z)

彼は労働力を破壊しませんし、あなたも破壊しません。合計時間を請求し、何をしたかを説明します。

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