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

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

4
プロのプログラマーではない、または決してプロではない人が、より読みやすく使いやすいコードを書くのを支援する[クローズ]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私はエルビスであり、アインシュタインになることを一生懸命学ぼうとしています。私はモートで働いています。 このクレイジーなバカは何を言っているんだ!?!?(最初の数段落だけを読む必要があります) あなたがそのリンクを読む気にならないなら、基本的に、私はプロのプログラマーであり、私のボスはそうです(これは恐ろしく正確です): コンピューターサイエンスの学位はないが、OfficeとVBAに精通しており、通常は同僚の間で共有される生産性アプリケーションを記述するプロの基幹業務プログラマー とは言うものの、私の仕事の大部分は、彼の丸石で結ばれたコードを取得し、生産準備を整えることです。しかし、非常に貧弱なスタイルとカーゴカルティズムがこれを難しくしています。これは、彼がプログラミングの本を読むことを嫌がり、コードをリファクタリングするのを手伝ってくれるという事実によってさらに悪化します。 プロのプログラマーではない人を助けるための戦略は他にもありますか?プロのプログラマーが私にとって使いやすく解釈しやすいコードを今後書くことはありませんか?

10
私のチームは、リファクタリング後の頻繁なエラーをどのように回避できますか?
少し背景を説明すると、私は約12人のRuby on Rails開発者(+/-インターン)を抱える会社で働いています。リモートワークが一般的です。当社の製品は2つの部分で構成されています。かなり太いコア部分と、それに基づいて構築された大規模な顧客プロジェクトまであります。通常、顧客プロジェクトはコアを拡張します。重要な機能の上書きは発生しません。コアには、リファクタリングを急ぐ必要のあるかなり悪い部分があると付け加えます。仕様はありますが、主に顧客プロジェクト向けです。コアの最悪の部分はテストされていません(そうではありません...)。 開発者は2つのチームに分かれており、スプリントごとに1つまたは2つのPOを使用しています。通常、1つの顧客プロジェクトは、チームとPOのいずれかに厳密に関連付けられます。 ここで私たちの問題:むしろ頻繁に、お互いのことを壊します。チームAの誰かがコア機能Yを拡張またはリファクタリングすると、チームBの顧客プロジェクトの1つに予期しないエラーが発生します。ほとんどの場合、変更はチーム間で発表されないため、ほとんどの場合、予期しないバグが発生します。POを含むチームBは、機能Yが安定していると考え、リリース前に変更を認識せずにテストしませんでした。 これらの問題を取り除く方法は?どのような「発表テクニック」を勧められますか?

5
「マンデルバグ」の存在をチームメンバーに納得させる方法
アプリケーションを開発しています。別のコーダーによって開発されたライブラリが含まれ、このライブラリは複数のネットワーク接続を介してサーバーと通信し、これには複数のスレッドが連携して動作する必要があります。サーバー側のコードは非常に複雑であり、ソースコードにはアクセスできません。 最近、時々アプリケーションをクラッシュさせるマンデルバグを発見しました。一度再現してスタックトレースを取得したので、バグレポートを開きました。バグ自体は簡単に修正できます(バックグラウンドスレッドの1つでキャッチされないWeb例外により、CLRはプログラムを終了します)。 問題は、開発者がバグを修正することを拒否していることです。「彼はそれが存在することを確信していない」からです。残念ながら、上司は彼の側にいて、バグの存在を証明するための「堅実なテストケース」を作成し、ユニットテストでそれがなくなったことを確認しない限り、このバグは修正できないと言います。バグの性質上、基本的に不可能なこと。 何かアドバイス?

10
アーキテクトは自己組織化スクラムチームとどのように連携できますか?
多数のアジャイルスクラムチームを持つ組織には、「エンタープライズアーキテクト」として任命された少数の人々のグループもいます。EAグループは、品質と意思決定の遵守のためのコントロールおよびゲートキーパーとして機能します。これにより、チームの決定とEAの決定が重複します。 たとえば、チームはライブラリXを使用するか、SOAPの代わりにRESTを使用する場合がありますが、EAはそれを承認しません。 現在、これはチームの決定が却下された場合にフラストレーションにつながる可能性があります。十分に考えれば、EAの人々がすべての力を「つかむ」可能性があり、チームはやる気がなく、あまり機敏ではないという感じになります。 スクラムガイドこれはそれについて言いたいことがあります。 自己組織化:開発チームに、製品バックログをリリース可能な機能の増分に変換する方法を教えてくれる人はいません(スクラムマスターでさえも)。 それは合理的ですか?EAチームは解散すべきですか?チームは拒否するべきですか、それとも単に従うべきですか?

