ずさんな企業文化を変えるにはどうすればよいですか?[閉まっている]


28

解決する必要がある問題があるとき、それを解決する最も簡単な方法は、小さなプログラムを個人的なツールとして書くことです。使用するのは私だけなので、使いやすくしたり堅牢にしたりすることはありません。

その後、同僚はプログラムを見て、同じ問題にぶつかり、ツールが役立つ可能性があるため、それを要求します。私は彼に「それはきれいではないが、仕事をやり遂げるだろう」という免責事項を与え、彼にそれを手に入れました。

私が知っている次のことは、上司が私に電話して、クライアントのコンピューターでソフトウェアを動作させようとしているが、Xエラーメッセージが表示されていると言っていることです。WTF ?? そのソフトウェアはリリースの準備ができていません。また、リリースの準備が必要だとは言われませんでした。しかし、何らかの理由で、上司はそれが十分であると考え、元の開発者に伝えることなくそれをリリースしました。

現在、この特定の問題はを使用して簡単に修正できますMessageBox.Show("DO NOT GIVE TO CLIENTS!");。しかし、この問題はより深い問題を示しています。当社の企業文化はずさんです。ずさんなソフトウェアは問題ありませんし、ずさんなプロセスは問題ありません。将来について心配する必要はありません-現在はほとんど動作しないように十分な努力を払い、バイナリを.zipファイルに入れて、出荷してください。政府の仕事には十分です。

これは、10人の正社員を抱える小さな会社で、成長を続けており、しばらく前から存在しています。誤解しないでください。ここで働くのが大好きで、会社が大好きです。走るように言わないでください。私は会社をより良くするための一部になりたいです。この種の文化にどのように良い変化をもたらし始めますか?


8
「魚が頭から臭い!」と言った古いロシア人!

3
プロセスが実装されることを保証できるのは、大規模なコックアップの後です。フォールアウトの一部は、クライアントがプロセスの再確認を要求し、それが再び起こらないようにすることです。経営者がこのようなことが起こっていることを発見すると、すぐにいくつかの光沢のある新しいプロセスが導入されます。たぶんあなたはコックアップを設計することができます。冗談で!真剣に受け取らないでください:)
ポールTデイヴィス

これはアプリケーションではなくテスト(ユニットまたは統合)である必要があるように
思え

2
私はあなたを怒らせたくありませんが、あなたは自分でずさんな文化に貢献していますか?クライアントとチームメンバーの両方が経験している問題について話している場合、おそらくあなただけが持っているオフカフツールは、最もずさんなソリューションではありません。
ダン・オルソン

@DanOlsonまったくその通りですが、当時はクライアントがそれを必要とすることを知りませんでした。持っていたら、本格的なソフトウェアプロジェクトに変えていただろう。
フィル

回答:


20

変更する唯一の方法は、他のすべての人に、ずさんな文化の欠点を見てもらい、おそらくもっと重要なことには、それを修正するために経営陣の賛同を得ることです。しかし、実際にはそれは起こらず、変更することはできません。それはあなたが聞くことを期待していた答えではないかもしれませんが、5年かそこらでいくつかの仕事でずさんな文化を変えようと試みて失敗した後、私はいくつかの権威で、通常は努力する価値がないと言うことができます。

最初のステップは、だれかがそのずさんな文化を知っているか気にしているのかを見つけることです。あなたが問題を見る唯一の人なら、あなたの努力は無駄になります。


経営陣の賛同を得るために+1。私は、より高い当局が先に進んで何かをする圧力をかけなければ、ほとんどの人々は彼らが現在しなければならないことを変えて固執することをいとわないでしょう。
-dreza

@drezaと同じ理由で+1。しかし、経営陣の
賛同

8

同僚や上司と座って、あなたが持っていたものがプロトタイプであり、クライアントが使用する準備ができていなかったことを説明する必要があるかもしれません。クライアントが使用できるように準備したい場合は、十分な時間を与えて変更を加えることができますが、「迅速で汚い」ものを受け取って顧客に渡さないでください。何かがうまくいくからといって、学ぶための教訓としてそれが良いとは言えません。あなたは免責事項を与えましたが、それ以外の場合はこれが起こる可能性があるとして、それをいくつかの敬意を与えるために言われることがあります。


5
OPとして、なぜこれが否決されたのかについて説明したいと思います。
フィル

4
言うまでもなく、迅速で汚れたものは、建物を離れてはならない重要な情報を保持できる(テスト用のハードコードされたパスワードなど)
ラチェットフリーク

3

あなたは愚かな修正することはできません。上司があなたのようなことをしているとしたら、それを変えることができるでしょう。特に彼が所有者ではない場合-覚えておいてください、彼は他の方向から来る圧力があり、その方向は彼の給料小切手に署名します。他の同僚と同じです。あなたがとることができる最善の最初の行動は、自分自身を守る習慣を身につけることです。説明したメッセージボックスなどの手法を使用します。すべてのメールを保管してください。書面でできるだけ多くを取得します。このように、あなたは愚かさが襲ったときに矢面に立たない。次に、昇進したときに、監督下の変更を使用して必要な変更を実施します。


同意する限り、それは結局悲しい戦略です。誰がそのような環境で働きたいですか?そのような文化は、長期的に静かに創造性を殺します。最大限の保護ではなく、できる限りのベストを目指してください。文化がこれ以上合わない場合は、次に進みます。
JensG

2

先日、同僚が私に、ラボのエンジニアがウィジェットに単一のコマンドを発行し、コマンドに付随する変数を変更できるようにする簡単なテストツールの話を話してくれました。これは現在9年前に書かれたもので、彼が最後に知っていたのは、今日でも使用されていることです。ラボで何かが機能することを証明するために、最小限のテストで数時間で作成されたツールは、エンジニアリングラボのテストツール全体の基礎となりました。コードを書くと、それは存在します。何か有用なことをして、他の人に見られたら、人々はそれを欲しがるでしょう。それが何をするのが得意であれば、人々はそれをXに依頼するでしょう。

