あなたならどうしますか?基本的にすべてが延期され、お客様はあなたと話せなくなります[終了]


8

去年のどこかで、かなり複雑なプロジェクトを唯一の開発者/プロジェクトマネージャーおよびテスターとして引き継ぎました。

昨年11月には、いくつかの新機能を提供するための期限がありました。

私が引き継いだシステムは、使用する準備ができていたと思われていましたが、まだ準備が整っていませんでした。

顧客のユーザーの1人と一緒に座って、彼は必要な新しい機能と要件を考え出しました。彼らが求めた機能は実装されたが、それは要件で指定されたものとは異なると彼は主張した。

それで、私は製図板に戻って、システムに大幅な変更を加える必要がありました。

約束の後の約束、これは私自身の責任です。さまざまな理由により、次の期限を逃しました。私の代わりに楽観的な計画を立てている、病気の子供、その他さまざまな個人的な問題です。

そして、顧客側にも障害がありました。私が彼らの肩越しに見守るときだけテストするなどです。

昨日、ユーザーがアプリケーションを承認した場合、ライブに移行することに同意しました。

もちろん、いくつかの問題が発生しましたが、今日、お客様に電話をかけようとしたところ、電話が切れて、どのメールにも返信していませんでした。

これは本当に私を疲れさせており、これに費やされた時間と時間は通常の労働時間をはるかに超えており、私の家族にも負担をかけています

明らかに、この状況にはこのプロジェクトに固有のものがありますが、全体的なパターン(複数の小さな問題、プロジェクトの故障につながる)は珍しいとは思いません。

同様のシナリオで何をしますか?


18
彼らがすでに支払ったなら、私は何もしません。
Pemdas

1
もう少し一般的にするために、いくつかの編集を行いました。ここにはこのプロジェクトに当てはまる詳細がありますが、全体的なパターン(全体的な失敗につながる複数の小さな問題)は非常に一般的であり、良い質問だと思います。
ジョンホプキンス

回答:


8

編集:これをもう一度読むと、これは少し厳しいように聞こえます、それはそのように意味されていません。あなたが説明することは一般的であり、通常は完全に理解できる要因によって引き起こされます(そして、あなたが助けようとすることによって悪化します)。とにかく、それが厳しい、申し訳ありませんが、指で指しているのではなく、「これは間違っているように思われるものであり、これはそれに対処する方法です」と言っているだけです。

あなたが言っていることから何が起こったようです:

  • 信じられるように誘導された状態ではない、使用するコードが提供されました
  • 次に、ユーザーは、アプリケーションが前述の要件を満たしていないと主張しました
  • さまざまな計画(大部分は非現実的)が作成され、見落とされた
  • テストが適切に実行されなかった
  • 彼は今、受動的に攻撃的な方法で乳母車からおもちゃを投げています。

そしてその結果、プロジェクトは失敗しています。

私の最初のポイントは、これまでやってきたことをやめる必要があるということです(これを続けるだけですべてうまくいくと仮定すると、楽観的に続けているようです)。それが過去3か月間機能しなかったのに、なぜ今は機能するだろうと思いますか?

基本的に、これらの問題のそれぞれは、症状(例:期限の遅れ)と根本原因(例:計画が楽観的すぎる)の両方に対処し、問題が発生したときに対処する必要があります。これは(珍しいことではありませんが)発生しなかったので、対処する必要のある複数の問題がある状態になりました。

私の経験では、プロジェクトがこのように大幅に軌道から外れてしまった場合、最善の方法は、関係者全員を1つにまとめ、要件と責任を再確立し、これらに基づいて(現実的な)計画に再度同意することです。

クライアントは次のことを行う必要があります。

  • 要件を明確かつ明確に確認します。これは仕様である場合もあれば、現在実装されているものからの逸脱のリストである場合もありますが、完全で明確であり、書面で伝達されている必要があります。

  • すべての欠陥を報告する最後に管理するテスト段階を受け入れます。これはあなたが反対することになるでしょう。また、最初のバグから発生するバグを再テストするために、少なくとも1つの後続のテストフェーズがあることを受け入れる必要があります。

