Apa itu SDD?
Pengembangan Berbasis Spesifikasi (Specification-Driven Development) adalah metodologi pengembangan yang dengan jelas mendefinisikan "apa yang akan dibuat" sebelum menulis kode.
Untuk menjelaskannya dengan sederhana, ini adalah dokumen perencanaan yang ditulis sebelum pengembangan, dan dapat dipahami secara kasar sebagai dokumen yang hanya berisi persyaratan.
Filosofi Inti
Cara Tradisional | Cara SDD |
|---|
Kode adalah sumber kebenaran | Spesifikasi adalah sumber kebenaran |
Spesifikasi adalah dokumen referensi | Spesifikasi menghasilkan kode |
Kode dulu, dokumen nanti | Spesifikasi dulu, implementasi nanti |
Mengapa SDD?
Menetapkan Tujuan yang Jelas: Tentukan "apa" dan "mengapa" sebelum membuatMengurangi Biaya Revisi: Merevisi spesifikasi jauh lebih murah daripada merevisi kode setelah ditulisMemaksimalkan Penggunaan Alat AI: Memberikan instruksi yang jelas kepada AI seperti Claude CodeMeningkatkan Komunikasi: Berbagi pemahaman yang sama dengan anggota tim/klien
Tujuannya adalah untuk berulang kali menyampaikan persyaratan saya.
Dengan AI generatif, Anda akan bertemu dengan banyak kembar di jendela percakapan yang sedang berlangsung.
Aktor yang menjawab terus berubah.
Tidak mungkin membuat mereka memahami pekerjaan saat ini setiap kali.
Ini adalah konsep yang jauh lebih penting daripada 1~4 di atas.
Contoh di bawah tidak ditulis oleh saya, tetapi versi yang ditulis dengan templat sederhana.
# [Nama Fitur]
## Ringkasan
> Jelaskan dalam satu baris apa yang akan dibuat
## Cerita Pengguna
**Siapa**: [Tipe Pengguna]
**Menginginkan**: [Fitur]
**Alasan**: [Tujuan/Nilai]
## Spesifikasi Operasi
- **Input**: [Tindakan yang dilakukan pengguna]
- **Pemrosesan**: [Apa yang dilakukan sistem]
- **Output**: [Hasil yang dilihat pengguna]
## Kendala
- [Keterbatasan 1]
- [Keterbatasan 2]
## Kriteria Penyelesaian
- [ ] [Kondisi dapat diuji 1]
- [ ] [Kondisi dapat diuji 2]
- [ ] [Kondisi dapat diuji 3]
Di bawah ini adalah contoh penerapan templat di atas.
# Fitur Pencarian Buku
## Ringkasan
> Pengguna mencari buku berdasarkan kata kunci dan melihat daftar hasil
## Cerita Pengguna
**Siapa**: Pengguna Perpustakaan
**Menginginkan**: Mencari buku berdasarkan judul atau nama penulis
**Alasan**: Untuk menemukan buku yang diinginkan dengan cepat
## Spesifikasi Operasi
- **Input**: Masukkan kata kunci 2 karakter atau lebih di kotak pencarian, lalu tekan Enter atau klik tombol pencarian
- **Pemrosesan**:
- Periksa apakah judul dan nama penulis mengandung kata kunci
- Pencarian tidak peka terhadap huruf besar/kecil
- Tampilkan hingga maksimal 50 hasil
- **Output**:
- Jika ada hasil: Daftar buku (judul, penulis, tahun terbit)
- Jika tidak ada hasil: Pesan "Tidak ada hasil pencarian"
## Kendala
- Pencarian 1 karakter tidak diizinkan (minimum 2 karakter)
- Pencarian karakter khusus tidak diizinkan
- Jika hasil pencarian lebih dari 50, tampilkan "Hasil pencarian terlalu banyak. Silakan masukkan kata kunci yang lebih spesifik"
## Kriteria Penyelesaian
- [ ] Saat mencari "Python", tampilkan buku dengan "Python" di judulnya
- [ ] Saat mencari "Hong Gildong", tampilkan buku dengan penulis "Hong Gildong"
- [ ] Saat memasukkan 1 karakter, tampilkan panduan "Harap masukkan 2 karakter atau lebih"
- [ ] Saat tidak ada hasil, tampilkan pesan panduan
- [ ] Sama-sama tidak peka terhadap huruf besar/kecil, "Python" dan "python" menampilkan hasil yang sama
Menggunakan dengan Alat AI
Jika Anda menyampaikan spesifikasi kepada AI, ini akan menghasilkan kode yang jauh lebih akurat.
Mohon lakukan implementasi sesuai spesifikasi berikut.
[Paste konten spesifikasi]
Ringkasan Inti
- Spesifikasi = Kontrak: Dokumen untuk menyetujui apa yang akan dibuat
- Kriteria Penyelesaian adalah Kunci: Harus dapat diuji untuk menjadi spesifikasi yang sebenarnya
- Mulai dari yang Kecil: Mulai dengan fitur sederhana terlebih dahulu saat berlatih
- Simpan Dokumen: Periksa spesifikasi terlebih dahulu saat merevisi nanti
Materi Referensi
Pengembangan dengan AI menghasilkan banyak metode seperti pola desain, tetapi mengoptimalkan cara yang sesuai untuk Anda
jauh lebih mudah dipahami dan menjadi sederhana ketika filosofi pengembangan pribadi Anda diterapkan.
Jika Anda menerapkan TDD secara agresif, itu akan menjadi melelahkan, jadi ambil esensinya dan terapkan, atau sekarang bukan tentang pengkodean apa
melainkan tentang bagaimana memberikan pekerjaan kepada AI secara efektif.
Tidak ada konten khusus, tetapi saya harap ini bermanfaat.