最初の責任はソフトウェア開発者にあると思います。コードを見たりツールを使用したりする人が、それがプロトタイプであるか実稼働システムではないことを理解し、その理由を言うようにします。あなたはそれをしたように思えますが、あなたの同僚はその責任を果たすことを怠っています。これに対処するために、私は彼らに話すことをお勧めします。これは本番用のコードではなく、作業を容易にするためだけに書かれたものであることを繰り返します。彼らが便利だと思うなら、おそらくツールに取り組むか、ツールに取り組んでいる他の人々を支援して、ツールを強化し、生産により適したものにすることを提案してください。

組織のプロセスや文化が変化する限り、しばらく時間がかかることを期待してください。例を設定することから始めます。The Pragmatic Programmerをまだ読んでいない場合は、読んでください。クラフトを気にかける、変化のカタリストになる(人々にもっと良い方法を示す)、壊れたウィンドウで生きてはいけない、責任を負わないで問題を解決するなどのヒントに注意してください。これらのヒントで対処されたいくつかの問題を認識しているように思えるので、作業を開始し、同僚に例を示してください。


私はあなたに完全に同意します。私の考えは、コードを書くとき、できる限り書くとき、通常、悪いコードを書くのに同じ時間が必要です。品質は、プロジェクトの途中では得られないものです。
アンドレアギラルディ

1

意思決定者が不正なコードの結果を容認しなくなり、問題を解決する方法を支払ったり変更したりするまでは。

これらは、小規模で成長中の企業にとって難しい決定です。彼らはすべての努力をどこに置けばよいかわかりません。ビジネスルールと場合によってはすべてのビジネスラインが一晩で表示、変更、および非表示になると、コードが堅牢になりすぎるリスクがあります。

良いコードを書くよう努めてください。情報に基づいた決定を下せるように、すべての結果を必ず知らせてください。不正なコードが本番環境に置かれた場合、可能であればそれを注意深く監視し、特にビジネスのその部分が重要になった場合は改善を提案し続けます。

最小限の実行可能コードとみなされるものを待つようにすることは、現在の期待を超えているようです。


「最小限の実行可能なコードとみなされるものを人々に待たせることは、現在の期待を超えているようです」悲しいことに本当。
フィル

@Phil-そしてそれらのほとんどは、詳細に入りたくないだけです。将来、セキュリティを変更したり、より多くのユーザーを処理したりして、簡単に変更できるように誘惑することもあります。
-JeffO

1

ここでの問題の一部は、そもそも手早く汚いツールを書いたことだと指摘したい。確かに、正当な理由がありました。確かに、それは仕事をしました。しかし、私は、問題を解決するものはすべて、あなたがそれを伝え始めると、「十分な」解決策のtrapに陥ることを発見しました。

あなたの仲間がそれを望めば、それが完全に機能していないことを丁寧に彼に伝え、あなたは鍵を保持している。彼のために時々それを実行できます。または、できればプロジェクトの最初から追加機能を追加します。

この時点での私の手早くて汚いツールはすべて、厳しくテストされたスケルトンファイルから来ています。すぐに作業を開始でき、作業の開始点が提供され、必要な鈍いエッジをすべて追加することを忘れることができます。getoptsライブラリとその癖について心配する必要はありません。pythonを使用する場合、メモリ管理に関する詳細を覚えておく必要はありません。1つの単純なタスクと1つのタスクのみを実行するようにプログラムをビルドします。これにより、形状を曲げようとしているかどうかを簡単にテストできます。

最後に、有限状態マシンアーキテクチャを活用します。考えられるすべての状態に移行することがわかっている場合は、ユーザーがトラックをジャンプできないようにすることがはるかに簡単です。このパラダイムに従うために書いたプログラムがあります。任意の入力ファイルを受け入れ、バイト単位で読み取ります。クライアントがバイナリ実行可能ファイルを読み取るように指示しても、問題はありません。探しているものが見つからないため、内部バッファがいっぱいになります。それにより、正常にクリーンアップされ、閉じられ、それを見る必要があることをユーザーに報告します。


0

まあ、答えはプログラミングとはあまり関係ありませんが、ソフトウェアは質が良いかどうかを簡単に判断するのが難しいという点を除きます。

ソフトウェアの品質に影響を受ける人々はプロセスとはあまり関係がないため、人々はだらしないという本当の動機を持っていない可能性があるため、文化を変えることができないかもしれません。たとえば、クライアントは仕事をするためにソフトウェアを購入して使用する必要があるかもしれませんが、そのソフトウェアがどれほど効果的であるかについての個人的な利害関係はほとんどありません。競合するソフトウェアの方が良いかどうか誰も本当に知らないからです)。したがって、機能要求に応じるのに時間がかかりすぎず、バグがあるかどうかについてあまり心配する必要はありません。だから、あなたはすべて、結果なしであなたにかなりずさんなことができます(あなたに影響を与える決定をする人にとって)。

このようなことが当てはまるかどうかはわかりませんが、もしそうなら、文化を変えるのに苦労するかもしれません。

彼らがより良くなるなら、あなたは潜在的に彼らがなぜそうするのかを彼らに納得させることができるので、あなたはそれをより簡単にする時間を持つかもしれません。あいにく、ずさんなことがうまくいくような政治的状況がなければ、そもそもだらだらしないので、難しいでしょう。「いつか正しいことを必要とする仕事に就くかもしれない」という議論をいつでも試すことができます(おそらく、もっと外交的な言い回しで...)

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