チームメンバーにWebフレームワークを使用するように説得するにはどうすればよいですか?[閉まっている]


10

問題はこれであり、詳細は次のとおりです。プログラマとして、彼を私の側に連れていくために私が言える/育てることができるものはありますか?

私はこれについて双方の正当な議論を聞きたいですが、主に彼と話す方法についての提案です。


私の状況は次のとおりです。私は学位課程のチームプロジェクトに取り組んでおり、大学のプロトタイプとして中規模のウェブサイトを構築しています。グループ内のすべてが平等であると見なされ、指名されたリーダーがいないため、この問題の答えは「プルランク」にはなりません。

すべてが同等ですが、メンバー間の知識には大きなギャップがあります。問題のチームメンバーと私はどちらも有能な開発者ですが、業界での経験はありません。他の3人のメンバーは能力が低く、2人は完全に開発をオプトアウトしています。知識不足のため、3人とも状況についてコメントすることを拒否した。

私たちはグループとして、ウェブサイトの実装に使用するテクノロジーを決定します。具体的には、PHPフレームワーク(Code Igniter)を使用するかどうか。

私は賛成で主張して、引用します:

  1. 車輪を再発明しない
  2. うまく機能するように作成およびテストされたコードベース
  3. 始めましょう(締め切りは私たちが望むよりも近いです)
  4. 開発のスピード
  5. 健全で保守可能な設計パターンと優れた実践

彼は彼が慣れている方法で働くことを支持して主張しています:

  • 必要に応じて、オーダーメイドの1回限りの関数を「ライブラリ」ファイルに書き込む
    • データアクセスおよびページへのそのデータのレンダリング、セッションへのセッションの取得/設定、データの取得/投稿などの機能
  • ページごとに1つのファイルがあること(結果として、制御、表示、およびデータの間で懸念が分離されない)

彼がフレームワークを使用する理由は、主に彼が要点を理解できないことに基づいています。彼はそれらすべてのことをすでに行うことができます。フレームワークはそれを変えません、彼がフレームワークを学ばなければならないので、それは単にそれを難し​​くします。彼は自分で書いていないコードを使いたくありません。

また、「プロジェクトはプロトタイプにすぎず、維持されることはないため、コードベースの品質は問題ではない」とも述べています。私にとって、それは保守不可能なコードを書くための言い訳にはなりません

なぜ彼がそのような議論をするのかはわかりますが、私は彼の「保守性に対する懸念の欠如」と「彼の優れた設計の無視」、あるいは懸念の分離についてさえ問題を抱えています。しかし、彼はデザインパターンを研究したことがないのではないかと思うので、彼の方法が維持できないことが判明する理由を示すのにどれほど効果的であるかはわかりません。

私はこのプロジェクトを始めたいと思っていますが、長年にわたって学んだすべてのことを考慮せずにそれをやりたくありません。先に述べたように、ここにランクを上げる可能性はなく、他のチームメンバーも積極的にピッチングすることはできません。彼は頑固すぎて経験が浅く、よく知ることができませんか?それとも私はここで頑固なのですか?

TL; DR経験の浅いチームメンバーが頑固ですが、どうすれば彼を倒すことができますか?


2
ブログ投稿で実際の質問を見つけるのは非常に困難です:)両方が行う技術的な議論を強調する方法で修正してください。知らない人と話す方法を実際に伝えることはできませんが、プログラマーの立場から状況に対処するお手伝いをすることができます。そこには進化的プロトタイピングに関して良い質問があるようですが、私には確信が持てません...
ヤンニス

4
これの一部は、おそらく次の場合に適しています。area51.stackexchange.com
Karlson、

3
he doesn't want to use code he hasn't personally written.オペレーティングシステム、IDE、電話、信号機などは捨てた方がいい
StuperUser 2012年

4
@AndyBursh I want to know exactly how everything worksは、学習する際の有効な議論です。実際にホイールを再発明することは受け入れられます。たぶん、たぶん、あなたはそれを頑固さではなく、助けを求める叫びとして読むことができます。
yannis

4
since the project is only a prototype and will never be maintained 最後の最後の言葉:)私はこの仮定をするたびに1ドル持っていればいいのにと思います。そして、上級者の焦りと短期の貪欲が、プロトタイプが現在の製品であると判断したことを知りました。
maple_shaft

回答:


20

あなたは彼にそれについて話すことができないでしょう。これは、ダニングクルーガー効果と呼ばれています。彼は自分が知らないことを知るにはあまりにも無知であり、彼がアドバンテージと呼ぶものを失うことを恐れすぎます。

コンセンサスに到達できない場合は、代わりに妥協する必要があります。多分あなたは仕事を分割することができるので、彼がフレームワークを学ぶ必要性は最小限です。たぶん、ある種の「デザインオフ」があり、それぞれが2、3週間自分のやり方でそれを行い、それからチームがどちらが最適であるかを投票します。たぶん、あなたはあなたのスポンサーの教授や、顧客がその関係を解決している誰にでも関与することができます。


3
これはたまに現実の世界で起こるので、+ 1。私は仕事をしていて、最善のアプローチである別の開発者に同意することができませんでした。そこで、私たちは両方ともPOCをクランキングして、それぞれの長所と短所を調べました。10回のうち9回は、2つのPOCのマッシュアップであるソリューションを採用することになり、全員がプロセスから何かを学びました。
ティモシーボールドリッジ

1
ダニングクルーガーについて教えるための+1!誰もがそれについて知る必要がある..
スティーブン・グロス

