ソフトウェア工学

システム開発ライフサイクル内で働く専門家、学者、学生向けのQ&A

18
敵対的な管理にもかかわらずプロジェクトを正常に完了しますか?[閉まっている]
私は世界的な大企業の子会社で働いています。これは最初から子会社ではなく、大企業が買収した会社でした。 私たちは死の行進に向かっているようで、私(または私のチーム)が管理の問題を解決するか、それにもかかわらずプロジェクトを完了するためにできることがあるかどうか疑問に思っています。 これは、典型的な毎日のWTFの状況です。 非現実的な期限(管理者は「推定」6か月、開発チームは最低 18か月必要)。 長時間(最大3時間)の毎日の会議で、生産性がさらに低下します。 経営者は、新しい所有者の見栄えを良くしたいため、スケジュールに応じることを拒否しています。 いじめられている、無能であると非難されている開発者は、「恥の壁」をかぶっています。 チームリーダーは辞任したばかりで、士気は常に低い。 私は去りたい-開発チームのほとんどはそれを考慮している-しかし、私は辞めたがらない。本当にお金が必要です。また、失業してから短期間(5か月)しか滞在していないので、今やめることは、将来の雇用主に危険をもたらすかもしれません。 経営陣からの協力を促進するのに、または少なくとも進行中の混乱を最小限に抑えるのに効果的な戦略はありますか? 編集: 私はこの質問への回答から素晴らしいアドバイスを受けました。複数の回答を受け入れることはできず、他の回答は不公平になるため、回答を実際に受け入れることはできません。 状況を考慮して、私たちは仕事で最善を尽くすことにしました。私たちは実際に彼らから助けを得ることができるかどうかを確かめるために経営陣を押し戻しています(新しい人、新しい期限など)。同時に、新しい仕事を探しています(同僚がすでにやっていたように)。 何が起こるかを見て、それに応じて計画を立てます。しかし、一つ確かなことがあります。社殿で自分自身を犠牲にすることは問題外です。 皆さん、ありがとうございました!

11
最初から最後まで個人的に大きなチャンクを独自に所有したい開発者にアジャイルを楽しいものにする方法
スクラムを使用した滝からアジャイルへの移行のほぼ中間です。テクノロジー/規律サイロの大規模なチームから、部門を超えた小規模なチームに変更しました。 予想どおり、アジャイルへの変更はすべての人に適しているわけではありません。アジャイルに慣れるのに苦労している開発者は少数です。私は本当に彼らを引き付け、挑戦し続け、最終的には毎日仕事に来ることを楽しみたいです。これらは賢く、幸せで、やる気のある人であり、私は個人的レベルと職業的レベルの両方で尊敬しています。 基本的な問題は次のとおりです。一部の開発者は、主に難しい作業をし、設計を熟考し、潜在的な問題を熟考し、次に他の人との最小限の相互作用のみで問題を部分的に解決する喜びに動機付けられます期間。彼らは通常、高品質のタイムリーな方法で作業を完了します。それらの作業は保守可能であり、アーキテクチャ全体に適合しています。作業に対する相互作用と共有責任を重視する職域を超えたチームに移行し、短い間隔で作業機能を提供することで、チーム全体がその困難な問題を克服するように進化します。多くの人がこれを前向きな変化だと感じています。最初から最後まで問題を抱えて独立してそれを所有するのが好きな人は、そのような仕事の機会を失います。 これは、人々が変化に対して開かれているという問題ではありません。確かに、変化を嫌う少数の人々を見てきましたが、私が懸念しているケースでは、個人は良いパフォーマンスをし、真に変化に対してオープンであり、努力をし、チームの残りの部分がどうであるかを確認します変化し、彼らはそれに適合したいと思う。それは誰かが困難であるか妨害者であるか、または最もジューシーな仕事を買いだめしたいというケースではない。彼らは以前のように仕事に喜びを見いだせません。 これにぶつからない唯一の場所になることはできないと思います。他の人はこれにどのようにアプローチしましたか?あなたが個人的に大きな仕事の塊を端から端まで所有することによって動機付けられている開発者であり、あなたが別の働き方に適応した場合、それはあなたのために何をしましたか?
52 agile  scrum 

8
私はCSの学生であり、正直なところ、Knuthの本を理解していません[非公開]
私はビル・ゲイツからのこの引用に出くわしました:「もしあなたがすべてを読むことができるならば、あなたは私に履歴書を必ず送るべきです。」彼はThe Art of Programmingの本について話していました。だから私はかなり興味があり、それをすべて読みたいです。しかし、正直なところ、私はそれを理解していません。 私は本当に知的ではありません。だから、これが私がそれを理解できない理由であるに違いないが、私は学ぶことを切望している。現在、基本的なアルゴリズムに関する第1巻を読んでいます。私のような初心者/遅い人に優しい本がありますか?これは知識を深めるのに役立ち、将来Knuthの本を簡単に読むことができますか?

