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

14
企業がこのような厳しいスケジュールでプログラマーを雇うのは普通ですか?[閉まっている]
ですから、私はこの仕事で数ヶ月働いています。私は2から7までベストを尽くしているので、少しイライラしています。以前の仕事では、9:30から10:00に来て、7で退職しました。 。 しかし、私の現在の会社は8:30にそこにいることを主張しています。これからの逸脱は大したことです。これは典型的なものですか?同僚が9:30〜6:30、10:00〜7:00です。でも、それは単なるスタートアップカルチャーなのでしょうか。 クライアントと会わないなどの理由で、物事が非常に硬直することの利点は何なのかわかりません。また、入ってきたときに15〜20分の変動がある場合、なぜ人々が私が去るときに調整することをただ仮定しないのかもわかりません... 開発者としてのこれらの不合理な期待か、何か不足していますか?

14
ソフトウェアエンジニアが時間を追跡するように奨励する
同僚が問題の解決と機能の実装に費やす時間を追跡するように奨励するにはどうすればよいですか?これを行うソフトウェアがありますが、数字を入力しません。 過去の見積もりと実際に費やした時間を比較することで、チームがプロジェクトの見積もりをより上手にできるようにしたいと考えています。同僚はプロジェクトのスケジューリングにあまり関与していないので、同僚には個人的な利益が見られないと思われます。

11
期限に現実的な期待を設定する
私は小さなチームの技術リーダーです。私のプレート上の主要なタスクの1つは、クライアントとのコミュニケーションです。私が特に難しいと思うことの1つは、期限がクライアントによって義務付けられており、頻繁に相談されないためです。 通常、相互作用は次のパターンに従います。クライアントは、追加したい機能Xを考え出します。機能Xは、約6営業日後の来週のアプリリリースで見栄えがよくなります。この時点で、機能リクエストは承認を受ける必要があり、対処する必要がある他の依存関係が頻繁にあります。最終的に、N日後に、機能のリクエストが私のチームに伝わります。元のデッドライン(開発者以外のマネージャーが設定した)が達成できたとしても、それはもはや達成できません。私のチームは非難され、落胆し、全体的な敗北の雰囲気があります。私は落胆し、敗北します。 明らかに、プロセス全体が壊れています。残念ながら、私はここで権力の座にいないので、私にできることはあまりありません。私の現在のアプローチは、クライアントに開始日と締め切り、フィーチャーの範囲などについて穏やかに思い出させることです。これは言い訳をしているように感じます。 似たような状況にあったことはありますか?役に立たなかったこと、役に立たなかったことは何ですか?

2
相対的な予想タスク時間をスケジュールに組み込むビルドシステムはありますか?
これが私の質問の小さな図です: ADという名前の4つの独立したタスクで構成されるビルドジョブを想定します。DはACよりも時間がかかります。 相対的なタスク時間を組み込むことができないビルドシステムは、次のようにタスクをスケジュールする場合があります。 --------------------------------------- CPU1: A | C | --------------------------------------- CPU2: B | D | --------------------------------------- 対照的に、スケジューラがタスクの時間差を認識している場合、次のようなはるかに短いスケジュールが考えられます。 --------------------------------------- CPU1: A | B | C | --------------------------------------- CPU2: D | --------------------------------------- 私の質問: 相対的な予想タスク時間をスケジュールに組み込むビルドシステムはありますか? この種の構築システムに関する学術研究は何ですか? これらのビルドシステム(存在する場合)はどこから時間情報を取得しますか?ヒューリスティック、以前のビルド中に収集されたタイミング? そのようなビルドシステムが存在しない場合、なぜですか?一見しただけで価値がなくなるような落とし穴はありますか?

