Saya telah bekerja dengan beberapa konsep pemrograman ekstrem dasar selama dua minggu terakhir, untuk skala kecil, untuk-untung, multi-pemain, game arcade. Saya menghabiskan waktu seminggu untuk mengembangkan cerita pengguna dan menentukan persyaratan untuk membuat rencana rilis. Saya juga menghabiskan satu minggu coding dan menerapkan rencana iterasi pertama yang saya buat. Saya telah mengidentifikasi beberapa konsep yang jelas berguna untuk satu pengembang.
- Integrasi berkelanjutan
- Jangan Tambah Fungsi Sejak Dini
- Pengembangan Berbasis Tes
- Pilih Metafora Sistem
- Gunakan Titik Integrasi tunggal
- Uji semua bug
- Terus-menerus refactor
- Tetapkan langkah berkelanjutan
- Kesederhanaan
- Rilis yang Sering
Saya ingin tahu apakah saya kehilangan sesuatu secara khusus yang mungkin cocok untuk bekerja dengan satu proyek pengembang?
Juga, dalam hal ini mengingat gagasan tentang kesederhanaan dan pengembangan yang didorong oleh pengujian, apakah lebih baik menggunakan platform yang mapan, kaya fitur, dan siap pakai?
Atau haruskah saya bekerja dari bawah ke atas, jika layak, untuk menghindari masalah yang disajikan dengan aturan seperti terus-menerus melakukan refactoring dan tidak pernah menambahkan fungsionalitas lebih awal?
sumber
Jawaban:
Pada akhirnya, Extreme Programming adalah tentang serangkaian praktik dan metodologi yang mengarah pada peningkatan nilai bisnis. Ilustrasi terbaik dari hal ini yang saya temukan adalah dari http://c2.com/cgi/wiki?ExtremeProgrammingEnablingChart
Semuanya berwarna biru adalah bagian dari inti XP.
Ada bagian-bagiannya yang berada di luarnya yang membantu mengaktifkan hal-hal di dalam area biru dan merupakan bagian dari XP secara keseluruhan, tetapi tidak penting untuk itu. Perhatikan bahwa saya pribadi bukan seorang praktisi XP dan saya telah membaca cukup banyak kritik terhadap orang "hampir" mengikuti XP yang dikatakan berbagai orang bukanlah XP. Biarkan aspek Dogma XP disisihkan sebentar dan lihat apa yang kita miliki.
Sadarilah bahwa salah satu yang pertama dan untuk banyak hal adalah memiliki komitmen terhadap proses dari pelanggan. Komponen utama XP adalah keterlibatan pelanggan. Ini muncul di sejumlah tempat seperti perencanaan rilis, rilis kecil, evaluasi pelanggan di luar kantor. Ini adalah hal-hal yang pelanggan Anda harus berlangganan jika Anda ingin sukses di XP sebagai pengembang solo. Jika mereka meminta desain dan periode pengembangan lalu pengujian dan semacamnya, Anda tidak akan memiliki komitmen dari mereka untuk melangkah lebih jauh.
XP bukan berarti tidak ada perencanaan. Ada beberapa poin dalam hal ini di mana perencanaan merupakan bagian darinya - penentuan prioritas, perkiraan cerita pengguna, perencanaan iterasi, dan definisi tugas. Meskipun Anda adalah satu pengembang dalam hal ini, ini adalah hal-hal yang perlu Anda kerjakan dengan pelanggan Anda dalam pengiriman.
Poin seperti kepemilikan kolektif kode dan pemrograman pasangan adalah hal-hal yang melibatkan lebih dari satu. Memutuskan hal-hal seperti standar pengkodean jauh lebih mudah, tetapi itu tidak berarti Anda tidak harus mengikuti mereka. Kepemilikan kode kolektif masih berlaku - hanya saja kepemilikannya juga merupakan pengembang berikutnya - jangan menulis kode hanya untuk Anda dan Anda sendiri. Perhatikan bahwa ini dalam beberapa tingkat konflik dengan 'kode mengungkapkan semua niat' yang diaktifkan oleh pemrograman berpasangan - Anda tidak memiliki orang itu untuk memeriksa apakah Anda menulis kode yang dapat dipertahankan sehingga dokumentasi kode juga penting.
Terlepas dari peringatan itu, banyak prinsip desain XP masih berlaku. Hal-hal seperti uji desain pertama, integrasi berkesinambungan, pertemuan dengan pelanggan, refactoring, YAGNI, solusi spike - panggilan itu dapat dilakukan secara solo.
Sadarilah bahwa solo XP membutuhkan lebih banyak atau lebih disiplin daripada XP biasa. XP sering dianggap sebagai metodologi disiplin tinggi karena mengharuskan orang untuk mempertahankan kepatuhan ketat terhadap praktik terbaik yang dicoba untuk diwujudkan. Ketika Anda tidak memiliki pelatih atau orang lain untuk mendukung disiplin yang diperlukan itu dapat jatuh ke hanya gado-gado praktik yang mirip dengan XP.
Bacaan terkait:
Saya ingin mengeluarkan kutipan dari tautan c2 pertama:
sumber