Skip to main content

Software Development Life Cycle (SDLC)

:::info Status Locked v1.0 — proses hybrid Waterfall + Scrum, DoR/DoD, testing, dan disiplin kontrak OpenAPI terkunci. Selaras PRD dan Infrastructure. :::

FieldValue
ProductNexus Ops — Aplikasi Absensi Divisi Operation
Version1.0.5
TimKelompok B — Capstone Project 50 Team B 2026
Last updated2026-09-28

1. Tujuan dokumen​

Dokumen ini mendefinisikan cara tim bekerja dari requirement hingga release: model proses, fase, artefak, gate kualitas, peran, dan alur delivery.

DokumenFokus
PRDApa yang dibangun
SDLC (dokumen ini)Bagaimana tim membangun & merilis
InfrastructureDi mana sistem berjalan
Git WorkflowKolaborasi Git/GitHub sehari-hari
Dev SetupTool lokal

2. Model proses​

LapisanPendekatanAlasan
Kerangka proyekWaterfall (fase berurutan 8 minggu)Jadwal capstone tetap
Fase pengembanganAgile Scrum (sprint 1 minggu × 8)Backend + UI paralel sejak Minggu 2

Prinsip kerja:

  • Requirement dikunci (PRD Locked v1.0).
  • Paralel: backend, mobile, web sejak S2.
  • Setiap sprint menghasilkan increment demoable.
  • Board: filter This Sprint = sprint:@current -status:Icebox.
  • Otomasi:
    • project-sprint-backlog.yml mempromosikan [Contract] / [UI] yang sprint-nya sudah mulai: Icebox → Backlog, dan menghapus label Icebox. [Test] tidak ikut promote — tetap Icebox sampai UI + API/Impl slice terkait siap (pindah manual ke Backlog).
    • project-reconcile-closed-done.yml memindahkan issue closed / PR merged yang masih bukan Done → Done (safety net bila built-in Project workflow no-op setelah Status dikustomisasi).
    • Secret: PROJECT_TOKEN (org Projects read/write).

3. Fase SDLC​

3.1 Analisis kebutuhan​

ItemIsi
OutputPRD Locked v1.0
GateScope MVP + §10 domain locked

3.2 Desain​

ItemIsi
OutputInfrastructure Locked, Design System, Screens, OpenAPI
GateStack + FCM + R2 + face on-device + ERD v1 terkunci

3.3 Implementasi (build)​

ItemIsi
Reposbackend · web · mobile
PraktikTrunk-based, PR kecil, Husky
GateCI hijau sebelum merge

3.4 Testing​

LapisanCakupanCatatan
Unit / serviceDomain & use case backendCoverage ≥ 95% (exclude handler/persistence per bunfig.toml)
Unit FEsrc/lib + composable/hooks/storeCoverage ≥ 95% pada path itu; komponen UI = component test terpisah (bukan gate 95% global)
Kontrak APIOpenAPI + Zodinfo.version bump wajib; mirror docs diisi Deploy backend main
Integrasi BEModul + PostgresService postgres di CI · drizzle-kit push · seed · assert app.request() · script test:integration · job terpisah dari unit
E2E webPlaywrightJob CI: playwright install --with-deps chromium; API di-mock lewat page.route (suite default tanpa secret E2E_*; tag @live opsional)
E2E mobileMaestroGate manual vs APK debug (owner Atin + assignee card); bukan CI — emulator terlalu lambat/flaky
Manual / UATChecklist [Test]Owner Atin; target adoption ≥ 80%

Indeks di bawah = skenario utama untuk DoD / UAT. Detail langkah hidup di spek e2e/ + body card [Test]; aturan domain di PRD §10; inventaris layar di Screens. Jangan menduplikasi Given/When/Then di dokumen ini.

Integrasi BE (test:integration)​

Assert HTTP via app.request() terhadap Postgres (seed + drizzle-kit push). Bukan alur UI.

Modul / pathSkenario (happy path)StoryGate
AuthLogin valid → JWT; kredensial salah / user nonaktif ditolakAUTH-01CI job integration
Users / RBACGET /me; route HRD ditolak untuk role karyawanAUTH-02/03CI bila slice terkait
AttendanceClock-in/out tersimpan + validasi geofence server-sideATT-01…05CI bila slice terkait
LeaveSubmit pengajuan → approve/reject (alasan wajib saat tolak)LV-01/02CI bila slice terkait
OvertimeSubmit lembur → approve/rejectOT-01/02CI bila slice terkait
ReportsGenerate/rekap siap unduh (Excel)RPT-02/03CI bila slice terkait
NotificationsOutbox FCM / in-app status approvalNTF-02CI bila slice terkait

Edge case & reason codes (FACE_*, OUT_OF_GEOFENCE, dll.) cukup di unit + PRD — jangan wajib di setiap suite integration.

E2E web (Playwright)​

Suite default: API di-mock (page.route). Smoke CI tanpa secret E2E_*.

