TuBrief
구독 채널
비디오
커뮤니티

Kriteria bagi Junior Developer yang Bekerja Sendiri di Startup untuk Menyelesaikan Sprint Tanpa Lembur

TuBrief 편집팀
2026년 8월 22일
0
Mental Health

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

Bahasa Indonesia한국어العربيةPortuguêsEnglishहिन्दीРусскийEspañolDeutsch中文Français日本語

관련 영상

Berhenti Berusaha Menjadi Sempurna43:49

Berhenti Berusaha Menjadi Sempurna

Dr. Arthur Brooks

커뮤니티의 다른 글

영업 미팅에서 고객이 동의한다고 말할 때 진짜 속마음 읽어내는 법

2026년 8월 24일

재택 디자이너가 외출할 때 사람 목소리와 인파에 급격히 지치는 이유

2026년 8월 24일

4 Ways to Get Better at Friendship

2026년 8월 23일

영업 미팅에서 고객 방어벽을 뚫는 대화법

2026년 8월 23일

출입증 뒤의 메모 한 줄이 첫 미팅의 침묵을 깬다

2026년 8월 23일

휴가 때 슬랙 지우고 온콜 넘기기 위한 백엔드 인수인계 절차

2026년 8월 22일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

Kriteria bagi Junior Developer yang Bekerja Sendiri di Startup untuk Menyelesaikan Sprint Tanpa Lembur

Saat mengembangkan frontend sendirian tanpa seorang mentor, Anda akan dikejar oleh kecemasan teknis. Pola di mana Anda meletakkan buku Clean Code di samping Anda, memikirkan abstraksi yang sempurna, dan akhirnya mengalami burnout tepat sebelum batas waktu sprint akan terus berulang. Yang Anda butuhkan bukanlah arsitektur yang sempurna, melainkan kriteria realistis untuk merilis produk yang berfungsi tepat waktu.

Abstraksi yang Salah Lebih Mahal daripada Duplikasi Kode

Pakar desain perangkat lunak Sandi Metz menunjukkan bahwa biaya untuk menghilangkan abstraksi yang salah jauh lebih besar daripada biaya mempertahankan kode duplikat. Faktanya, Dan Abramov juga memperingatkan bahwa penghapusan duplikasi secara paksa dapat merusak fleksibilitas komponen.

Masalah yang disebabkan oleh penyalinan kode sederhana biasanya dapat diperbaiki dalam waktu sekitar 50 menit di dalam file yang bersangkutan. Di sisi lain, hook bersama atau struktur pewarisan yang dibuat secara terburu-buru akan menghasilkan banyak percabangan if-else bahkan ketika persyaratan berubah sedikit saja. Pada akhirnya, menemukan bug saja bisa memakan waktu lebih dari 2 minggu.

Keputusan untuk melakukan refaktorisasi ditentukan berdasarkan Kuadran Utang Teknis Martin Fowler dan Analisis Hotspot Adam Tornhill.

Area Kriteria (Kompleksitas & Frekuensi Perubahan) Cara Penanganan
Perbaikan Segera Dampak bisnis tinggi × Frekuensi perubahan tinggi Tulis pengujian dan rapikan antarmuka segera setelah implementasi fitur, lalu sebarkan
Perbaikan Opsional Dampak bisnis tinggi × Frekuensi perubahan rendah Daftarkan sebagai tiket utang di backlog
Sebarkan Saja Dampak bisnis rendah × Frekuensi perubahan tinggi Verifikasi fungsionalitas minimum dan sebarkan, dilarang melakukan abstraksi
Tunda Pekerjaan Dampak bisnis rendah × Frekuensi perubahan rendah Lewati perbaikan meskipun kodenya berantakan

Urutan Tugas Klasifikasi Kode

  1. Periksa apakah komponen yang sedang Anda kerjakan adalah logika inti seperti pembayaran atau autentikasi (hotspot) atau sekadar tampilan promosi.
  2. Jika itu adalah tampilan promosi, tulis secara inline di dalam komponen alih-alih merancang custom hook bersama.
  3. Salin dan tempel kode sampai perilaku UI yang sama berulang 3 kali atau lebih.

Dengan menerapkan kriteria ini, Anda dapat mengurangi waktu yang dihabiskan untuk tugas generalisasi yang tidak perlu dan meningkatkan kecepatan pengembangan secara keseluruhan.

Pengaturan Pemeriksaan Statis untuk Mengurangi Komentar Ulasan Kode

Kritik gaya seperti nama variabel, pemenggalan baris, atau pelanggaran aturan lint harus disaring menggunakan alat bantu.

Menurut penelitian oleh SmartBear yang menganalisis 2.500 ulasan kode di Cisco Systems, 70% hingga 90% cacat ditemukan ketika jumlah kode yang ditinjau pada satu waktu kurang dari 200 baris. Ketika pembuat meninggalkan komentar di PR yang menjelaskan alasan perubahan secara langsung, kepadatan cacat berkurang rata-rata 30%.

Urutan Analisis Statis dan Pemeriksaan Mandiri

  1. Daftarkan aturan React dan TypeScript di ESLint 9 Flat Config.
  2. Integrasikan Husky dan lint-staged untuk memaksa pemeriksaan pemformatan pada waktu commit.
  3. Pastikan kode berada dalam batas 300 baris berdasarkan logika murni sebelum mengunggah PR, dan tinggalkan komentar ulasan mandiri pada pernyataan percabangan yang rumit.

