「失敗」プロジェクトが実際に「成功」​​した場合の対処方法


14

あなたが取り組んでいるプロジェクトが明らかに不十分に構築されており、将来失敗し、維持するのが悪夢である状況にあった場合、あなたはどうしますか...しかし、それはクライアントによって幸せです?

私は気にしないでください?クライアントは、これよりも優れたアプリケーションを使用できることに気づいてさえいませんか?

どの時点でそれを正しく構築することを気にするのを止めて、ただ流れに行くのですか?

回答:


37

クライアントが満足しているなら、あなたは正しいことをしている。多くの人々は、彼らがどのように作られているか知らずにホットドッグを楽しんでいます...

アプリが問題の優れた解決策であるが、基盤に欠陥があることが心配な場合は、製品を更新するときに、物事を徐々に改善し、それらの改善を実装する計画を提案する方法を見つけてください。増分が重要です。もしあなたがその全体を書き直したいなら、あなたのマネージャーはそれが不合理だと正しく言うでしょう。完璧は善の敵になりえます。NetscapeがNavigatorを「書き換えた」ためにIEをリードさせたというjwzのストーリーをご覧ください

アプリのUI自体が混乱している場合、クライアントはそれを「難しい方法」と比較し、バグのあるプログラムでさえそれよりもはるかに優れている可能性があるため、まだ満足しているかもしれません。あなたはそれをあなたのバックグラウンドとスキルのために想像できる理想と比較しています。繰り返しますが、物事を少しずつ改善する方法を検討し、計画の一部として提案します。

思いやりをやめないでください。あなたは自分の仕事を最高のものにしたいのです。ただし、請求書を支払うのは顧客であり、あなたはソフトウェアを書いているのであって、あなたではないことを覚えておいてください。


ちょっとロバート、そのリンクを追加してくれてありがとう。私は自分のiPhoneで入力していたので、コンテキストスイッチで検索したくありませんでした。
ベンザド

1
関連:ジョエル・スポルスキのザ・ダクトテーププログラマZawinskiの応答
ベンザド

また、jwzのGroupware Badです。(すべてのリンクについては申し訳ありませんが、私は今それらを読み直して楽しんでいます...)
ベンザド

私は20年以上前のソフトウェアに取り組んでおり、その使用期限をかなり過ぎており、(20年前の標準であっても)不十分に書かれていました。(「このコードは犬の朝食です-今は夕食の時間です」は記憶に残る引用です)維持するために大金がかかる場合-必要なものの10倍ですが、競争への参入障壁は非常に高いため、顧客はそれを支払うだけです。代替は、同様のソフトウェアとコスト構造を持つ編集者です。それはお金を印刷するためのライセンスであり、それがビジネスを書くソフトウェアが技術的な卓越性のためにやっていれば破産する理由です。
-mattnz

4

それは彼らにとって悪夢ではありません。それはあなたにとって悪夢であり、彼らはあなたが何をしているのか知っていると思うようですので、それは修正されます。プログラミングを理解していない人は、あなたのアプリが実際よりも悪いと思うでしょうか?これは例外ではありません。できる限り楽しみましょう。クライアントがこのアプリを上回ることを願っています。彼らは、ビジネスとしては別の方向に進んでしまい、まったく役に立たないかもしれません。あなたが考えているのとは全く異なる理由のためにそれを書き換えることができます。


3

たとえ上級管理職が止まったように見えても、あなたは決して思いやりを止めるべきではないと思います。この経験から得られる重要なことは、あなたが間違っていたと思うすべてのことを覚えて記録することだと思います。これらの間違いを将来回避することは、この現在のマネージャーのグループではなく、おそらくあなたが働いている次のマネージャーのグループではないにしても、最終的に認識されるでしょう。


2

コードの品質を向上させるためのリファクタリングを含む開発の次のステップのアイデアを提示し始めます。技術的な詳細に深く入り込むことは避けますが、提案する修正顧客満足度の継続を意味することを指摘してください。経営陣は常に新しい商品を探しているため、クリーンアップと新機能を組み合わせる準備をしてください。

一般的に、クライアントは何かがうまくいかなくなるまでメンテナンスを気にしません。理想的には、あなたの会社はその評判を気にし、コードを維持することでそれを保護したいと思うでしょう。

ただし、この製品が非常に短期間であると見なされる場合、実際にそれを行うことに付加価値がない場合があります。その場合-安価な修正を探してください-開発者の健全性に大きな価値がある、労力の少ないもの。


2

あなたはしません。成功を利用して資金調達/許可/購入を確保し、技術的に正確で維持しやすいリファクタリングを開始します。または、成功を利用して「古いコードベースを維持する」部門から昇進させます。


0

おそらくあなたの優先順位/視点が間違っています。

ソフトウェアプロジェクトで最も重要なことは、ユーザーの要件を満たすことです。

これは、今月のC / Sデザインのファッションによると、「正しい」ことよりもはるかに重要です。

はい、正しい設計パターンを使用し、テクノロジーを正しく使用するなどしてください。ただし、堅牢で保守可能な方法でユーザーの要件を実装しやすくする場合に限ります。

ビジネスニーズを実際に満たす、本当にひどく記述されたシステムは、誰も望んでいない、または使用する理由がない、美しく文書化された美しく文書化されたコードよりも常に優れています。


0

現在のユーザーとコミュニケーションをとり、改善が必要だと思う側面を尋ねてみてください。次に、改善が必要だと思われるいくつかの側面を改善し、ユーザーが提案した側面も改善できます。「ユーザーが提案した改善を実装するために必要」として改善を正当化できます。

例:ユーザーが検索機能が遅いと思う場合。単なる検索以上のものを提供するより優れたデータレイヤーを作成することで、それを改善できますが、費やした時間を正当化できます。

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