タグ付けされた質問 「teamwork」

同僚やチームとの共同作業に関する質問。(チームワークの質問は、キャリアのアドバイスや教育について「話題から外されている」というリスクにさらされています。)

8
バグを再現する責任
私は別のプログラマーが作成したライブラリーを使用してプログラムを開発しています(彼は同じ会社で働いています)。最近、ライブラリのリークを発見しました。これは、数時間実行した後、特定のネットワーク条件下で発生します。このリークを発生させる条件の説明を記載したバグを提出しました。その開発者は、「これは十分ではありません」、「バグを再現するのは彼の責任ではありません」と答え、このバグを再現するためにユニットテストを作成する必要があります。 彼は正しいですか? この状況でできることは何ですか?ユニットテストの作成は、ネットワークのランダムなタイミングに依存するため不可能です。

7
ビルドがほとんど常に壊れているときに効率を維持する方法
私は同じソースコードを共有し、継続的に統合されている中規模のチームで働いていますが、私たち全員が同じブランチで作業しなければならないため、ビルドはほとんど常に壊れています。 また、壊れたビルドを軽減するために最近導入されたルールもあります。これは、ビルド中は誰もチェックインできないことを示しています。 そうは言っても、1日の間に誰もがチェックインできる10〜15分のウィンドウを持っています。 チームが成長するにつれて、チェックインの機会の窓はさらに小さくなります。そのため、開発者は変更をローカルに蓄積する必要があり、その結果、変更セットが大きくなり、変更が何も破壊しないことを保証するのがさらに難しくなります。悪循環を見ることができます。 このような環境で私が効果的に仕事を続けられるようにするために何をお勧めできますか。また、私はマネージャーではなく開発者であり、プロセスや他の人の行動をあまり変更できないことに注意してください。

12
理解できないコードをレビューする方法は?
私は会社の開発を改善する役割を与えられました。私が最初に始めたかったのは、コードレビューでした。 弊社には3人のプログラマーがいます。私はWebプログラマーです。私の既知の言語は主にPHP、ActionScript、JavaScriptです。他の2人の開発者はVB.netで内部アプリケーションを作成します ここ数週間、コードレビューを行っています。VBコードを理解するのは難しいと思います。だから彼らが何をしているのかを言うとき、ほとんどの部分で私は彼らの言葉を受け入れなければなりません。 間違っているように見えるものを見つけた場合は、自分の意見を説明し、私が知っている言語の1つでどのように対処するかを説明します。 時々 、私の提案は歓迎しているが、「これはそれを行うための最善の方法であるように、多くの時間が、私は物事を聞いています。この」には適用されませんまたは言語「このまたはそのような性質の似たもの言語」。 これは真実かもしれませんが、言語を知らずにこれらの主張を確認または反論する方法がわかりません。 可能な解決策の1つはvbを学習することであるため、より良いコードレビューを行うことができます。私は本当にvbを学ぶことに興味がありません(特に自分のプロジェクトで学ぼうとしている他の技術のリストがあるので)そしてこれを最後の手段として残したいのですが、それはオプションです。 私が思いついた別のアイデアは、彼らは両方ともC#に興味があり、私もそうです。しかし、それは私たち全員にとって新しいことです。私たち全員がペットC#.netプロジェクトで協力し、それからお互いのコードをレビューすることの利点について考えました。 コンサルタントを雇ってコードレビューを提供する可能性もあると思います。 この状況で私が何をすすめますか。

9
チームが近い将来拡大するソロプログラマーへのアドバイス[非公開]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 4年間、私は小さな会社のソロ開発者でした。ニッチ業界で確立された製品がいくつかあります。私たちはすぐに1-2人の開発者を雇用する予定であり、それはおそらくここでの動作を変えるでしょう。 「本物の」タイトルは持っていませんが、このチームを「担当」します。私がやりたいのは、会社のために非常に組織的で生産的なプログラミング部門を設立することです。私は大学でこの単独の仕事を手に入れたので、この業界のプログラマーとして熟達しましたが、チームプログラミングの経験はあまりありません。右足でスタートすることが重要だと感じています。 今のところ、私、数台のコンピューター、SVNサーバーだけです。チームをゼロから構築するための一般的なガイダンスを探しています。