必要がある:

  • 要件を現実的に評価し、作業(合理的な不測の事態を含む)を正確に見積もり、これを実現するための計画をまとめます。重要なことは正確です。あなたがそれがひどく悪化するつもりであると思うならば、現実を反映しない人々を幸せにするために一緒に計画はソフトウェアを提供しません。

  • この計画に反する。

再度クライアントに連絡するという観点から、提案されたアプローチをこれらの線に沿ってまとめ、理由を述べてそれを彼に送信することをお勧めします。現在彼は物事がどのように良くなるか知りたいと思っています、そしてそれはあなたが関係を再構築しようとしているなら彼に提供する必要があるものです。


1
私はこれのほとんどすべてに同意しません、OPは配信を正確に見積もることができないので、失敗した同じウォーターフォールプロセスをどのように実行して、惨めに何かを実行しようとしていますが、この場合、失敗の繰り返しサイクルにつながります。変化を表す新しいアプローチを提供する必要があります!

@fuzzy、ここでタイムラインを短くし、タイトな反復を行うことで、スクラムスタイルに非常に近づきます。この答えは、このすべてを1つの長い「滝」として実行する必要があると言っているようには見えません。
匿名の臆病者

いずれにせよ、「みんなをまとめる」と「新しい」契約に至る部分をご覧ください。短い反復で物事を行うことと、クライアントを「所有者」(および責任ある優先順位設定者)にすることはおそらく最善の方法です...しかし、クライアントを起動せずに「外出」することは決してできないかもしれません。 。
匿名の臆病者

3
@fuzzy-OPが1つのことを変更した場合、OPはより良い見積もりを行うことができると思います-真実ではなく聞きたいことをクライアントに伝えることで、間違いを埋めたいという彼の願望。私の経験では、プログラマーが1つの最大のエラーを犯すのは、彼らが真実だと信じていることをマッサージして、彼らが真実であることを望んでいることをより密接に表現していることです。
Jon Hopkins、

計画を立てるために提案された「計画」は、これまでのところ失敗したことを考えると現実的ではないと思います。「計画」とは、プロセスを変更して計画を立てることだと思います。今週最も重要なものをあなたに届け、次に来週最も重要なものを届け、顧客にその責任を負わせます。モノリシックにすることで、これは「計画」です。計画は、同じ失敗を再びセットアップするだけです。あなたは、彼らがそう過去にすることができていない、私はOPがそのキーの事まで生きることができるとは思わない「重要なのは正確である」と言う、それはそもそもここではそれらを得たものである

6

最善の方法は、自分の失敗について率直に率直に連絡し、義務から解放されるように礼儀正しく尋ねることです。

それはあなたや顧客が彼らのすべての欠点を指摘するのを助けません、そしてあなたはあなたに掛かる義務がなくても気分が良くなります。

ハードノックの学校での苦痛なクラスとしてこの経験を取り入れ、次の顧客のためによりよく準備してください。


私はあなたの答えが本当に好きです。私が私たちのオフィスの唯一の開発者であるという事実がなければ、そうしたでしょう。
user17971

2
あなたは顧客に対して最初の約束をしたと思いました。あなたは従業員ですか、それとも自営業ですか?あなたが従業員である場合、あなたの会社はあなたが通り抜ける必要があるであろう契約上の義務を持っているかもしれません。
John Weldon

私は従業員です。お客様への最初の約束はしていません。すでに約束をフォローアップしようとしているだけです。
user17971

5

私は前にこのような状況で立ち往生したことがあります。

約束の後の約束、これは私自身の責任です。さまざまな理由により、次の期限を逃しました。私の代わりに楽観的な計画を立てている、病気の子供、その他さまざまな個人的な問題です。

