Skip to content

Critical Path Analysis

Detailed timeline showing dependencies, slack time, and risk areas in the 6-day aggressive schedule.


Timeline overview

gantt
    title BRAC POC — 6-Day Execution
    dateFormat  YYYY-MM-DD
    axisFormat  %a

    section Day 0 (opt)
    OpenShift provision (overnight)     :day0, 2026-04-24, 1d

    section Phase 1 — Foundation
    OpenShift validation                :crit, p1a, 2026-04-25, 4h
    Kafka KRaft (parallel)              :p1b, 2026-04-25, 2h
    Redis Sentinel (parallel)           :p1c, 2026-04-25, 2h
    GitLab HA (parallel)                :p1d, 2026-04-25, 3h
    Jenkins HA                          :p1e, 2026-04-25, 3h

    section Phase 2 — Core OCP
    Compliance scan                     :p2a, 2026-04-26, 1h
    OTel + SigNoz + ClickHouse          :crit, p2b, 2026-04-26, 5h
    WSO2 APIM + IS                      :p2c, 2026-04-26, 3h
    Middleware (NGINX + Liberty)        :p2d, 2026-04-27, 2h
    Phase 2 catch-up buffer             :p2e, 2026-04-27, 4h

    section Phase 3 — Supporting
    Trivy + SBOM                        :p3a, 2026-04-29, 2h
    ArgoCD GitOps                       :p3b, 2026-04-29, 2h
    Nexus                               :p3c, 2026-04-29, 2h
    JBoss domain                        :p3d, 2026-04-30, 2h

    section Delivery
    Integration testing                 :d1, 2026-04-30, 2h
    Demo dry-run + video                :crit, d2, 2026-04-30, 3h
    Handoff                             :milestone, 2026-04-30, 0d

Dependency graph

flowchart TD
    D0["Day 0 evening (optional)<br/>Start OpenShift provisioning"]:::optional

    subgraph Phase1["Phase 1 — Day 1"]
        OCP["OpenShift cluster<br/>8h · CRITICAL"]:::critical
        GL["GitLab HA<br/>3h"]:::parallel
        KF["Kafka KRaft<br/>2h"]:::parallel
        RD["Redis Sentinel<br/>1.5h"]:::parallel
    end

    subgraph Phase2["Phase 2 — Days 2-3"]
        COMP["Compliance scan<br/>1h"]
        OTEL["OTel + SigNoz + ClickHouse<br/>5h · CRITICAL"]:::critical
        WSO2["WSO2 APIM + IS<br/>3h"]
        MW["Middleware (NGINX + Liberty)<br/>2h"]
    end

    subgraph Phase3["Phase 3 — Days 5-6"]
        TV["Trivy + SBOM<br/>2h"]:::parallel
        AC["ArgoCD GitOps<br/>2h"]:::parallel
        NX["Nexus<br/>1.5h"]:::parallel
        JB["JBoss domain mode<br/>2h"]
    end

    DEMO["Integration test + demo<br/>5h"]:::critical

    D0 --> OCP
    OCP --> COMP
    OCP --> OTEL
    OCP --> WSO2
    KF --> OTEL
    OTEL --> MW
    WSO2 --> MW
    MW --> DEMO
    TV --> DEMO
    AC --> DEMO
    NX --> DEMO
    JB --> DEMO

    classDef critical fill:#c62828,stroke:#b71c1c,color:#fff
    classDef parallel fill:#2e7d32,stroke:#1b5e20,color:#fff
    classDef optional fill:#616161,stroke:#424242,color:#fff,stroke-dasharray: 5 5

The critical path

OpenShift → OTel → Middleware → Demo. A slip on any of these pushes the entire delivery. Everything else has slack.


Critical path (longest chain)

The sequence of activities that determines overall completion:

Step Activity Duration Running total
1 OpenShift provisioning 8h 8h
2 OTel stack (+ Kafka dependency) 5h 13h
3 Middleware (NGINX + Liberty) 2h 15h
4 Final integration 2h 17h
5 Demo + report 2h 19h