6
欠席の可能性を考慮して、誰の番がクロワッサンを購入するのかを調べます
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細がない回答は、編集または削除できます。 あるチームは、毎朝誰かがクロワッサンを持参することを決めました。毎回同じ人物であってはならないので、次の順番を決定するシステムが必要です。この質問の目的は、明日クロワッサンを持ち込む順番を決定するアルゴリズムを決定することです。 制約、仮定、目的: クロワッサンを持参する順番は、前日の午後に決定されます。 ある日、欠席している人もいます。アルゴリズムは、その日に出席する人を選択する必要があります。欠席はすべて1日前にわかっているため、クロワッサンの買い手は前日の午後に決定できると仮定します。 全体として、ほとんどの人はほとんどの日に出席しています。 公平を期すため、誰もがクロワッサンを他の人と同じ回数購入する必要があります。(基本的に、すべてのチームメンバーがクロワッサンに費やす金額が同じであると仮定します。) 名簿の退屈を軽減するために、ランダム性の要素、または少なくとも知覚されたランダム性を持つことが望ましいでしょう。これは厳しい制約ではありません。それは審美的な判断です。ただし、同じ人を連続して2回選ぶことはできません。 クロワッサンを持ってくる人は事前に知っておくべきです。したがって、人PがD日にクロワッサンを持参する場合、この事実は人Pがいる前日に決定する必要があります。たとえば、クロワッサンの持ち主が常に前日に決定される場合、前日にいる人の1人である必要があります。 チームメンバーの数は十分に少なく、ストレージとコンピューティングリソースは事実上無制限です。たとえば、アルゴリズムは、過去に誰がクロワッサンを持ってきたかの完全な履歴に依存できます。毎日高速のPCで最大数分間の計算で問題ありません。 これは現実世界の問題のモデルであるため、シナリオをより適切にモデル化していると思われる場合は、自由に仮定に挑戦したり洗練したりできます。 起源1:Florian Margaineによるクロワッサンの購入者を確認します。 起源2:誰がジルによってクロワッサンを買うつもりかを調べます。 この質問は、Gillesと同じバージョンであり、さまざまなコミュニティがプログラミングの課題にどのように対処するかを確認するための実験として、プログラマーに再投稿されました。

2
クラスターでタスクを1回だけ実行するにはどうすればよいですか?
サーバーのクラスターで一度だけ実行したいタスクがある場合、定期的にこれを達成するための最良の方法は何ですか?この場合のクラスターの定義は、ロードバランサーの背後に分散セッションを持つ2つ以上の同一サーバーです。 使用例: X時間に1回のみ実行する必要がある実行コストの高いタスクがあります。このジョブは、たとえば多数のレコードを反復処理し、そのステータスを更新できます。 最悪のシナリオは、ジョブを2回実行するとデータが無効になることです。 最良のシナリオは、ジョブがすべてのサーバー上のリソースを利用することです。 要件の概要: ノードの1つがダウンしている場合でも、ジョブを実行する必要があります。 ジョブは、スケジュールごとに1回のみ実行する必要があります。 複数のジョブが同時にまたは重複してスケジュールされている場合、実行中のジョブの数はサーバー間で均等に分散されます。 マシンは同じコードベースを持ち、NTPを介して同期する必要があります。 環境変数によって、構成はノードごとに異なる場合があります。 ジョブは時間どおりに、または割り当てられた時間の特定の間隔内で開始する必要があります。(たとえば5分と言います) 可能な解決策 1つのノードをマスターノードとして設定します。上記1に違反するため、これは機能しません。 ロードバランサーのバランスを取り、ジョブを開始するよう要求します。残念ながら、これには、同時に複数のジョブを実行している場合、それらがすべて同じマシンで実行されるという副作用があります。 これは、Javaのサーブレットコンテナで実行する必要があります。しかし、それは私が探している仕事をコーディングしていません。 確かにこれは既知の最良の解決策を備えた解決された問題です。 関連する質問。 /programming/5949038/schedule-job-executes-twice-on-cluster 上記の5つの要件に従ってソリューションが不十分であるため、これは重複ではありません。最も投票されたソリューションは人種問題に苦しみ、2番目のソリューションは要件3に違反します