彼らのビジネスはこれを行う必要があり、あなたは約束ごとに約束を破っています。過度に楽観的な約束をするのをやめる必要があります。このような状況になったとき、お客様との信頼を取り戻すのは非常に困難です。ビジネスで働くとき、あなたの評判は非常に重要です。見積りをするつもりなら、ヒットする必要があります。あなたの子供/家族が将来病気になった場合、配偶者や他の家族のように彼らの世話を手伝ってくれる人がいますか?「言い訳なし」の未来に向かって移動してください。

もちろん、いくつかの問題が発生しましたが、今日、お客様に電話をかけようとしたところ、電話が切れて、どのメールにも返信していませんでした。

彼は言い​​訳ではなく結果を望んでいます。彼はまた別の言い訳を聞きたくなかったので電話を切りました。プロジェクトを軌道に戻すために何ができますか?このプロジェクトを完了するために何ができますか?そもそもどうやってこのプロジェクトに参加したのですか?

もし私があなただったら、今日は時間をかけて、このプロジェクトを次の人に渡すためのドキュメントを準備する予定です。

私が引き継いだシステムは、使用する準備ができていたと思われていましたが、まだ準備が整っていませんでした。

私もこのような状況にありました。将来的には、これを説明するために多大なエネルギーを費やすことは絶対にしないでください。前の男がなぜそれを未完成の状態のままにしたのですか?

そして、顧客側にも障害がありました。私が彼らの肩越しに見守るときだけテストするなどです。

これは、あなたのように私が行き詰まっていた最新のプロジェクトの最も苦痛な部分の1つでした。主題の専門家(この夏引退予定)は何も文書化していません。そのため、ほとんどのバグは、この男との会話の不完全な記憶に起因しています。さらに、彼はすべてのものを秘密にして自分を不可欠なものにすることに慣れており、その習慣は、この2年間の仕事で揺さぶるのが非常に困難でした。

その他の重大な失敗は、テスト環境がないことでした。過去1年間、テストされるすべてのコードは、エンドユーザーによってQAされる実稼働環境に直接昇格されました。

最終的な状況は、この連邦政府機関には誰かを雇う予算がなかったということでした。私はこのプロジェクトを完成させて、私の友人を訴えられないようにしました。最終的に、彼らは私を手放し(yippie!)、別の(まだ資金提供された)プロジェクトで働いている誰かを使用しました。私が関与するまでに1年以上遅れました。プロジェクトの予算は2倍になりましたが、その予算は私が関与するまでに撮影されました。

今後は、より適切な見積もりを行う方法を学ぶ必要があります。PSPで推奨されている日記のようなもの()。このプロジェクトは失敗です。また、あなたは個人的な友人と物事について話し合うことを望むかもしれません、それらのどれもがこのような将来の失敗を助けるスキルと帯域幅を持っていますか?次回、頭を抱えたとき、この失敗を繰り返しますか、それとも次回、失敗を緩和するためにできることはありますか?


顧客にビジネスの視点を与えることに対して賛成です。
David Thornley、2011

私がこの種のトラブルに直面したのはこれが初めてです。私がうまく管理している他のプロジェクトがあり、以前は問題なくさまざまなプロジェクトを管理してきましたが、これらの問題は一度もありませんでした。私にとっての主な違いは、このプロジェクトは現在大規模に実行されており、多くのコードと多くの依存関係がある本当に大きなプロジェクトであり、おそらく私が今まで見た中で最も複雑すぎるプロジェクトです。
user17971

3

お客様が使用/実装するソフトウェアを作成した場合、お客様はそのソフトウェアの料金を支払い、要求に応答する責任があります。クライアントが問題の手を洗ったように聞こえるので、この問題について法廷に行く準備ができていない限り、あなたはこの問題を席に着くことになるかもしれません。

ドキュメント、契約、書面による要件、期限、納品、不足が必要です。あなたが契約を満たすためにあなたのデューデリジェンスをし、顧客がしなかったことを示すことができるなら、あなたは何かを持っています。できない場合は、「彼はこれを行うために私にお金を払うと言ったので、私はそれをしました、そして今彼は私の電話を返しません」です。