14
DirectXが左手座標系を使用するのはなぜですか?
Stack Overflowに投稿することを検討しましたが、この問題に関するMicrosoftの選択に対する合理的な技術的説明を考えることができないため、質問はあまりにも主観的であると思います。しかし、この質問は非常に長い間私を悩ませており、私のプロジェクトの1つで問題が発生し続けており、実際にこれを説明する試みを見たことはありません。 OpenGLは、右手座標系を使用します。世界座標系の+ Z部分は、視聴者に向かって伸びます。 DirectXは、世界の+ Z部分は座標左手系が延び使用に見る人から離れて、スクリーン。 私はGlide APIを使用したことがないため、どのように機能したのかわかりませんが、収集できるものから、左利きのシステムも使用しています。 これには技術的な理由がありますか?そうでない場合、座標系の特定の利き手に概念的な利点はありますか?なぜ一方が他方を選択するのでしょうか?
52 math  directx  opengl 

12
博士号とは ソフトウェア業界に適していますか?[閉まっている]
私は独学のプログラマーであり、知識を補い、ギャップを埋めるためにコンピューターサイエンスの学位を始めたばかりです。 しかし、私はすでに私の教育の方向性について議論しています。確かに4年の学士号が欲しいのですが、その後、確信がありません:M.Scを取得する価値はありますか?博士号はどうですか?これらの学位はどのような機会を切り開きますか? 現在、私の目標はソフトウェア開発者になることですが、ソフトウェア業界には多くの魅力的な分野があり、それらの多くを調査することに確かに興味があります。この点で、ソフトウェア開発のキャリアに必ずしも役立つとは限らないにしても、より高い学位に価値があると思うのです。 それは価値があるのでしょうか?大学院はドアを開けますか?

21
リファクタリングを非技術者にどのように説明しますか?
リファクタリング(および技術的負債)を非技術者(通常はPHBまたは顧客)にどのように説明しますか?(「なんと、目に見える違いなくあなたの仕事に1か月かかるでしょうか!」) 更新これまでのすべての回答に感謝します。このリストは、適切な人を指すことができるいくつかの有用な類推を提供すると思います(PHBへの参照を編集するのは賢明かもしれません!)


4
言語に依存しないようにするにはどうすればよいですか?
今ではasp.netとC#を使用しています。私もJavaでまともな仕事をしました。私はいつか言語にとらわれないように自分のキャリアを計画しています。私が学ぶ必要があることは何ですか? 最初に、OOPはクラスの設計について述べているようにパラダイムになります。他に何かありますか?


10
私のプロジェクトマネージャーはスクラムでのキャリーオーバーを受け入れません-それは正常ですか?
私は、大きなバックエンドコンポーネントを備えたAndroidおよびiOS用の新しいモバイルアプリに取り組んでいる開発者です。私たちはこのプロジェクトの3つのスプリントに参加しており、スクラムをそのすべてのセレモニー(洗練、計画、デイリー、回顧など)で使用しています。 2つのスプリントでは、チームは残業と週末に(無給で)働かなければなりませんでした。誰もが一生懸命働きましたが、外部の依存関係と楽観的な見積もりにより、すべてのスプリントストーリーを達成するのに苦労しました。 私の経験では、一部のスプリント中にストーリーの一部が完了しないことはある程度普通であり、次のストーリーで取り組むことができます。しかし、プロジェクトマネージャーは、自分で見積もりを行ったのは私たちのせいだと言っているので、スプリントのすべての項目を完了する必要があります。 これは、私が知らないスクラムの許容可能な/一般的なバリエーションですか? これに基づいて行動することをどのように提案しますか?

6
「結果なし」はRESTfulレスポンスのエラーになりますか?
例について説明します 。パン屋のAPIの作成を開始します。APIを使用すると、ユーザーはを使用して自家製ミントチョコレートチップクッキーなどのベーキング製品のカタログを検索できますapi.examplebakery.com/search?q=.....。 誰かがこれを使って名前の付いた製品を探しますが、pineapple-banana flavoured cookies明らかに結果が見つかりません。 これはエラーとして返されるべきですか?検索は失敗せず、APIが検索し、Cookieが見つからないという結論に達しました。404APIが実際に見つかったため、APIはを返すべきではありません。