8
リスク回避環境で半厳格なリリーススケジュールを提唱するにはどうすればよいですか?
最近、私はますます私はこの職業で私の最もイライラすると士気を殺す経験の一つとして記述する必要がありますどのように悩まされてきた:を有するリリースに座ってテストされている、再テストし、上演、およびすべての意図について目的は出荷/展開する準備ができています。 単なる筋金入りのコーダーではなく、万能のソリューションガイとして、適切な変更管理の必要性を理解し、提唱さえしています。しかし最近、私たちの拠点をカバーすることと時間通りに出荷することとの間の微妙なバランスがすべて崩れ、私はそれを健全なものに戻すことにほとんど成功していませんでした。 私は、リスク回避管理を説得するのに役立つ説得力のある議論を探しています: 開発チームは独自のリリーススケジュールを設定できる(またはする必要があります)-当然のことながら(1〜3か月は、Fortune 500の最大の企業を除くすべての企業にとって保守的なものです)。 ソフトウェアリリースは重要なマイルストーンであり、無頓着に扱うべきではありません。言い換えれば、不必要な遅延/停止は非常に破壊的であり、いくつかの重要なビジネス上の問題に対する最後の手段としてのみ考慮されるべきです。そして 関係者が関与することを望んでいる(または要求している)外部(非開発/非IT)エンティティは、特に計画された出荷前の1週間前など、リリーススケジュールを満たすために開発チームと協力する責任があります日付(つまり、ユーザーのテスト/ステージング)。 上記は経験に基づいて私に当てはまる主張ですが、私は今それを証明しなければならない立場にあるようです-そのようなものが存在する場合、私はここで少し肉の何かを求めています。 固定(または半柔軟な)リリースサイクルのアイデアを経営者に「販売」しなければならなかった人は、どの議論/戦略が効果的で説得力があり、何がそうでないかについていくつかの指針を与えることができますか?明らかなスケジュールの競合と埋没費用は別として、「企業」の設定であっても、出荷が実際に重要であると主張するのに役立つハードデータ/証拠はありますか? 代わりに、スケジュールの柔軟性(週/月の期間であっても)がスケジュールどおりに出荷するよりも重要である理由について建設的な議論を聞くことができます。今私が信じるのは難しいが、彼らは私が知らないことを知っているかもしれない。 リリースを段階的に行っていることに注意してください。これは、実動を除くすべての段階を経て行われました。商用バグトラッカーを使用して問題を追跡し、このリリースに割り当てられたすべての問題(100%の問題)は終了しました。信じがたいことであり、それが本当に正確なポイントです-100%、機能が完全で、十分にテストされ、関係者によって承認されたリリースが、原因不明の理由で経営陣によって遅れることは意味がありませんが、それが起こったのは、それが何が起こっているのか、それが解決すべき問題です。

5
遅れはアジャイル方法論に意味がありますか?
これは、別の質問(これ)に対するいくつかの回答とコメントから生じました。 私は主にウォーターフォールプロジェクトを扱い、アジャイルな振る舞いを取り、アジャイルについてかなり読んだアドホックプロジェクトに取り組んできましたが、「適切な」アジャイルプロジェクトに取り組んだことは一度もありません。 。 私の質問は、「後期」の概念がアジャイルで何らかの意味を持っているということです。 私の推論では、アジャイルには事前の計画はなく、最初は詳細な要件もありません。あなたは高いレベルの目標とそれに付随する想定上の日付を念頭に置いているかもしれませんが、両方が(潜在的に大規模に)変わる可能性があり、どちらも確実ではありません。 つまり、配信してユーザーが受け入れるまで、基本的に何を配信するかが正確にわからない場合、次のスプリント以降のスケジュールがない場合、どのようにして遅れることができるでしょうか。実際に意味がありますか? (明らかに、スプリントがオーバーランする可能性があることは理解していますが、それを超えて話しています。) 明確にするために、私がそれらを見てそれらに関与したという事実に基づいて、時間どおりにウォーターフォールプロジェクト(比較的大きなプロジェクトでも)が可能であるという仮定に(個人的に)満足しています-それらは簡単でも一般的でもありませんしかし、それらは可能です。 これはアジャイルをノックすることではなく、私が理解することです。アジャイルのメリットは、期限や予算とは関係なく(または間接的にのみ)、常にスコープと関係があると見なしてきました。アジャイルは、プロジェクトチームが重要であると考える前に、実際に重要であると考えるよりも、実際に重要なことに近づきます。何でも見ました。
10 agile  scheduling 