SkenarioScreensRoleArtefakGate
Shell brand——web/e2e/smoke/shell.spec.tsCI smoke
Login → dashboardW-A01Supervisorweb/e2e/auth/login.spec.tsCI setelah UI merge
Inbox + tolak leave (alasan wajib)W-AP01→03Supervisorweb/e2e/approvals/inbox.spec.tsCI setelah UI merge
Hub laporan → unduh ExcelW-R01→03HRDweb/e2e/reports/export.spec.tsCI setelah UI merge

E2E mobile (Maestro)​

SkenarioScreensRoleArtefakGate
Shell brand——mobile/e2e/smoke/shell.yamlManual (tag smoke)
LoginM-A02 → M-H01Karyawanmobile/e2e/auth/login.yamlManual vs APK
Clock-in happy pathM-H01 → M-ATT01…04Karyawanmobile/e2e/attendance/clock-in.yamlManual vs APK
Ajukan cutiM-LV01→02→04Karyawanmobile/e2e/leave/submit.yamlManual vs APK

Owner gate Maestro: Atin + assignee card [Test]. Bukan CI.

Manual / UAT​

Card board [Test] (owner Atin) menutup gap yang tidak diotomasi (wajah native, GPS nyata, FCM device). Target adoption ≥ 80% skenario utama di atas lulus sebelum release S8. Checklist boleh ditulis di body issue sebelum DoR §5.2 terpenuhi; eksekusi setelah UI + client API di main / development.

3.5 Deployment & release​

TriggerLingkungan
Push mainWorker / Pages development
Tag v*Worker / Pages production · APK stg

3.6 Maintenance, evaluasi & karya ilmiah​

Bugfix UAT Minggu 7–8; release + presentasi Minggu 8.

Karya ilmiah (karil) dikerjakan paralel dengan build (owner Atin), melanjutkan struktur metopen UT (Bab I–V / R&D). Lihat §4.1.


4. Jadwal & mapping fase ↔ sprint (1 minggu)​