4
プルリクエストでTODOを処理する方法
この質問は、Software Engineering Stack Exchangeで回答できるため、Software Quality Assurance&Testing Stack Exchangeから移行されました。 昨年移行し ました。 プルリクエストの変更を確認すると、「TODO」のメモが付いたコメントに出くわすことがあります。 問題を解決するために使用されるソリューションは改善できますが、かなりの時間投資が必要になります。作成者はより迅速なソリューションを選択しましたが、より良いオプションが潜在的に利用可能であるというコメントを入れました すぐに修正する必要がある既存のバグを回避するための一時的なコードがあります TODOsが一般的にコードベースの存続期間中コードベースに留まることを知っているので、プルリクエストでそれらにどのように対応する必要がありますか?どうすればそれを避けるよう丁寧に要求できますか、またはそれが本当に正当化された場合、PRの作者が将来それをフォローアップすることをどのように確認できますか?

8
コードレビュー中にテストを書くことは有益ではないでしょうか?
私の同僚が、私が面白いと思うアイデアを思いつきました。 TDDを行わないと想定してレビューを行う人が、コードレビュー中にテストを書くことは有益ではないでしょうか。 この質問では、これは純粋にアカデミックなプロジェクトであり、命にかかわることはないと想定しています。さらに、チームは4人です。誰もが言語を知っており、使用されるすべてのツール/ライブラリ/フレームワークに精通しており、テストを書くことができます。したがって、基本的には、上級のフルスタックではない人が忍者のエンジニアをリードしていますが、まともなコーダーです。 私が見つけた長所: レビュー中にコードのより深い理解を促し、意味のあるテストを作成します。 次に、テスト対象のコードの作成者が行ったテストのコードレビューを追加できます。 短所: コードの作成とテストの間のフィードバックループが拡大します。 編集:私はそれが「通常の」Webアプリケーションではうまく動作しないことを知っています。私が念頭に置いていたのは、細部に注意を払う必要のある複雑で科学的なアルゴリズムを実装するコーナーケースです。独自のグラフライブラリ、NLPなどの実装のようなものを想定しましょう。作成しているコードがデータベースから分離されているなど、理解するのが非常に難しいのは、ソースを理解する必要のある他の人ではありませんコードを作成し、意味のあるテストを行い、プロセス全体を、アプリケーションをクラッシュさせず、最終的に結果をゴミにするようなそれほど明白ではないバグを起こしにくくしますか?

10
チームに新しい開発者を追加する方法
私は2人の開発者で構成される小さな会社を経営しています。私たちは、クライアントの1人に対して非常に大きなアプリケーションを構築しています。このプロジェクトの開発は1.5年間続いています。 現在、このクライアントは重要なスポンサーを獲得しており、このプロジェクトに関連するイベントを開催しています。だから今、私たちは2ヶ月で期限があり、私たちはそれを見逃すことはできません。 チームに新しい開発者を追加することを考えていますが、彼の統合を支援するために何ができるのかと思います。 これが状況です: ブルックスの法則の限界に近づいています-新しい開発者を追加するときのポイントは非生産的です。 アプリケーションは比較的適切に設計されていますが、実装はいくつかの点で混isとしています(特に古いコード)。 ユニットテストは、より新しいコードに対してのみ行われます。このプロジェクトが始まったとき、私たちは定期的にテストを行いませんでした。 ドキュメントとコメントは不完全です。 アプリケーションは大規模で複雑です。 クライアントは、プロジェクトに関するほとんどすべての詳細を、非常に明確で「プログラマーに優しい」方法で書き留めています。 今すぐ人を追加することをお勧めしますか?もしそうなら、新しい開発者がチームに統合するのを助けるために何ができますか? 編集: スポンサーは来春にインターネットベースのスポーツイベントを開催しています。年の特定の日に開始する必要があります。変更することはできません。 開発者(私は2人のうちの1人)がする必要があるのは: 既存のアプリケーションを完了します(実行する作業の約25%)。 このイベントの組織に不可欠な新しいモジュールの作成(行う作業の約75%)。この新しいモジュールは、メインプログラムのAPIを理解しないと開発できません。 正確な時間の見積もりはできませんが、私たちは危険な状況にあります。