私があなたに勧めるのは、この顧客の秘書/アシスタント/彼との面談をスケジュールするためにできることなら何でも連絡することです。彼の時間を無駄にしないでください、茂みの周りを殴らないでください。彼がこのプロジェクトに取り組むために提供した機会に感謝し、期待にいくつかの不足があったことを認識していることを彼に伝えてください。言い訳や気まぐれな議論で問題を曇らせないでください。彼らはあなたを長期的に怒らせ、何もしません。

これを希望どおりに進めるために必要なアクションをお客様に尋ねます。あなたの能力、ステータス、可用性、すべてを考慮してください。あなた自身に正直であれ。あなたがコスト/時間/その他まで思いついたものは何でも、それを倍増させなさい。それが妥協の範囲内に収まらない場合は、餌と部分的な道を切る必要があります。

これはおそらくお客様がかなりのことを考えているように聞こえるので、確かな結論ですが、それは学習体験に変えることができます。この種の契約に関するさまざまな問題について、多くの追加準備が必要なようです。

  1. 書面で入手してください。署名してください。顧客が実際に望んでいるものを見つけ、それを書面で入手します。
  2. 途中で変更がある場合は、変更内容をドキュメントに書き込み、クライアントに読んで署名してもらいます。成果物、タイムテーブル、コストの変更を含めます。
  3. あなたの時間をよりよく推定することを学びます。特定のタイプのプロジェクトをいかに迅速に開発できるか、時間を浪費する必要のある顧客、それを浪費する不注意な顧客をどのように認識するかを本当に知る必要があります。
  4. 時間とリソースをより効果的に割り当てます。プロジェクトを見積もるときは、何かをするのにかかる時間をできるだけ正直にしてください。わからない場合は盗聴してください。結果がどうであれ、それを2倍にします(または少なくとも半分にします)。これにより、糞が振動する空気変調器に当たったときに、ゆらぎの余地が与えられます。
  5. 気晴らしの少ない静かで邪魔されない作業エリアを手に入れましょう。まるで自宅で仕事をしているようです。この時間は、まるで企業のオフィスにいるかのように扱う必要があります。あなたが「仕事中」であるとき、あなたは仕事中です。あなたの妻は他の部屋にいない、あなたの子供はあなたの隣の床に座って注意を叫んでいない。この基本的な作業ニーズを満たせない場合、誰かの期待に応える準備ができていません。
  6. 顧客をより賢く選ぶ方法を学びます。彼らと会って、彼らの行動を観察してください。それらに応答し、それらの反応を評価するための小さな情報を提供します。喜ばせることができないクライアントは、見つけるのが最も簡単です。テーブルには何もないので、ランチでこれを見つけることができます。要求が厳しすぎるクライアントは、本来あるべき以上にあなたの電話にいるでしょう。応答しないクライアントは、明らかにあなたのサービスに興味がないか、ビジネスのその領域を改善していません。これらのクライアントは、正式にダンプする必要があります。子供っぽくしないで、単純明快です。既存のすべての契約を尊重し、将来の契約をすべて拒否します。「私には、あなたの継続的なニーズを満たすためのリソースがありません。」と率直に理由を示してください。
  7. これが避けられない顧客側の繰り返し発生する問題(無反応、未払いなど)である場合は、近くの回収代理店(どこにでもいる)との関係を構築します。アカウントを開設し、友達を作りましょう。デッドビートに頼ることができるサードパーティを持つことは、非常に便利なリソースです。
  8. あなたが職業に従事するつもりなら、専門的である。ビジネスの世界では、病気の子供や個人的な問題はありません。それは冷静な発言ですが、それは事実です。私たちはグミベアやキャンディーバーではなく、お金のために働いています。