`javascript
// eslint.config.js
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import pluginReact from "eslint-plugin-react";
import pluginReactHooks from "eslint-plugin-react-hooks";
import eslintConfigPrettier from "eslint-config-prettier/flat";

export default tseslint.config(
{ ignores: ["dist/", "node_modules/", "build/"] },
js.configs.recommended,
...tseslint.configs.recommended,
pluginReact.configs.flat.recommended,
eslintConfigPrettier,
{
files: ["**/*.{js,jsx,ts,tsx}"],
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
globals: globals.browser,
},
plugins: {
"react-hooks": pluginReactHooks,
},
rules: {
"react/react-in-jsx-scope": "off",
"react/prop-types": "off",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
"@typescript-eslint/no-explicit-any": "warn",
},
settings: {
react: { version: "detect" },
},
}
);

`

Menerapkan pengaturan ini ke repositori Anda akan mengurangi umpan balik ulasan terkait gaya dan memungkinkan Anda untuk fokus pada verifikasi logika yang sebenarnya.

Timeboxing untuk Memisahkan Implementasi dan Perapihan

Jika Anda mengembangkan fitur sambil merombak struktur secara bersamaan, konteks kerja Anda akan terganggu. Menurut penelitian teknik Google, ketika unit PR dipecah menjadi bagian kecil dan niat kerja dinyatakan secara jelas, waktu tunggu ulasan kode berkurang dari 48 jam menjadi 4 jam.

Bagilah waktu kerja sehari ke dalam sesi-sesi untuk mengendalikannya.

  • 70% dari hari kerja digunakan untuk implementasi fitur. Fokuslah pada memastikan persyaratan layar dan alur data bekerja secara normal, serta izinkan duplikasi kode.
  • 20% dari hari kerja digunakan untuk merapikan kode. Tangani hanya modifikasi nama variabel dalam cakupan, pembersihan import yang tidak digunakan, dan penyempurnaan tipe; jangan menyentuh restrukturisasi besar.
  • 10% dari jam kerja mingguan dialokasikan untuk sesi penyelesaian utang pada Jumat sore. Setelah penerapan selesai, tingkatkan struktur modul hotspot yang terdaftar di backlog.

Templat PR yang Menyatakan Batas Toleransi Cacat

  1. Tuliskan item utang teknis yang diizinkan di badan PR.
  2. Tinggalkan area di mana fungsionalitas fitur tidak terganggu tetapi refaktorisasi ditunda sebagai daftar periksa (checklist).
  3. Daftarkan item tersebut sebagai tiket sesi penyelesaian hari Jumat sebelum mengirimkan PR.

`markdown

개요

  • 작업 내용: 유저 프로필 수정 및 API 연동
  • 관련 이슈: #104

결함 허용 및 등록된 부채

  • 허용된 부채: 프로필 컴포넌트 내 스타일 로직 중복 (3회 미만 중복)
  • 허용된 부채: 에러 응답 시 alert 처리 (Toast 컴포넌트 연동 미룸)
  • 필수 리뷰 대상: 런타임 오류 및 비즈니스 데이터 처리 로직

`

Hal ini mendorong peninjau untuk memfokuskan umpan balik pada logika inti daripada gaya sekunder, sehingga mempersingkat waktu persetujuan.

Penerapan Bertahap untuk Mengurangi Efek Samping

Menulis ulang seluruh kode yang ada dari awal meningkatkan risiko gangguan yang terjadi di lingkungan produksi. Michael Feathers menyarankan agar saat memodifikasi kode lama, Anda harus terlebih dahulu menulis pengujian karakterisasi yang memperbaiki perilaku input-output saat ini daripada mengubah seluruh strukturnya.

Untuk mencegah layar membeku sepenuhnya menjadi putih saat terjadi kesalahan runtime, atur batas kesalahan (ErrorBoundary).

`typescript
// components/ErrorBoundary.tsx
import React, { Component, ErrorInfo, ReactNode } from "react";
import * as Sentry from "@sentry/react";

interface Props {
children: ReactNode;
fallbackUI?: ReactNode;
}

interface State {
hasError: boolean;
}

export class GlobalErrorBoundary extends Component<Props, State> {
public state: State = { hasError: false };

public static getDerivedStateFromError(_: Error): State {
return { hasError: true };
}

public componentDidCatch(error: Error, errorInfo: ErrorInfo) {
Sentry.captureException(error, { extra: { componentStack: errorInfo.componentStack } });
}

public render() {
if (this.state.hasError) {
return (
this.props.fallbackUI || (


UI 로딩 중 오류가 발생했습니다.


새로고침을 하거나 잠시 후 다시 시도해 주세요.



)
);
}
return this.props.children;
}
}

`

Prosedur Penerapan Bertahap

  1. Sebelum menyentuh logika lama,lampirkan pengujian untuk memverifikasi nilai pengembalian saat ini dan bungkus antarmuka dengan lapisan fasad (facade layer).
  2. Periksa status komunikasi API di lingkungan penerapan pratayang (preview), dan buka fitur baru untuk sejumlah kecil pengguna terlebih dahulu menggunakan Feature Flag.
  3. Jika tingkat kesalahan melebihi 5% dalam pemantauan Sentry setelah penerapan, segera jalankan perintah rollback.

`bash
git revert HEAD --no-edit
git push origin main

`

Dengan membagi unit kerja menjadi bagian-bagian kecil dan menciptakan lingkungan di mana Anda dapat kembali jika gagal, Anda dapat mengontrol kecemasan tentang modifikasi kode. Menyampaikan sistem yang berfungsi tepat waktu alih-alih struktur yang sempurna adalah dasar dari teknik praktis.