5
専用のメンテナンス作業はプログラマのキャリアを妨げますか?[閉まっている]
過去3年間の私の仕事の大部分は、再販売する前にパッチの適用や時折の改良が必要なレガシーシステムの維持に主に取り組んできました。 多数のプロジェクトを抱え、開発者が限られている企業では、専任のメンテナンスプログラマが果たすべき重要な役割を理解しています。 しかし、私が現在のキャリアの進歩を判断し、仲間を見ると、請負業者と企業開発者の両方; 私が触れた領域の面でかなりの幅を獲得したので、私ははるかに遅れているように感じますが、深さはあまりありません。ブログを始め、自分の小さなgit-hubプロジェクトに取り組み、仕事の後に定期的に個人的なコーディングを行う時間があるように私の人生を再スケジュールすることで、これに対処し始めました。 メンテナンス作業から逃れるために他の会社に面接したのは、特定のことに焦点を当てた3年の経験を持つ人に必要な深い知識レベルがないので、スキルレベルがかなり後輩であると自分自身を表さなければならないだろうと思う機能開発のパスは。ですから、私の現在の仕事の経験の半分は、長期的には無駄になります。 しかし、これは私の個人的なジレンマにあまりにも集中していると感じたら謝罪する私の主な質問につながります: 専用のメンテナンスプログラミングの役割は、初期のキャリアにとって不利になりますか?他のプログラマは、このような役割を避ける権利がありますか?この作業を行うと、後輩としてやり直す準備ができていない限り、同様のタスクを実行できなくなりますか?

2
双方向データ同期のベストプラクティス/パターン
私の仕事では、多くの場合、データベースシステム間の双方向データ同期のアイデアが現れます。典型的な例は、2つのわずかに異なるCRMシステム(たとえば、Raiser's EdgeとSalesforce)と、それらの間で連絡先データの双方向同期が必要な場合です。 APIの考慮事項は別として、同期する共有キーがあり、使用するアルゴリズム/パターンを純粋に考えている場合、これは技術者以外によって過小評価されることが多いタスクです。 たとえば、次のことに注意する必要があります。 両方のシステムでどのレコードが変更されたかを簡単に検出できますか(または、システム間ですべてのレコードを比較して変更を検出する必要がありますか) N時間に1回の同期を行う場合、両方のシステムで同じレコードが多かれ少なかれ同じ時間に変化する競合に対処する方法 リアルタイム同期(つまり、1つのシステムの更新がすぐに他のシステムの更新をトリガーする)を予定している場合、バグまたはシステムクラッシュによる時間の経過に伴う逸脱の処理方法 個人的に私はこれすべてに取り組む方法を考えることができますが、私が参照できるよく知られたパターン、文献またはベストプラクティスがあるかどうか疑問に思っています。

20
開発者はビジネスドメインを理解する必要がありますか、それとも仕様は十分ですか?
私は、電子工学の高度な技術であるためにドメインを理解するのが本当に難しい会社で働いていますが、これは複雑なドメインでのソフトウェア開発に適用できます。 私が取り組んでいるアプリケーションには、ドメインでの経験がなければ理解が難しい多くの情報、グラフ、およびメトリックが表示されます。開発者は、特定のチャートにこの種のメトリックを表示する必要があることを指定するなど、ソフトウェアが何をする必要があるかを記述する仕様を使用します。このメトリックは次の算術式です。 この方法では、開発者は実際にビジネスと彼がこのタスクを行っている理由を理解していません。仕様が非常に詳細な場合でも問題ありませんが、仕様が詳細でない場合、または作成者がユースケースを忘れた場合、開発者が解決策を見つけるのは非常に困難です。 一方、すべての開発者をすべてのビジネス面でトレーニングすることは非常に長く困難な場合があります。 詳細な仕様をもっと重視する必要がありますか(しかし、私たちが知っているように、完全な仕様は存在しません)、またはビジネスドメインを理解するようにすべての開発者を訓練する必要がありますか? 編集:会社は外部の開発者を使用でき、すべてのドメインの編成は約2週間になる可能性があることを念頭に置いてください

14
新しいプログラマーを評価する最良の方法は何ですか?[閉まっている]
新しい仕事を得るための最良の候補者を評価する最良の方法は何ですか(プログラミングスキルの観点からのみ話します)。私の会社では、成績は良いが実際のプログラミングスキルはない人と多くの悪い経験をしました。彼らのスキルは単なるコードモンキーのようなものであり、問​​題を分析して解決策を見つける能力はありません。 私が注意しなければならないその他のこと: 私の国の教育システムは、本当にひどいものです。この種の仕事に長けている人は、才能を持っているか、本当に独学で学ぼうとしているので、良い人です。 大学/大学院/大学院の学位は、あなたが物事を行う方法を正確に知っていることを必ずしも意味しません。 認定コースの担当者もスキルを持っていない(または低賃金の仕事をしている)ため、認定資格もここでは何の意味もありません。 柔軟性があり、機械的な思考を持たない優れた候補者を獲得する必要があります(経験からこのタイプの人々はパフォーマンスが低いため)。 私たちは政府機関に所属しており、候補者である人々は必ずしも外部から来るわけではありませんが、正しい候補者が見つかるまで候補者を受け入れるかどうかは可能です。 私は私の質問であまりにも積極的に聞こえないことを願っています。ところで私はプログラマーです。 編集:私はここで本当に複雑な何かを尋ねたことがわかりました。「正解」のトグルを解除して、偏りなく議論を流letに進めます。
52 skills 

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