Plus parallel Phase 3 (≈8h) — runs concurrently on Days 5-6, doesn't extend the critical path.

Metric Hours
Critical-path work ~19h
Phase 3 in parallel ~8h
Total engineering hours ~27h
Available (6 days × 8h) 48h
Buffer ~21h (breaks, meetings, troubleshooting)

Slack time analysis

Slack = hours an activity can slip before it blocks the next one.

Activity Planned Slack Risk if it slips
OpenShift (Day 0-1) 8h 0h 🔴 CRITICAL — blocks Phase 2
GitLab (Day 1) 3h 6h 🟢 Can slip 6h
Kafka (Day 1) 2h 7h 🟢 Can slip to Day 2 midday
Redis (Day 1) 1.5h 7.5h 🟢 Can slip significantly
Compliance (Day 2) 1h 4h 🟢 Can slip 4h
OTel stack (Day 2) 5h 0h 🔴 CRITICAL — blocks middleware
WSO2 (Day 2) 3h 2h 🟡 Tight — max 2h slip
Middleware (Day 3) 2h 2h 🟡 Tight — max 2h slip
Phase 3 (Day 5-6) 8h 1h 🟡 Must parallelize

High-risk windows

Day 1, 09:00–18:00 — OpenShift provisioning

  • If this fails, the entire project fails — no recovery path (manual setup adds 4-6h).
  • Action: start provisioning on Day 0 evening.
  • Monitoring: check status every 30 min.

Day 2, 09:00–18:00 — OTel observability stack

  • Second critical-path item, 4 interdependent components.
  • Data loss → restart → 1-2h delay.
  • Action: start first thing Day 2 morning.
  • Monitoring: verify traces flowing into SigNoz by 13:00.

Days 5-6 — Phase 3 components

  • Only 1h of slack across all four components.
  • If anything slips, no recovery time.
  • Action: pre-stage all manifests before Day 5.
  • Monitoring: deploy in parallel, not sequential.

Day-by-day schedule

Start OpenShift provisioning a few hours before bed; let it run overnight. Terraform takes 3-4h — starting at night saves your entire Day 1 morning and gives a 4-hour buffer.

Check status first thing Day 1 morning.

Day 1 — Foundation & infrastructure

Time Activity
09:00 Check OpenShift status (if started Day 0). If complete, validate.
09:30 Parallel work kicks off: GitLab HA, Kafka, Redis (independent).
11:00 OpenShift should be ready — validate 3 nodes + console.
12:30 All Phase 1 components deploying or done.
17:00 Phase 1 checkpoint: all 4 ready? Proceed to Phase 2 or fix blockers.
evening Run validation tests, document issues, prepare Phase 2 manifests.

Phase 1 checkpoint — must all be ✅ to proceed:

  • OpenShift cluster ready (critical)
  • GitLab HA ready
  • Kafka KRaft ready
  • Redis Sentinel ready

Day 2 — Core Kubernetes components (CRITICAL)

Time Activity
09:00 Compliance scan kicks off (1h, runs in background).
09:00 OTel observability stack begins (4-5h, parallel to compliance).
 • OTel Collector (~1h)
 • SigNoz (~1.5h)
 • ClickHouse (~1.5h)
 • Sample app (~1h)
 • Load test (~1h)
14:00 Compliance scan complete — review results.
15:00 Start WSO2 APIM (2-3h).
17:00 OTel traces visible in SigNoz.
18:00 End-of-day checkpoint: OTel working? WSO2 ≥80% done? If behind, add 2h on Day 3.
evening Stress-test OTel pipeline, document any data loss, prepare middleware manifests.

Day 3 — Phase 2 completion

Time Activity
09:00 Finish WSO2 if not done (1-2h).
10:00 Start middleware (NGINX + Open Liberty, 2h).
12:00 Test full API flow: Client → NGINX → Liberty → WSO2.
14:00 All Phase 2 components deployed.
15:00 Phase 2 checkpoint: Compliance report? OTel traces? WSO2 SSO/gateway? Canary routing?
16:00 Buffer time — troubleshoot, optimize, validate.
evening Start Phase 3 manifest prep if ahead; review Phase 3 issues.

