「品質のカルト」を作成する方法[終了]


21

DeMarco and Lister(Peopleware)は、プログラミングチーム内で「品質のカルト」を作成することをお勧めします。不満なことに、彼らはあなたがそれをどうやってやろうと提案していない!

誰もこれを達成する方法について考えを持っていますか?


1
あなたの「品質のカルト」は、時間が許す限り効果的です。上司が「金曜日までにやらなければならない」と言ったら、スピードのために品質を落とさなければなりません。明らかに、これはコーダーが好むものではありません。理想的には、品質を確保する時間を好む!
反転

1
@WesleyWerner:良い点。しかし、「品質のカルト」は技術的な負債の世話をすることも受け入れるべきだと思います。それはあなたが言及するボスの問題を(最終的に)解決するでしょう。
タロンクス

@invert:私は通常、このような場合に、ここでCAP定理に類似した状況があると答えます。私たちには品質、スピード、人材があり、彼は2つを選択できます。
JensG 14年

回答:


37

私の経験では、開発チーム(ただし、一般的にはどのチームでも)は3種類の人々で構成されています。

  • 品質のためにドライブを内蔵しているもの、
  • お金(ビール/女の子/何でも)のためだけにそこにいて、あなたが彼らを動機付けようとしてもそれほど気にすることができなかった人々、
  • 「平凡な」もの(より良い言葉がないため)。

最後のグループは最大であり、与党に追随する傾向があります。チームに十分な質の人がいる場合、彼らは自分自身で大多数を引き寄せることができ、チームの精神とモチベーションの強力な上昇スパイラルを作成します。ただし、スラッカーが多すぎると、逆の効果である死のスパイラルが簡単に作成されます。

マネージャーにとって一番のタスクは、適切な人選択して維持し、悪い人をできるだけ早く取り除くことです。「平凡な」ものではありません-彼らは改善を開始し、他の人の良いアイデアをサポートするために影響を受ける可能性があり、そのうちのいくつかは最終的に自分自身でポジティブなトレンドセッターになることさえあります。

[Update2] Albの答えを反映して:IMOはチーム内で質の高い開発者が大多数を占める必要はありません(ただし、害はありません:-)。あり、「トレンド設定閾値」サブグループの見解や行動が迅速コミュニティ内の「主流」になることができた上に、他の人々は、予告を取るとフォローを開始しては、。これは、より大きな社会での仕事で常に見ることができます(例:(非)喫煙習慣、健康と食事、ポップ流行、オーガニック食品)。私の非常に大まかな見積もりは、25〜30%程度になる可能性があることですが、多くの要因に依存します。これは、悪い人が多くの人を傷つけることができる場所です。チーム内の数人の悪い人でも、そのしきい値を大幅に上げることができます。[/ Update2]

もちろん、トップの人を十分に雇うことは常に可能ではありません。そのため、最初の派theが単独で物事を推進するほど強くない場合、経営陣は彼らを助ける必要があります。これに関するいくつかの考え:

  • スクラムには、製品デモでこれに対する良いアイデアがあると思います。チームメイトだけでなく、他のチームの開発者、管理者、さらにはアプリのユーザーで構成されるオーディエンスの前で実装した機能を実証することは、大きな誇りの源であり、チームを支援する強力な要因にもなります。

  • もう1つは、経営陣が品質に関して開発チームに真剣に耳を傾けることです。デマルコとリスターは、開発チームが本番に移行できるものについて拒否権を持っている企業/部門があることさえ言及しています。アプリのプライムタイムの準備がまだ整っていないと感じた場合、管理者が何を望んでいるかに関係なく、リリースを延期できます。これは経営陣にとっては難しいですが、チームの精神を構築し、言葉のレベルだけでなく、ここで品質が本当に重要であるというメッセージを強く伝えると想像できます。

  • これは次の点につながります。「品質のカルト」を作成するには、経営者はほとんどの経験豊富な開発者がすでに知っていることを徹底的に理解する必要があります。品質は後からではなく、最初から製品に組み込む必要があります。したがって、人々は、長期的な保守性について考え、迅速な解決策ではなく、優れた解決策を追求することを奨励する(そして報われる!)必要があります。

更新

@Machadoは彼のコメントで(少なくとも私には)質問に新しいひねりを加えました:

チームのコード品質を改善するために、マネージャーではなくチームメンバーとして私ができることは何ですか?

いくつかの考え:

  • 学習を続け、聞いている人に知識を広めてくださいベストプラクティスを学び、使用する専門分野のます。
  • 仕事を誇りに思う
  • これら2つは、ほぼ自然に、他の人、特に新人と後輩の前向きなロールモデルになります。これを意識し、チーム全体の利益のためにあなたの役割を活用してください。他の人に影響を与える最善の方法は、前向きな例です。
  • コードだけでなく、ソフトウェア開発のプロセス全体を見てください。開発プロセス最適化するために質問を続け、フィードバックを提供し続けます