8
開発時に同僚に対処するため、アドバイスが必要です[非公開]
ここで何が尋ねられているかを伝えるのは難しいです。この質問は曖昧、曖昧、不完全、過度に広範、または修辞的であり、現在の形式では合理的に答えることができません。この質問を明確にして、再開できるようにするには、ヘルプセンターに アクセスしてください。 8年前に閉鎖されました。 この質問はして移行され、それがソフトウェア工学スタック所に答えることができるので、スタックオーバーフローから。 8年前に移行され ました。 現在のプロジェクトアーキテクチャを開発し、独自に開発を開始しました(次のようなものに到達しますrevision 40)。 シンプルな地下鉄ルーティングフレームワークを開発しており、私の設計は非常によくできているようです- いくつかのメインモデル、対応するビュー、メインロジック、データ構造が「あるべき」ようにモデル化され、レンダリングから完全に分離され、アルゴリズム部分も実装されましたメインモデルとは別に、少数の交差点がありました。 私は、その設計をスケーラブルで、カスタマイズ可能で、実装が容易で、主に「ブラックボックスの相互作用」に基づいて相互作用し、非常に素晴らしいと呼びます。 さて、何が行われたか: 対応するインターフェースの実装を開始し、便利なライブラリを移植し、アプリケーションの一部の実装スタブを作成しました。 コーディングスタイルとそのコーディングスタイルの使用例(自分の記述コード)を説明したドキュメントがありました。 コード(スマートポインターでラップ)などC++を含む、多かれ少なかれ最新の開発手法の使用を強制しましたno-delete。 具体的なインターフェイス実装の目的と、その使用方法を文書化しました。 単体テスト(ほとんどの場合、「実際の」コードがあまり多くないため統合テスト)と、すべてのコア抽象化のための一連のモック。 私は12日間休みました。 現在何がありますか(プロジェクトはチームの他の4人のメンバーによって開発されました): すべてのプロジェクトの上に3種類のコーディングスタイル(私は推測する、それらの2つが同じスタイルを使用することに同意した:)、同じことが私たちの抽象化の命名にも適用される(例えばCommonPathData.h、SubwaySchemeStructures.h)基本的にはいくつかのデータ構造を宣言し、ヘッダーです。 最近実装された部品のドキュメントの絶対的な不足。 私が最近呼び出すことができるものsingle-purpose-abstractionは、少なくとも2つの異なるタイプのイベントを処理し、他の部分と密接に結合しています。 使用されるインターフェイスの半分には、メンバー変数が含まれるようになりました(sic!)。 ほぼすべての場所での生のポインターの使用。 " (Rev.57) They are unnecessary for this project"のため、ユニットテストは無効です。 ... (おそらくすべてではない)。 コミット履歴は、私の設計が過剰であると解釈され、人々がそれを個人用自転車と再実装されたホイールと組み合わせ始め、コードチャンクの統合に問題があったことを示しています。 さて、プロジェクトはまだやらなければならないことのほんの一部をしているだけで、深刻な統合の問題があります。メモリリークがあると思います。 この場合にできることはありますか? 私はすべての努力が利益をもたらさなかったことに気づきましたが、締め切りはもうすぐであり、私たちは何かをしなければなりません。誰かが同様の状況にありましたか? 基本的には、プロジェクトの良い(まあ、できる限りのことをすべてやった)ことは良いことになると思いましたが、間違っていることは理解しています。

6
開発チーム-1つの悪いAppleが束を台無しにすることはできますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 ...新しい従業員が持つべき最も重要な機能の1つは、すでにそこで働いている人々の精神との互換性です。 {...} 開発者の本当の性格についての洞察を得ることは、プロの能力をチェックすることと同じくらい重要であると確信しています。 開発者を雇う-あなたはそれを間違っている これは本当ですか?そして、もしそうなら、それはマネージャーにとっても本当ですか?
20 teamwork 

7
インターンシップを双方にとって最も効果的で便利で楽しいものにする[非公開]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 現在、インターンシップの候補者数名にインタビューを行っていますが、これは会社として、また個人的にチームリーダー/マネージャーとして、私にとって本当に新しい経験です。 ここで、双方にとって最も効果的で便利でありながら楽しいアプローチは何でしょうか?開発チームとワークフローにインターンをどのように「統合」すれば、彼が学習しながらも役立つことができるように、大きな混乱を招くことはありませんか?

