Tolong jelaskan mengenai Perencanaan (planning) dari Extreme programming

Kegiatan perencanaan dimulai dengan mendengarkan — kegiatan pengumpulan kebutuhan yang memungkinkan anggota teknis tim XP untuk memahami konteks bisnis perangkat lunak dan untuk mendapatkan perkiraan yang luas untuk luaran yang dibutuhkan dan fitur serta fungsionalitas utama. Mendengarkan mengarah pada penciptaan serangkaian "stories" yang menggambarkan luaran, fitur, dan fungsionalitas yang diperlukan untuk perangkat lunak yang akan dibangun. Setiap stories ditulis oleh pelanggan dan ditempatkan pada kartu indeks (index card). Pelanggan memberikan nilai (yaitu prioritas) ke stories berdasarkan nilai bisnis keseluruhan dari fitur atau fungsi. Anggota tim XP kemudian menilai setiap stories dan menetapkan biaya (cost) — diukur dalam minggu pengembangan — untuk stories tersebut. Jika stories diperkirakan membutuhkan lebih dari tiga minggu pengembangan, pelanggan diminta untuk membagi stories menjadi stories yang lebih kecil dan penugasan nilai dan biaya terjadi lagi. Penting untuk dicatat bahwa stories baru dapat ditulis kapan saja.

Pelanggan dan pengembang bekerja sama untuk memutuskan bagaimana mengelompokkan stories ke dalam rilis berikutnya (software increment berikutnya) untuk dikembangkan oleh tim XP. Setelah komitmen dasar (kesepakatan tentang stories untuk dimasukkan, tanggal pengiriman, dan masalah proyek lainnya) dibuat untuk rilis, tim XP mengurutkan stories yang akan dikembangkan dalam salah satu dari tiga cara: (1) semua stories akan segera diimplementasikan (dalam beberapa minggu), (2) stories dengan nilai tertinggi akan dipindahkan ke jadwal paling atas dan diterapkan terlebih dahulu, atau (3) stories paling berisiko akan dipindahkan ke jadwal paling atas dan diimplementasikan terlebih dahulu.

Setelah rilis proyek pertama (juga disebut software increment) telah disampaikan, tim XP menghitung project velocity. Secara sederhana, project velocity adalah sejumlah stories pelanggan yang diimplementasikan selama rilis pertama. Project velocity kemudian dapat digunakan untuk membantu memperkirakan tanggal pengiriman dan jadwal untuk rilis berikutnya dan menentukan apakah overcommitment telah dibuat untuk semua stories di seluruh proyek pengembangan. Jika terjadi overcommitment , konten rilis diubah atau tanggal pengiriman akhir diubah.

Ketika pekerjaan pengembangan berlangsung, pelanggan dapat menambahkan stories, mengubah nilai stories yang ada, membagi stories, atau menghilangkannya. Tim XP kemudian mempertimbangkan kembali semua rilis yang tersisa dan memodifikasi rencananya.