ええと。誰かと意見が合わない場合、ダニング・クルーガーを引用するのは簡単すぎます。チームメイトは、フレームワークが割り当ての精神に違反していると信じているかもしれません。フレームワークが解決する問題を直接解決したいかもしれません。CodeIgniter、Cake、Symfonyの議論を避けたいかもしれません。彼はばかだった。
コービン3

1
@ Corbin、Dunning-Krugerは知性の欠如についてではなく、経験不足についてです。2つの非常に異なるもの。私はあなたの理由が正当であるかもしれないことに同意します、しかしOPはそれらが彼がしている議論ではなかったと言いました。代わりに、彼はフレームワークを使用することの「要点を理解していない」ので、彼は自分自身と同じくらい良いものを一からゼロから短時間で書くことができます。彼が確かにほとんど何も知らない解決策と比較して自分の能力を過大評価している経験の浅い人は、Dunning-Krugerの教科書の例です。そのような人々は何かに「話しかけられる」ことができない、彼らは示されなければならない。
カールビーレフェルト2012年

7

あなたの支持の一つの議論は知識の再利用性です。よく知られ広く使用されているフレームワーク(CodeIgniterなど)を習得したすべてのチームメンバーは、次のプロジェクトで知識を再利用できます。一方、無計画で知識のある「ライブラリ」の知識は再利用できません。他のチームメンバーは、このプロジェクトに関する有用で再利用可能な知識を得るのを好むため、これは他のチームメンバーとよく共感できます。

別の議論は、開発/保守コストの具体的な測定かもしれません。CodeIgniterに精通した開発者は、同僚が独自にこれらすべての独自機能を作成するよりも速く開発できると思います。これは、あなたと彼の両方が同一のWebページ(CodeIgniterを使用して、彼自身の方法で)を作成し、完了までの時間を測定することで実証できます。次に、ページに一連の変更/拡張を加え、完了までの時間を再度測定します。もちろん、仕様は中立的な立場で戦うために、両方から独立した誰かが作成する必要があります。

別の-あなたが言ったように-コードの品質です。Webページの準備ができたら、それぞれに対して同じ一連の受け入れテストを実行し、バグ密度を比較します。

もちろん、時間的なプレッシャーがかかっている場合、そのような測定を停止して実行する可能性はありません。したがって、おそらくこのジレンマを迅速に解決したいと思うでしょう。他のチームメンバーを説得して(たとえば、投稿の今後の回答をここに読んでもらう:-)、グループメンバーにプレッシャーをかけます。最後に、彼が本当に納得できない場合は、プロジェクトを2つに分割します。1つは彼のために、理想的には、CodeIgniterを使用して残りのチームのために1つです。自分の能力を最大限に発揮することに集中し、彼が望むことは何でもやらせてください。結果はおそらく自分自身のために語ります。


それを実証する速度テストのアイデアが好きです。どのような受け入れテストを実行できますか?私は確かにこれを提案しますが、私たち全員が管理する他の期限があるので、彼(またはグループ)とうまく共存できるかどうかはわかりません。また、仕様や「無駄な時間」を(特に私はそれが置かれると確信しています)これに。
アンディハント

1
科学、それは機能します:xkcd.com/54
StuperUser

5

他の3人のチームメイトを関与させる必要があると思います。あなたは両方とも彼らにあなたの議論を提示し、彼らが理解できるように彼らに物事を説明する必要があります。結局のところ、彼らはこのコードベースでも作業する必要があります。そして、すべてが等しい場合は、何を処理したいかについて意見を述べる必要があります。

それぞれのソリューションのメリットの概要を示し、他のチームメンバーにそれが最善の方法であると感じさせる理由を示すことは、良いアプローチだと思います。その後、彼らに決定させてください。それらが3つあるので、タイブレーカーになります。

あなたが指摘したいことの一つは、これがあなたのシニアプロジェクトであり、他のチームメンバーが他の経験がない場合、このプロジェクトは彼らが潜在的な雇用主に行うことができる仕事を反映する必要があるということです。あなたがそれを正しく行うならば、それはインタビューで良い話し合いのポイントになることができます。新しい卒業生に彼らの上級プロジェクトの概要と、それがどのように設計および開発されたかを尋ねます。

彼らが他の男のアプローチで行くなら、あなたはそれを吸い上げる必要があります。しかし、希望をあきらめないでください。彼が書いている混乱がすべてに影響を与えないように、良いデザインを考え出してください。時間がある場合は、いくつかのコードをクリーンアップしてリファクタリングし、毎回ホイールを再発明する必要がないことを示します。


これがグループの他のメンバーにどのように反映されるかについては、正直に考えていませんでした。必ず指摘しておきます。
アンディハント

1

大学はサンドボックスのようなものだと思います。そこで行うことのほとんどは、デプロイメントでは使用されません。そのため、実験して快適ゾーンから抜け出す自由度が大幅に高まります。失敗してもそれほど大きな影響はないので、新しいものを探してください。また、あなたの状況では、チームメンバーは、予備知識のある人に手伝ってもらうという特別な利点を持っています。

他の経験豊富なチームメンバーについては、新しいことを何も学びたくなければ、大学に行く必要はありませんでした。これは、何か新しいことを学び、それを彼のツールボックスに追加する良い機会です。

また、経験の浅いチームメンバーの場合、CodeIgniterなどのフレームワークを採用することで、採用/採用の可能性が高まります(実際には、採用時に正当化するための知識)。

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