9
私の同僚はナイスガイですが、彼のパフォーマンスは平均以下です。上司に伝えますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私は約3か月前にプロジェクトに参加しましたが、それまで遅れていたため、新しく雇われた1人の開発者によって開発されていました。公平を期すと、このプロジェクトは、微妙な点が多く、比較的複雑な医療機器へのインターフェイスであるため、会社で経験のない人物を1人プロジェクトに配置することは、経営者の観点からはおそらく悪い決断でした。 とにかく、いったん作業を開始すると、...うまくいきませんでした。UIは素晴らしく見えましたが、実際には何もしませんでした。繰り返しになりますが、これは多くの場合、この開発者がデバイスへのインターフェイスを作成する準備が適切に行われていないためです。しかし、適切なコードが壊れやすく、保守が非常に難しいこともすぐにわかりました。 今、私は世界で最高のプログラマーであると主張していません。私は、私よりも優れた開発者である非常に頭の良い人たちと仕事をしています。しかし、できる限りシンプルで堅牢なコードを書くことは非常に難しいです。チェックインをテストします。コードが乱雑になり、作業が難しくなっていることがわかった場合は、変更します。私は同僚がより良いコードを書くのを手伝うために、同僚と何度か話をしました。a)彼は20年以上の分野での経験があり、私は5歳しかいません。b)彼はいわゆる「UXエキスパート」として雇われ、他の人は彼を経験豊富な個人と見なしています。 とは言っても、私はそれを見ないだけです。彼はとてもいい人であり、理にかなっていますが、壊れやすいコードを何度もチェックインし、最も楽観的なケースでのみ動作し、10回のうち9回は彼の作品のバグを修正します。彼のコードはアマチュアっぽいようで、明らかに、彼が雇われたときに持っていたと主張するレベルの経験を持っていません。彼のコードのリファクタリングとバグの修正に費やした余分な時間が私に負担をかけたというところまで来ました。私がそれを見る方法には、2つのオプションがあります: 何もせず、この製品が時間通りに出て、堅牢であり、将来的に彼が失敗するのを待つために、お尻をつぶしてください(最初のリリースの後、このプロジェクトで彼と一緒に仕事をするつもりはありません) 上司に彼のパフォーマンスについて話してください。私の上司は理にかなった人ですが、このアプローチをとるのは気まずいです。私は同僚を「バッシング」するのが好きではありません(より良い用語がないため)同僚と私は彼がそれを取る方法を知りません。 だから、それはそれについてです。彼の実装が機能しない理由や、コードをより保守しやすくする方法を説明することで、同僚とこれを解決しようとしましたが、彼は同じ間違いを犯し続けています。他の人が同じような状況をどのように扱っているのか、特に現在管理職の人たちがどのように扱っているかを聞くことに非常に興味があります。アドバイスをありがとうございます。

13
チームのすべてのメンバーが同じIDEを使用する必要がありますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 チームのすべてのメンバーが同じIDEを使用しなければならないと強制することは理にかなっていると思いますか? たとえば、すでにチームにいるすべてのエンジニアはIDE Xを使用します。2人の新しいエンジニアが来て、代わりにIDE Yを使用したいと考えています。 「混合IDE」チームでの経験はありますか?もしそうなら、それは何ですか?
23 ide  teamwork 