15
私たちのコーディング標準の1つが嫌いで、それは私を狂気にさせます、それをどのように処理するのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 免責事項:タイトルが示すほど誇張されていませんが、それでも私を不快にします。私は正直に言いたいだけなので、一粒の塩でそれを取る。私が話しているコーディング標準について話しているふりをしてください。 編集:私はそれが好きではないという事実は、私はそれを使用したり、それを強制しないことを意味するものではありません。 私は、あなたが好きではない標準を乗り越える方法の精神でこの質問をすることを決めました、それがどのように変更できるかをよりよく議論する方法の助けを得るためではありません(この最後の部分に関するコメントは大歓迎です)。その上、私は大企業で働いていますが、これほど長く生きてきて、ほとんど問題にならないような変化は起こりそうにありません。 標準は、専用線の開始中かっこ標準です。 somefunction() { //... } *明らかに優れた*の代わりに(冗談/欲求不満の音に注意してください): somefunction() { //... } 標準に対する私の個人的な主張: コードが肥大化する:余分な不要な行 入力が難しい:これはおそらく私が標準に苦労しているだけかもしれませんが、余分なキーストロークがそれほど悪くないことは知っています。 読みにくい:関数宣言、ifステートメント、または他のスコープスタッキングステートメントの読み取りを開始しますが、開き括弧を探す必要はありません。この標準のネストされたブロックは、何らかの理由で私を怒らせます。 Microsoft IDEのバックグラウンドから来た人々が使用します。パラダイムによってそれを取り入れるだけでなく、標準の背後にある議論された理由(またはそれ以上)があるべきだと思います。 彼らの議論(および内部的に彼らに反論する私の方法): ブロックの開始位置と終了位置がすぐにわかるので読みやすくなります。ブロックの所有者がわからない場合、ブロックの良さはわかりません。逆読みする必要があります。 私はMicrosoft IDEでそれを使用し、それが好きでした:うーん...大丈夫? それは標準にあります:* cringes * 私は特定の基準に対して意見を述べる姿勢に苦しんでいる唯一の人ですか?、これらをどのように乗り越えましたか?この特定の基準がどうあるべきかについてのあなたの意見は何ですか?

6
代替品のトレーニングはどのように行いますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私は最近、職を辞めることについて尋ねたところ、たくさんの素晴らしい答えを得ました。一般的なスレッドの1つは、新しい人を訓練するために周りにいることが期待され、長い道のりを歩むことができるということでした。 今、(私が思うに)ほとんどの人が通知を出してから長い間会社に留まらないことを考えると、会社が面接/採用するのに時間がかかります。誰かをスピードアップさせます。 また、これまで誰も訓練したことがありません。私は大学で短大の個人指導をしましたが、言語/技術を教えることは、仕事であなたに取って代わるように誰かを訓練することとは大きく異なります。 質問は次のとおりです:潜在的に、短時間であなたを置き換えるために誰かを訓練するためにどのように行きますか?

9
「プログラミングの困難」に対処する方法は?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 8年前に閉鎖されました。 だから、誰もがいつかこの人に出会ったと思います。誰かがあなたのプロジェクトやアイデアの風をつかみ、最初にいくらかの興味を示します。メソッドのいくつかについて話をするようになり、通常はこの頃にメソッドXの代わりに使用する方法、またはライブラリYを使用する方法を挿入します。熱心なオウムのように何度も何度も同じアドバイスを繰り返します。 個人的には、学習中に車輪を再発明したり、以前よりも悪化したとしても、単に楽しみのためにしたいです。しかし、この人は明らかに、そのような目的のためにユーティリティを再作成することを推測することはできませんし、伝統的なOOP慣行に厳密に従っていないものを試す可能性があり、完璧感以外には何も解決せず、自然に批判を汚します。それに加えて、彼らは最終的に彼らが片手でコーディングしたすべての信じられないほど複雑なものをリストすることによって彼らのアドバイス(遅延)を正当化し始めます(通常「私を信頼して、私はプログラムX 、 何とか何とか何とか")。 今、私はプログラミングの達人には程遠いです。たぶんそれほど上手ではないので、アドバイスと批評を大切にしていますが、アドバイス/批評には時間と場所があると思います。また、助けになることと自己陶酔することの間には大きな違いがあります。過去には、おそらくより強力なジョージカーリンスタイルの解雇を使用していたでしょうが、橋を燃やすことはもはや最良のアプローチではないと思います。 この種の言葉によるむち打ちに対処する方法について何かアドバイスはありますか?

4
フロントエンド開発者は、バックエンド開発者向けにJSON形式を指定する必要がありますか?
私はプロジェクトでフロントエンドの役割を担っています。PHPがJavaScriptに返すJSONの正確な形式をバックエンドチームメイトに指定する必要がありますか? たとえば、ここで説明する形式と同様の形式を使用する必要があることを伝えます。 フロントエンドで使用するためのJSONを適切に構成する方法 または、自分の役割を可能な限り無菌状態に保ち、単にバックエンドインターフェイスから必要な入力と出力を言葉で説明する必要がありますか?(もちろん、これが発生した場合、異なるデータ構造形式を処理することは私の側でより困難になる可能性があります)

4
QAと反復のジレンマ
私の会社では、アジャイルプラクティスでの作業に成功していますが、反復は使用していません。主な理由は、反復サイクルでQAに適合するクリーンな方法を見つけることができないからです。 QAは、特定のビルド(リリース候補)に対する追加の検証として、このビルドが顧客に展開される前に理解します。ポイントは、1つの悪意のあるコミットがリリース全体に損害を与えることを避けることです。あなたはそれがどれであるかを決して知らないので、QAはリリースのすべての機能/コミットがビルドに含まれるまで待つ必要があります。(有名な最後の言葉「それはほんの小さな変化でした」は許可されていません。) QAがリリース候補でバグを見つけた場合、開発者はそれぞれのリリースブランチでこれらのバグを修正します(そして、トランクにマージします)。すべてのバグが修正されると、QAが再テストするために新しいビルドが展開されます。特定のリリース候補にバグが見つからない場合にのみ、検証のために顧客に提供されます。 これには通常、リリースごとに約2〜3つの候補、約1週間かかります。通常、修正を記述する時間は、テスト作業よりもはるかに短いです。したがって、開発者を忙しくしておくために、彼らはリリースN + 1に取り組み、QAはNに取り組みます。 反復を使用しなくても、リリースNとN + 1の作業を重複させることができるため、これは問題になりません。しかし、私が理解していることから、これはスクラムやXPのような反復ベースのアプローチと互換性がありません。彼らは、すべてのテスト作業がイテレーションに組み込まれ、イテレーションが最後にリリース可能であることを要求します。 これは必然的に次の望ましくない結果のいずれかにつながることがわかります。 (A) QAはリリース候補を確認する時間が必要であり、バグ修正作業が開発者を完全に忙しくしていないため、開発者はイテレーションの終わりにアイドル状態です。 (B)最初のリリース候補の準備が整う前に、QAがすでに機能し始めています。これは、Stack Exchangeで最も推奨されるものです。しかし、テストされた特定のリリース候補がないため、それは私の会社がQAとして理解しているものではありません。そして、すべてを壊す「小さな変化」は、気付かれずに導入される可能性があります。 (C)バグは次の反復に引き継がれます。これはStack Exchangeでも推奨されます。私はそれがまったく解決策だとは思わない。基本的に、バグ修正が行われるたびに、新しい未検証のコミットが同じブランチに追加されるため、検証済みビルドが取得されないことを意味します。 このジレンマから抜け出す方法はありますか?
17 agile  teamwork  qa  sdlc 

5
経験豊富なC ++エンジニアのチームにOOP / OODを「導入」する最良の方法
私は、OOPの概念を既存のチームメンバーに紹介するための、efficient辱としても抜け落ちない効率的な方法を探していますか?私のチームメイトはオブジェクト指向言語に慣れていません。私たちは長い間C ++ / C#を行ってきたので、テクノロジー自体はよく知られています。 しかし、私は周りを見回し、努力の大きな注入なしで(主にコードレビューの形で)、私たちが作り出しているのはクラス内にあるCコードです。いくつか例を挙げると、単一の責任原則、抽象化、結合を最小限に抑える試みはほとんど使用されていません。コンストラクターはないが、インスタンス化されるたびにmemsetを0にするクラスを見てきました。 しかし、私がOOPを立ち上げるたびに、誰もがうなずき、私が話していることを正確に知っているように見えます。概念を知ることは良いことですが、実際の作業の提供に関しては、私たち(他の人よりも)を適用するのは非常に困難です。 コードレビューは非常に役立ちましたが、コードレビューの問題は、事実の後にのみ発生することです。そのため、一部の人にとっては、書き直されたコード(ほとんどはリファクタリングですが、多くの時間がかかります)になります。また、コードレビューは、チーム全体ではなく、個々のエンジニアにのみフィードバックを提供します。 私は、プレゼンテーション(またはシリーズ)を行うというアイデアをいじり、OOPを、より良く記述でき、リファクタリングできる既存のコードの例とともに再び表示しようとしています。誰ももう所有していないいくつかの本当に古いプロジェクトを使うことができたので、少なくともその部分は微妙な問題ではないはずです。ただし、これは機能しますか?私が言ったように、ほとんどの人は長い間C ++をやっているので、a)彼らはそこに座って、なぜ彼らがすでに知っていることを言っているのかを考えているか、b)彼らは実際にそれをin辱として取るかもしれません数十年ではないとしても、長年やってきた仕事をどうやってやるのかわからないと伝えます。 コードレビューよりも幅広い聴衆に到達するが、同時に罰の講義のように感じない別のアプローチはありますか? 私は、完全に設計されたコードの理想的な理想を持っている大学の新鮮な子供ではありません。誰にも期待していません。私がこれを書いている理由は、紙の上にまともな高レベルのデザインを実際に持っている人のレビューをしたからです。ただし、クラスを想像する場合:A-> B-> C-> D、コードB、CおよびDはすべてほぼ同じパブリックインターフェイスを実装し、B / Cには1つのライナー関数があるため、最上位のクラスAは絶対に実行します主に4つのmongoメソッドでのすべての作業(メモリ管理、文字列解析、セットアップネゴシエーションなど)、およびすべての意図と目的のために、ほとんど直接Dを呼び出します。 更新:私は技術リーダー(この役職で6か月)であり、グループマネージャーを完全にサポートしています。私たちは非常に成熟した製品に取り組んでおり、メンテナンスコストは間違いなく知られています。

6
ソフトウェアをより速く実行するために、誰もがアイデアを試すことができる期間を促進しますか?
場合によっては、方法論的で徹底的な検索からソフトウェアパフォーマンスのトリックが見つかります。時々、クレイジーなアイデアを試すには発散的な思考と勇気が必要です。時には、アイデアは単なる始まりに過ぎず、多くの努力を払う必要があります。 私たちが取り組んでいるソフトウェアのパフォーマンスを向上させるために、誰もがさまざまなアイデアを試すことができる期間を育成する方法は?チームの全員が少なくとも数か月間ソフトウェアを使用した経験があり、非常に優れています。 発散的思考がソフトウェアのパフォーマンスを改善する方法を見つけるのに役立つことに同意しますか?どうして?何故なの? 最適化のアイデアをすばやく試すことができるテクニックは何ですか?トライアウトから良い結果を得るには、速いコーディング速度が必要ですか? 最後に、緩む可能性を生じさせずに良好な結果を保証するために、どれだけの「時間」を割り当てる必要がありますか? 「より高速な方法」が存在することを証明するには、実験が必要ですか?(2011-06-07を追加) 関連: チームのレベルを巧妙に改善するための戦略は何ですか? コードハッキングが悪化するのはいつですか? (賞金目的のみ -2011/06/07チームサイズは2〜4人の開発者で、専用のQAはありません。すべてのコード、ユニットテスト、パフォーマンステストは開発者が行います。プロジェクトの性質により、プロファイラの結果は単一のボトルネックが明らかにならない場合でも、比例した実行時間。)

16
あなたがプログラマーであるとき、チームワークを欠くことはどれほど悪いことですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 私はまだ学校にいますが、他の人とのやり取りに問題があることを知っています。 私は怒りや恥ずかしがり屋でも違う人でもありません。他人を尊重しながら自分のやり方で仕事をするのが好きです。知識に対する大きな好奇心と飢えがあります。彼らは私が何らかの士気を話すことを恐れるかもしれないので、私と一緒に。(たとえば、Windowsを頻繁に使用している場合でも、Windowsの代わりにLinuxを使用してプログラミングを学び始めました。Macを使用しています)。 チームワークが不足しているプログラマはどうなりますか?問題はどこから始まりますか?優れたプログラマーであるということは、少なくとも少しは報いていますか?プログラマーが言われたことをするだけでなく、自分の仕事についてビジョンを持つのは普通ですか?
17 teamwork 

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