Phase 2 checkpoint — must all be ✅ to proceed:

  • Compliance scan report generated
  • OTel traces flowing into SigNoz
  • WSO2 APIM / SSO responding
  • Middleware canary routing verified

Day 4 — optional catch-up / early Phase 3

If Phase 2 complete by Day 3 EOD: - Start ArgoCD (2h) - Start Nexus (1.5h) - Test GitOps workflow

If Phase 2 incomplete: continue Phase 2 troubleshooting.

Evening: prepare remaining Phase 3 manifests.

Day 5 — Phase 3 (parallel)

Time Activity
09:00 Start four parallel deployments: Trivy, ArgoCD (if not Day 4), Nexus (if not Day 4), JBoss manifests prep.
13:00 All Phase 3 components deploying.
14:00 Verify accessibility: Trivy, ArgoCD, Nexus. Fix any failures now.
17:00 Buffer time for Phase 3 catch-up.
evening Final integration test plan + demo script draft.

Day 6 — demo & delivery

Time Activity
09:00 Deploy JBoss if not done (1-2h).
10:30 Final integration testing (2h) — all 9 components accessible? Key flows green? 4xx/5xx scan.
12:30 Lunch / break.
14:00 Demo dry-run (2-3h) — record video (15-20 min), generate validation report, screenshot all dashboards.
17:00 Final cleanup — push final code, verify PRs merged, write summary.
18:00 Delivery complete — ready for BRAC presentation.

Contingency timeline (if behind)

If you're 4+ hours behind by EOD Day 3, cut in this priority order:

Priority Component Action Why
1st cut JBoss domain mode ❌ Skip Least critical to bank story
2nd cut Trivy dashboard ⚠️ Reduce to CLI demo Core capability still shown
3rd cut Nexus ⚠️ Mention but don't show Pattern is well-understood
4th cut ArgoCD manual sync ⚠️ Show kubectl flow instead GitOps value can be narrated
5th cut WSO2 SSO ⚠️ Show API gateway only SSO is complementary
6th cut Middleware canary ⚠️ Show basic routing Canary adds polish, not capability

Never skip

  • OpenShift cluster (foundation)
  • Kafka (observability pipeline depends on it)
  • OTel + SigNoz (headline demo feature)
  • Final validation + report

Parallel work strategy

Simultaneous work to keep the critical path short:

Phase Activity Duration Owner
Day 1 OpenShift 8h Infrastructure Lead
Day 1 GitLab 3h DevOps Lead
Day 1 Kafka 2h Platform Lead
Day 1 Redis 1.5h Platform Lead
Day 2 Compliance scan 1h Security Lead (background)
Day 2 OTel stack 5h Platform Lead (CRITICAL)
Day 2 WSO2 3h Integration Lead
Day 3 Middleware 2h Platform Lead
Days 5-6 Trivy + ArgoCD + Nexus 6h total Split across team
Metric Hours
Sequential total (no parallel) ~33h
With full parallelization ~14h wall-clock
Available (6d × 8h) 48h
Parallel buffer ~34h ✅

Go/No-Go checkpoints

Mandatory decision points:

Checkpoint Date / time Criteria Decision
Phase 1 Go Day 1, 17:00 All 4 Phase-1 issues meet DoD GO → Phase 2 · STOP → fix Phase 1
Phase 2 Go Day 3, 17:00 All 4 Phase-2 issues meet DoD GO → Phase 3 · STOP → delay BRAC demo
Phase 3 Go Day 5, 17:00 Trivy, ArgoCD, Nexus running GO → demo · PARTIAL → subset demo
Demo Ready Day 6, 14:00 Final validation passed GO → deliver · DELAY → reschedule BRAC

Escalation

If NO-GO at any checkpoint, escalate immediately to the Project Lead and BRAC Bank contact.


References


Created: 2026-04-24 · Owner: Project Lead · Status: Ready for execution