Sprint board = Senin → Minggu (field Sprint di Project #2; startDay = Senin).

SprintTanggal (dari · Senin)FaseFokusArtefak
S12026-09-21AnalisisWawancara, requirementPRD Locked + retro foundation cards (Done)
S22026-09-28Kickoff paralelAuth/shell mobile + web; kontrak API; Karil Bab ILogin/home skeleton + outline naskah
S32026-10-05Build paralelAttendance (face/GPS) + Approvals + notif feed UI; Karil Bab II teoriClock-in + inbox + M-N01
S42026-10-12Build paralelLeave + Reports + riwayat UI + tim web; Karil Bab II lit. reviewLeave + ekspor + history UI
S52026-10-19Build paralelOT + HRD users + notif API; Karil Bab III metodeLembur + kelola akun + FCM
S62026-10-26Build + integrasiGeofence + face enroll + history API; Karil instrumen Bab IVP1 lokasi & enrollment
S72026-11-02Polish + UAT startP2 sisa + UAT; Karil Bab IV draftUAT checklist berjalan
S82026-11-09UAT & ReleaseDeploy + Karil Bab V + finalisasi naskah + presentasiTag v1.0.0 + karil PDF

Urutan jenis kerja: [Contract] / [UI] → Backlog di awal sprint → [Impl] / [API] (Icebox sampai kontrak/UI siap) → [Test] (Icebox sampai UI + wire API siap; lalu Backlog / eksekusi).

4.1 Karya ilmiah (karil) — lanjutan metopen​

Naskah ilmiah capstone melanjutkan bentuk metopen UT (contoh struktur: Bab I Pendahuluan → Bab II Kajian pustaka → Bab III Metode R&D → Bab IV Hasil/pembahasan → Bab V Kesimpulan). Topik = Nexus Ops (bukan topik metopen individu lain); isi Bab I–III diadaptasi dari PRD + Infrastructure + proposal kelompok.

SprintCard board (assignee Atin)Bab / fokus
S2docs#12Outline + Bab I Pendahuluan
S3docs#13Bab II Landasan teori
S4docs#14Bab II Penelitian terdahulu & kerangka
S5docs#15Bab III Metode (R&D ↔ SDLC)
S6docs#16Bab III Instrumen/metrik + kerangka Bab IV
S7docs#17Bab IV Hasil & pembahasan (draft)
S8docs#18 + docs#10Bab V + finalisasi naskah + presentasi

Accountable: Atin. Tim menyuplai data UAT, screenshot, dan review teknis. Prefix board: [Docs] Karil — … · label karil.


5. Scrum (sprint 1 minggu)​

5.1 Ritme​

EventFrekuensiTujuan
Sprint1 minggu (S1…S8), mulai SeninIncrement; BE ∥ mobile ∥ web
Sprint planningAwal sprint (Senin)Ambil sprint:@current (bukan Icebox)
Daily syncSingkatBlocking & handoff
Sprint reviewAkhir sprintDemo
RetroAkhir sprintProses

5.2 Definition of Ready (DoR)​

Item siap dikerjakan jika:

  1. User story / AC jelas (atau merujuk PRD Locked).
  2. Dependensi teknis diketahui.
  3. Estimasi muat dalam sprint (field Estimate di board).
  4. [UI]: frame Figma ada + daftar testID di Design System §7 + nama token diketahui.
  5. [Impl] / [API]: [Contract] sudah merge dengan info.version OpenAPI naik.
  6. [Test] (manual / E2E): layar terkait sudah punya UI + client API di main (atau env development) sehingga skenario bisa dijalankan tanpa skip massal; checklist/spek boleh ditulis lebih awal di body issue.

5.3 Definition of Done (DoD)​

  1. Kode di main lewat CI.
  2. Backend: coverage unit ≥ 95%; integration hijau bila menyentuh modul terkait.
  3. Perubahan API: OpenAPI info.version naik + publish ke docs/static/openapi.json.
  4. Tidak ada secret di Git.
  5. Demoable di development.
  6. Docs terkait diperbarui bila perilaku berubah.
  7. UI: testID / data-testid terpasang sesuai registry.

5.4 Disiplin kontrak OpenAPI​

  1. Backend generate & commit openapi.json; bump info.version setiap perubahan path/schema.
  2. Setelah merge ke main, job Deploy backend menulis mirror publik docs/static/openapi.json (bukan CI anti-drift di FE).
  3. Web/mobile: npm run api:sync saat mulai kerja / setelah contract di main — commit hasil Orval di PR klien.

5.5 Estimate di board​

Field Estimate (story points / jam relatif) diisi untuk semua item agar bobot per sprint per orang terverifikasi di board, bukan hanya di chat. Assignee tidak diganti saat rebalance — hanya Sprint / Estimate.


6. Alur kerja Git & quality gate​

Panduan: Git Workflow. Setup: Dev Setup.


7. Peran & tanggung jawab​

AnggotaGitHubPeranTanggung jawab SDLC
Atin MulyantoatmcorporationProject Leader & Analyst + Manual Tester + penulis karya ilmiahBacklog, [Test], UAT sign-off, Maestro gate, naskah karil Bab I–V
Akmal SyarifudinakmalsyrfBackend & InfrastructureAPI, DB, face server-side, FCM/R2, CI/CD
Leonardus Sunu KristiantoleokristMobile DeveloperAuth/home, absensi (kamera + GPS + face), profil/enrollment
Asep Muhammadasepmuhamad1300-ctrlUI/UX & Web FrontendFigma, design system, web dashboard
Moch Riswan Lutfin AnfaanfariswanMobile & Web FrontendLeave/OT/notif mobile; geofence & web pendukung
note

atmcorporation (Atin) ≠ anfariswan (Anfa).

FaseAR
Analisis / PRDAtinTim
Desain UIAsepAtin (review AC)
BackendAkmal—
Mobile (absensi/auth)LeonardusAkmal (kontrak)
Mobile (leave/OT/notif)AnfaAkmal (kontrak)
WebAsep (+ Anfa area assign)Akmal (kontrak)
Tes manual / UATAtinSeluruh tim (fix)
Karya ilmiah (karil)AtinTim (data UAT, screenshot, review teknis)
ReleaseAkmal (tag/deploy)Atin (sign-off)

8. Manajemen risiko proses​

Risiko prosesMitigasi
Requirement bergeserChange kecil lewat backlog; besar = update PRD + Leader
Sprint overloadPotong MVP; defer P1
Blocking antar-repoKontrak OpenAPI dulu; mock di klien
UAT terlambatSlot Minggu 7 sejak analisis
CI merah menumpukLarangan merge; fix hari yang sama
Label Icebox ≠ StatusAutomation hapus label Icebox saat promote

Risiko produk: PRD §12.


9. Artefak per fase (checklist)​

FaseArtefak wajib
AnalisisPRD Locked
DesainInfra Locked, design system, screens, ERD
BuildKode, OpenAPI versioned, coverage CI
TestingIntegration BE · Playwright CI · Maestro manual · checklist Atin
UATHasil skenario pass/fail
ReleaseTag v*, catatan rilis, naskah karil Bab I–V (PDF), presentasi

10. Riwayat revisi​

VersiTanggalPerubahan
0.1.02026-09-23Draft awal SDLC
0.1.1–0.1.62026-09-24Sprint 1 minggu, paralel, FCM/R2, automation, rebalance
1.0.02026-09-24Locked: DoR testID/contract, coverage scope, Playwright CI + Maestro manual, OpenAPI via Deploy publish, Estimate field
1.0.12026-09-25Otomasi Backlog: hanya [Contract]/[UI]; [Test] Icebox sampai UI+API siap (DoR §5.2)
1.0.22026-09-25Karil paralel S2–S8 (Atin); mapping Bab I–V lanjutan metopen; card docs#12–#18
1.0.32026-09-25S1 artefak: retro foundation cards (Done) di board — pekerjaan fondasi docs/backend/web/mobile
1.0.42026-09-26§3.4: indeks skenario utama integration BE + E2E web/mobile + rujukan UAT [Test]
1.0.52026-09-28Sprint board & jadwal §4: mulai Senin (S1 21 Sep … S8 9 Nov); selaras Project #2

Referensi​