3
リーグスケジューリングアルゴリズムの特定に支援が必要
私はスポーツリーグのスケジューラを作成しようとしています。各スロットを効率的に埋めるのに役立つアルゴリズムを特定できません。 スケジュールを作成するためのサンプルデータは次のとおりです。 10チーム 各チームはお互いに1回プレイします(合計45試合必要) 各チームは1日に1回しかプレイしません テストでは、1日あたり5スロットで9日間使用しています。 コンボテーブル(45のコンボを含む) ID Team1ID Team2ID ビット割り当て 済み スケジュールテーブル(45のタイムスロットを含む) scheduleID homeTeamID awayTeamID GameDate GameTime 現在、私の既存の手順は、スロットの約90%を占め、上記のルールに基づいて、スケジュールの競合のためにスロットの10%を空にします。 スケジュールテーブルを日付/時間の昇順でループします。 私の最初の時間帯は土曜日の午前8時です。 まだスケジュールされていないチームのリストを照会します。次に、それらのチームの可能な組み合わせの配列を作成します。次に、その配列を使用して、まだスケジュールされていない組み合わせから組み合わせテーブルから1つのランダムなレコードを取り出し、それらのチームをスケジュールに配置します。次に、その組み合わせを使用するように設定します。 ループを何度も繰り返し、使用可能なチームのリストが小さくなるたびに、結果として配列も小さくなります。 いくつかの日はうまく行き、他の日に私の最後の最後の2つの残りのチームは前の週にすでにプレーしたので、それらは再びスケジュールに追加されません。 まだ試していないのは、競合する日を「リセット」して、もう一度試し、より良い配置が得られるかどうかを確認することだけです。 誰か提案はありますか?

6
厳しいスケジュールとスケジュールのプレッシャーはTCOと納期にどのように影響しますか?
ソフトウェアエンジニアリングマネージャーである友人の父親は、「オーバーランのスケジューリングの最大の原因はスケジューリングのプレッシャーである」と強調しました。 研究はどこに立っていますか?適度な量のスケジューリングのプレッシャーが爽快ですか、それとも私が述べたマネージャーは正しいか間違っていますか、それとも「スケジューリングのプレッシャーが大きいほど、納期が長くなり、TCOが増えるのか」という問題ですか。それは、理想的にはソフトウェアエンジニアリングがスケジュールの圧力なしで機能するものの1つですか? ソフトウェア工学の文献へのリンクがあれば幸いです。

1
セロリでAPIを呼び出す
要件が次のようなクライアント向けのシステムを設計しています。 彼らはJSONファイルをアップロードします(1つのオブジェクト/行) JSONオブジェクトをペイロードとしてAPIを呼び出す 各API呼び出しの状態(成功/失敗)をデータベースに記録する 失敗した場合は、1回再試行します。 セロリとsqliteデータベースをバックエンドとして使用して構築することにしました。JSONの行の数は多くなく、メモリに収まる可能性があります。個々のコンポーネントはすべて正常に動作していますが(ファイルのアップロード、ファイルの読み取り、APIの呼び出し、dbへの書き込みなど)、セロリを使用したタスクのディスパッチの全体的なアーキテクチャについてはわかりません。 ファイルにN行あるとすると、次のようになります。 オプションA: result列(最初はnull)を持つデータベースにN個のオブジェクトを作成します。 N個のセロリタスクを作成し、オブジェクトIDをパラメーターとペイロードとして渡します サブタスクにAPIを呼び出しさせ、オブジェクトの結果フィールドを成功/失敗に更新します。 失敗した場合にセロリの再試行機能がAPIを再度呼び出そうとするようにします。 オプションB: result列(最初はnull)を持つデータベースにN個のオブジェクトを作成します。 1つのセロリタスクを作成し、N個のオブジェクトIDとN個のペイロードのリスト全体を渡します N個のオブジェクトすべてをループして、各ステップの結果でデータベースを更新します。 前のタスクが完了すると、別の1回限りのセロリタスクが起動され、失敗した結果を持つすべてのオブジェクトのデータベースが読み取られて再試行されます。 オプションAは、その単純さのために優先していますが、スケジュールできるセロリタスクの数の制限と、ブローカー(RabbitMQ)がそれを処理するかどうかはわかりません。オプションBの場合、大きなリスクは、セロリタスクが何らかの理由で何らかの行Mで終了した場合、後続のすべてのオブジェクトが試行されることはないということです。 これらの2つについての考え、または3番目に優れた代替案があるかどうか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.