私が将来お勧めできる最後のことは、自分に正直であることです。あなたが専門的な方法でクライアントの要件を満たすことができない場合は、それを試みないでください。漏れのあるシンクを修理するために配管工に電話をかけるとき、彼の病気の子供たちや、修理に7時間かかることを知らなかった方法については知りたくありません。直して欲しい。もし彼が私のパイプの中でうろついているだけでなく、それが必要であったことを彼が私に示すことができるなら、私は余分な時間の支払いをします。あなたの顧客は期待を持っています。5月1日を約束した場合、5月1日にそれを行います。クライアントからの何かが邪魔になったら、クライアントの要求のために日付がプッシュバックされることを書面で受け取ります。書面で入手してください。何か問題がある場合は、修正してください。問題が発生し、締め切りに間に合わないことがわかっている場合は、正直にそれを認めます。次に、何らかの割引を提供する準備をします。


これはかなり厳しいと思います。私は理論的にはあなたに同意しますが、これほど明確なものになることは決してありませんが、特にあなたがプロジェクトの唯一の開発者/プロジェクトマネージャー/テスター/アカウントマネージャーであり、事態が発生した場合は直接的な影響があります。厳しい言葉ですが、私が読んだり聞いたりする必要があると思います。+1
user17971

@ user17971-かなり厳しいです。しかし、あなたの質問で私が読んだ2つのことは、それが必要かもしれないことを示しました。クライアントはあなたに電話を切っており、あなたは言い訳をしているように見えました。そこに行ったことがある。同様の理由でクライアントを失い、同様の率直さで私を癒してくれたのは経験豊富な請負業者でした。私は以前の開発者から(恐らく独立して、そして会社で働いている間に)多くの恐ろしい状況を受け継いでおり、これらの概念は私にそれらすべてを再充電する力を与えてくれました。
Joel Etherton、2011

2

私はまったく同じ状況にあります。私が提供できる以上のことを望んでいて、毎週期待を変えていた顧客がいました。最初は簡単な仕事でしたが、多くのことに取り掛かりました...私は多くの睡眠を失い、私の人生の他の側面に大きな影響を与えました。

あなたができる最善のことは、それをシャットダウンして次に進むことです。プロジェクトの失敗は時々発生するだけであり、両方の当事者が兆候を認識し、それを早期に発見することが最善です。それがあなたの私生活に入り始めたら、それは行き過ぎです。

それから学び、繰り返さないようにしてください。あなたはずっと幸せになります。


OPがこの状況から「先に進む」ことができるように、OPを「シャットダウン」する最良の方法は何でしょうか。
クリス

1
「やめた」多分?または「ストレス休暇」?私の状況では、そのクライアントはひどい(そして本当に安い)ので、「私は辞める」を選びました。
WalterJ89、2011

1

お客様に何が欲しいか尋ねます。現在の契約に該当する場合はそれを行い、それ以外の場合は契約を再交渉します。どちらの方法でも、顧客がサインオフしたドキュメントで顧客が実際に何を望んでいるのかを明確に理解し、後で必要なものを見逃したとは言えないようにします。


1

私が見ているように、ここでの重要な要素は、要件が合意されていないことです。

お支払い方法がわかりません。それが固定価格契約であり、柔軟な要件がある場合は、頼りにならない可能性があります。あなたが何を提供することになっているのかについての明確な書面による合意なしに、あなたがXの金額を支払われる契約に決して入らないでください。このようなことをする必要がある場合は、プロジェクトをフェーズに分割し、フェーズNがサインオフされるまでフェーズN + 1を実行しないでください(実際に支払われていない場合)。常にお客様の責任とお客様の責任を指定してください。

この場合、前任者は契約の再交渉なしで追加の要件を受け入れたようです。それは良くないね。プロジェクトが合意された要件を満たしている場合、契約への変更の一部として、プロジェクトへの追加について交渉する必要があります。必ずしもそれ以上充電する必要はありませんが、明らかにこの場合、期限をリセットする必要がありました。

固定価格または完了日がない限り、柔軟な要件を持つことができます。

見積もりの​​問題は業界では一般的ですが、それらから学ぶようにしてください。予期しない問題がかなり頻繁に発生するため、ベストケースの推定値を誰にも与えないでください。


