Merilis, dan Bekerja Sebagai Developer · 5/8
Mengubah tiket jadi rencana
Menemukan kebutuhan sebenarnya, melihat apa yang belum disebut, dan mengestimasi tanpa berbohong.
Baca 25 menit
Setelah pelajaran ini kamu bisa
- Menemukan kebutuhan sebenarnya di balik tiket yang kabur
- Melihat apa yang tidak disebutkan sebuah tiket
- Memecah pekerjaan jadi bagian yang bisa dirilis terpisah
- Memberi estimasi yang jujur soal ketidakpastian
Sebuah tiket adalah ringkasan dari percakapan yang tidak kamu ikuti. Hal paling bernilai yang dilakukan seorang developer sebelum menulis kode adalah mencari tahu apa yang sebenarnya dimaksud — dan pertanyaannya biasanya lebih berguna daripada jawabannya.
TICKET-482: Add search to the venues page
Users should be able to search for venues.- Mencari apa? Hanya nama, atau deskripsi dan tag dan owner juga?
- Tepat atau sebagian? Apakah "vil" menemukan "Villa Sunset"? Haruskah begitu?
- Huruf besar-kecil dan aksen? Apakah "villa" menemukan "Villa"? Apakah "melati" menemukan "Melati"?
- Kapan ia berjalan? Saat mereka mengetik, atau saat submit? Saat mengetik berarti satu request per ketikan kecuali kamu memakai debounce.
- Berapa banyak hasilnya? Semuanya, atau dipaginasi? Bagaimana kalau ada 5.000?
- Bagaimana kalau tidak ada yang cocok? Daftar kosong adalah laporan bug yang menunggu terjadi; *empty state* adalah sebuah fitur.
- Siapa boleh melihat apa? Haruskah seorang learner menemukan venue privat tim lain?
- Apakah harus cepat? 100 row atau 100.000 menentukan apakah kamu butuh index.
Kriteria penerimaan
TICKET-482: Add search to the venues page
Search matches on venue NAME only, case-insensitively, partial matches allowed.
Runs on submit (not per keystroke) for this first version.
Shows at most 20 results, newest first, with a "no venues match" empty state.
Only returns venues the signed-in user is allowed to see.
Out of scope for now: searching descriptions, tags, pagination, typo tolerance.
Done when:
[ ] Searching "vil" returns "Villa Sunset" and "Villa Rain"
[ ] Searching "VILLA" returns the same results as "villa"
[ ] Searching "zzz" shows the empty state, not a blank page
[ ] A learner cannot find another team's private venue
[ ] The query uses an index (EXPLAIN QUERY PLAN shows SEARCH, not SCAN)
[ ] Tests cover the empty result and the permission caseMengestimasi dengan jujur
Estimasi salah dengan arah yang bisa diprediksi: terlalu rendah. Bukan karena orang terlalu optimis soal kecepatan mengetik, tapi karena estimasi mencakup kode yang kamu bayangkan dan bukan pekerjaan di sekitarnya.
Ke mana estimasi sebenarnya pergi. Menulis kodenya jarang jadi bagian terbesar.
Hasil
Tekan Jalankan untuk melihat hasilnya.
Ini jalan di browser kamu, di dalam sandbox. Apa pun yang kamu tulis di sini tidak bisa merusak situs.
Tugas praktik
Ambil tiket ini dan ubah jadi kriteria penerimaan: "Izinkan lead mengekspor progres tim." Tulis minimal delapan pertanyaan, usulkan jawaban untuk masing-masingnya, daftar apa yang di luar cakupan, dan beri estimasi tiga titik. Lalu cek terhadap app/[lang]/dashboard/page.tsx untuk melihat apa yang sudah ada.
Hasil yang diharapkan
Format apa? Field mana? Learner yang mana? Izinnya? Nama file? Batas ukuran?