最後になりましたが、「トップガイ」になれる場所を見つけましょう。もしあなたが今「平凡な」グループにいるのであれば、あなた自身の成長に努めてください-うまくいけば、上記のアイデアがその助けになるでしょう。しかし、現在のチームの「下位層」にいる場合は、理由を分析することをお勧めします。あなたをやる気にさせるのは何ですか?悪い労働条件?チームメイト?管理?仕事の種類?そして、あなたを興奮させ、興味を引くものは何ですか?同僚や上司に相談する必要があるかもしれません。または、より良い仕事を探す必要がある場合があります-または、新しい職業でさえ-あなたが輝くことができる場所。人生のかなりの部分を不満や憂鬱な活動に費やす価値はありません。

また、外部要因(雇用機会の不足、請求書の支払いなど)により、現在の最適ではない仕事を続けることを余儀なくされることもあります-それは時々起こります。この場合でも、それを最大限に活用してみてください。質の高い仕事を(状況が許す限り)生産すること自体が報酬であり、それはあなたの自尊心を維持し、長期的に健全でオープンに保つのに役立ちます。したがって、より良い何かのための機会が現れたとき、あなたはそれをとる用意ができています。


4
危険なアドバイス。OPが2番目と3番目のグループに属している場合はどうなりますか?;)

1
素晴らしい答え、私はこのようにそれについて考えたことがなかったが、それはとても理にかなっています。
-Alb

9
@Developerであれば、DeMarcoとListerを読んだり、ここで質問したりしません。
アルプ

私は、質問がチームメンバーの観点からより直接的であると思った。経営陣が本当に品質を求めている場合、彼らはトップ/コア開発者の意見を聞きます。チームのコード品質を改善するために、マネージャーではなくチームメンバーとしてできることは何ですか?
マチャド

1
@Thorbjørn、素晴らしい質問!私はこれまでのところ、ほとんどの職場でこれを見逃していると認めています。あまりにも自己強調しすぎないように、私は常に尊敬し、学ぶためにチームメイトを探していましたが、めったに見つかりませんでした。それで私は本とインターネットに目を向けました。可能な限り、私はロール・モデルをマーティン・ファウラー、アンクル・ボブ・マーティン他で見つけました。そして最近SOコミュニティで!それは学ぶべき素晴らしい場所です。また、強力な「現実チェックプロバイダー」です。自分の知識の限界とギャップを明らかにする謙虚な経験は理解するのが難しいかもしれませんが、私にとっては非常に健康的です。
ペテルトレック

2

PéterTörökが答えたのは、多くの善良な人々だけがこれを管理できるということです。優秀な人材ができたら、スティックよりもニンジンのアプローチをより重視する必要があります。開発者に力を与え、プロジェクト/タスクの所有権を奪い、品質の面で競争を促し、プロジェクトの品質をどのように改善したかについて人々に短いプレゼンテーションをしてもらいます。優れた開発者は、仲間に感銘を与えるように動機付けられます。


動機についての良い点を+1。私は多数派に関して明らかに誤解していた。答えを更新して明確にしました。
ペテルトレック

2

加えて、ピーターのコメント(本当に問題の核心です)、あなたは品質が後から追加された機能ではありませんことを確認する必要があります。

すなわち:

  • 「後でクリーンアップします」という考えの痕跡を削除します。代わりに、正しい方法で実行されるように最初から努力してください。
  • 変更をレビューし、開発者以外の誰かが関与する何らかのQAプロセスを通じて作業することを要求します。
  • プロジェクトの初期段階で品質についての考えを強制します。開発中は、「他の人がこれを簡単に維持できるようにする」などのことに焦点を当ててください。
  • 発生したバグを追跡して報告します。傾向がある場合は、バグの根本原因と戦う方法を調べてください。
  • ソフトウェアを改善できるクラフトであり、クリエーターが誇りに思うものとして考えてください。

1

最善の方法は、出力よりも品質を高めることです。これは、(リーン製造に基づく)リーンソフトウェア運動の前提の1つです。Leanとは何かを説明する長いブログ記事を書いた。質の高いカルトを作成する方法を説明します。従業員に投資し、会社に投資させる(金銭的投資ではなく、個人的な投資)。

ダンピンク与えたTEDで素晴らしい話私たちを動機についてを。彼は特にそれを参照していません。マズローのニーズの階層は、観察された現象を完全に説明しています。雇用主が最初の2つのニーズに対応している限り(つまり、お金が問題にならないように十分なお金を支払う)、残されているのは所属、尊敬、自己実現だけです。

  • 所属のための強固なコミュニティを提供します。
  • 成果を上げたときに尊敬を集めることができるように、従業員が間違いを犯すことを自由に感じる環境を提供します。
  • 開発者に手綱を渡して、自己実現のための重要な決定を下せるようにします

品質は決定できるものではありません...むしろ有効です。従業員が最善を尽くして信頼できるようにしてください。最終的には、彼らが去る必要があると彼らに告げなければなりません。もっと時間をかけるように頼むのではなく

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