私はプロジェクトを引き継いだときに彼らに契約に同意してもらいましたが、彼らはすでにこのリストを作成しているため、彼らはこれを受け入れることを拒否しました。数週間後、私はこのリストをExcelシートで見つけました。非常にあいまい/詳細不明の要件。特にこの顧客に対して、私の信念やプロジェクト管理を行う方法の多くに我慢できなかったことは毎日残念です。
user17971

1

より優れたプロセス、特にアジャイル手法、SCRUM が必要です。透明性を向上させ、顧客を利害関係者とチームメンバー、さらにはテスターをチームメンバーにすることで、顧客とのやり取りを強制します。開発者だけでなく、全員が配信の責任を負います。

それはより短い配達サイクルを可能にし、そのようにあなたが見逃して締め切りに行くとき、それはたった1または2週間のスプリントであり、あなたと顧客の両方はあなたがスプリントの終わりの前にそれを見逃すだろうことを知っています。

失敗する場合は、1〜2週間の単一のスプリントのみを計画しているため、遅くて大きくなるのではなく、すぐに失敗します。

SCRUMはまた、納品の最終的な受け入れを製品所有者(顧客)の責任とします。つまり、彼らが要件を変更し続けるかどうか、遅延を引き起こしているすべての人にとってそれが透過的でなく、十分に文書化されていることを意味します。

新しい機能に取り掛かる前に、より多くのものが100%完成し、テストされ、受け入れられます。100個の機能のリストがあるとします。顧客は何に満足しますか?

最も重要な機能の80%が100%完了し、テストされ、バグのないものとして受け入れられましたか?

または

すべての機能の100%が80%完了し、テストされておらず、バグがありますか?

SCRUMのようなプロセスでは、お客様(プロダクトオーナー)が機能の優先順位付けを強制されるため、お客様は現在のSprintに求めているものだけを提供します。プロダクトオーナーにとって最も重要な作業が最初に行われ、それほど重要ではない他のことは決して行われない可能性がありますが、顧客の決定ではそれは価値がありません。


私はこのプロジェクトで唯一のリソースです。SCRUMを行うことは、そのことを考えると難しいです。..私はいくつかの責任を受け入れるように顧客を取得しようと、いくつかのアジャイルメソッドを使用するのですが、それは挑戦している
user17971

1
プロジェクトの唯一の開発者であることは、プロセスをさらに重要にし、交渉の立場を提供します

1
はい。私は非常にプロセス指向ですが、何らかの理由でこのプロジェクトは独自の人生を送ることに決めています。あなたの洞察をありがとう、あなたは私が聞く必要があるものを正確に言っています。
user17971

1

それから学ぶ。時間の見積もりを出すことについて私が得た最高のアドバイスは、あなたがそれがかかると思うものを計算し、それを2倍にし、10%を加えることでした。:)

おめでとうございます。ソフトウェアプロジェクト管理の貴重なレッスンを学びました。あなたが顧客を満足させることに夢中になるのを避け、最終的に顧客をさらに怒らせるようにしてください。

これはソフトウェア業界に固有のものではありません。レストランに行って、サーバーが食べ物を運ぶのに1時間かかったとしたら、どうなると思いますか。そして、あなたがそれを得たとき、それはあなたが期待したものではなかったのですか?値引きや謝罪が必要だと思いませんか?

できることをクライアントに提供し、先に進みます。時々それが唯一の選択です。

編集:私は最近、顧客の不満を減らすためにスクラムまたは他のアジャイル方法論を調べます。


0

それを学習体験と呼んでください。次回、ユーザーがあなたの要件を変更しようとしたときに、タイムラインを再交渉し、それを書面で取得します。

正当と思われる場合は、請求書を送信できます。聞こえないようです。


実際、彼らはプロジェクトに何も支払いません。彼らはアプリケーションの毎月のライセンス料を支払いますが、それは今度は給与の支払いさえしません。
user17971
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.