8
チームでBuilderパターンの使用を促進するにはどうすればよいですか?
私たちのコードベースは、私のような古いプログラマーと新しいプログラマーであり、均一性のために行われた方法ですぐにそれを行うことを学びます。私たちはどこかから始めなければならないと考えて、私は自分自身にそれとしてデータホルダークラスをリファクタリングしました: セッターメソッドを削除し、すべてのフィールドを作成しましたfinal(final公理的には "良い"です)。結局のところ、セッターはコンストラクターでのみ使用されていたため、副作用はありませんでした。 Builderクラスを導入しました コンストラクター(そもそもリファクタリングを促したもの)が約3行のコードにわたるため、Builderクラスが必要でした。それは持っている多くのパラメータを。 運が良ければ、チームメイトが別のモジュールで作業していて、たまたまセッターが必要でした。なぜなら、必要な値がフローのさまざまなポイントで利用可能になったからです。したがって、コードは次のようになりました。 public void foo(Bar bar){ //do stuff bar.setA(stuff); //do more stuff bar.setB(moreStuff); } セッターを取り除くことでフィールドが不変のままになることを可能にするため(以前に不変性についての不満を聞いたことがあります)、またビルダーはオブジェクトの作成をトランザクション可能にするため、代わりにビルダーを使用する必要があると主張しました。次の擬似コードをスケッチしました。 public void foo(Bar bar){ try{ bar.setA(a); //enter exception-throwing stuff bar.setB(b); }catch(){} } その例外が発生すると、barデータが破損しますが、ビルダーでは回避できます。 public Bar foo(){ Builder builder=new Builder(); try{ builder.setA(a); //dangerous stuff; builder.setB(b); //more dangerous stuff builder.setC(c); return builder.build(); }catch(){} …

6
あまり良くないチームをリードする
たとえば5人のチームに4人の無能なプログラマーを割り当て、リードするように求められた場合、どのように管理しますか?明らかに、4人の人のためにコーディングすることはできません(できますが、それは良い考えではありません。少なくとも私はそれを使い果たしました)。このような状況に出くわしましたか? 編集:私は私の問題に対処するために間違った(無能な)単語を選択することによって失礼に聞こえたと思います。質問を言い換えると、割り当てられたタスクを完了していない人にどう対処しますか(何らかの理由で[無能から '気にしない'ものに至るまで)?

4
「オブジェクト指向すぎる」
私は強力なオブジェクト指向のバックグラウンドから来ており、コードはJavaで書かれていますが、以前よりも優れたオブジェクト指向設計にあまり重点を置いていない組織で働き始めました。私は「あまりにも多くの抽象化」を導入し、代わりに常に行われている方法をコーディングする必要があると言われました。これはJavaの手続き型です。 TDDもここではあまり実践されていませんが、テスト可能なコードが必要です。大きな「神クラス」の静的プライベートメソッドにビジネスロジックを埋め込むことは(このチームの標準と思われます)、あまりテストできません。 私は自分の動機を同僚に明確に伝えることに苦労しています。OOとTDDを使用するとコードのメンテナンスが容易になることを同僚に納得させる方法について、誰かアドバイスがありますか? 技術的負債に関するこの質問は私の質問に関連しています。ただし、他の問題がカバーする事実の後に返済するのではなく、そもそも借金の発生を回避しようとしています。

6
ワークロードと新入社員の支援のバランス[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私は最初の仕事に約2か月かかりましたが、ワークロードと新入社員の支援には微妙なバランスがあることに気づき始めました。バグを修正し、できるだけ多くの顧客の問題を解決するよう管理者から多くのプレッシャーがあるので、チームの全員が新入社員のスピードアップを支援するのではなく、仕事のバックログに非常に集中しているようです。新入社員は質問をすることができ、時には開発者に座って助けてもらうこともありますが、多くの場合、製品のベテランだけが仕事に忙しすぎるので理解できるというあいまいな答えを受け取ります。 新入社員もバランスを維持しなければならないことを理解しています。場合によっては、ベテランが20分でできたはずの問題を調査して修正するのに、新入社員に3日かかることがあります。新入社員は、製品とコードベースを学習するための努力を示す必要があります。 退役軍人のワークロードを単純に削減することなく、新入社員を支援することと、手頃なレートでバックログに取り組み続けることとのバランスをどのように取ることができますか?

4
「品質のカルト」を作成する方法[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前に閉鎖されました。 DeMarco and Lister(Peopleware)は、プログラミングチーム内で「品質のカルト」を作成することをお勧めします。不満なことに、彼らはあなたがそれをどうやってやろうと提案していない! 誰もこれを達成する方法について考えを持っていますか?

6
小規模企業でのペアプログラミング/コラボレーション
私は小さな開発会社で主任開発者として働いています。私たちには他に2人の開発者と、開発者である上司がいますが、実際のコーディングは実際にはあまり行いません。 私が克服しようとしている問題は多面的です。私たちは皆、私たちの間の多くのコラボレーションなしに、私たち自身のプロジェクトに取り組む傾向があります。実際のところ、私は(最も先進的な開発者として)他人の意見/助けを彼らが私のものよりも求めています。 私たちのコラボレーションを増やしたいと思い、彼らにそれを表明しました。大部分は、より良い開発者になり、より良いプラクティスに従う方法についていくつかのことを見せたいからです。しかし、他の開発者の性格タイプを考えると、彼らは単独で作業する方が快適だと思います。 私はペアプログラミングについて読んでいますが、あるフォーラムでは、ある開発者が他の開発者(私)よりも進んでいるとうまくいかないことを読みました。それでも、私たちの仕事がそれほどばらばらにならないように、私たちは協力し始めることが不可欠であると感じています。 私の質問は、誰かがこれまでに同様の状況にあったかどうか、そして何が彼らのために働いたのですか? 私はこれが万能の状況ではないことを理解していますが、複数のアプローチを試してみたいと思います。 私たちは皆、共通の領域で働いており、開発者は個々のオフィス/キュービクルを持っていません。

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