Pemrograman Ekstrim untuk pengembang tunggal [ditutup]

10

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?

Kody Manharth
sumber
5
Elsesite, di c2.com (situs yang dibuat lebih awal untuk beberapa diskusi tentang konsep lincah (dan khususnya XP)) - Extreme Programming For One
Itu sumber yang luar biasa, terima kasih. Saya khususnya menyukai gagasan XP Pledge of Allegiance.
Kody Manharth
Jika Anda membaca dengan cermat, Anda akan menemukan nama-nama seperti Ron Jeffries dan Kent Beck yang berkomentar ... dan itu adalah Wiki Ward .
Jadi ini ditulis oleh pencipta paradigma, itu fantastis. Tidak tahu bagaimana saya belum sengaja menemukannya. Saya telah menggunakan www.extremeprogramming.org
Kody Manharth
2
Tidak ada peluru tunggal dalam pertanyaan Anda yang wajib untuk pengembangan perangkat lunak yang sukses. Pertanyaan sebenarnya adalah, mana yang sebenarnya Anda butuhkan?
Robert Harvey

Jawaban:

5

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

Pemberdayaan Program Ekstrim

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:

Tercatat Bahasa Term termasyhur, dan ilmuwan gila, Damian Conway percaya bahwa Extreme Programming sebenarnya adalah istilah yang salah. Karena ia mewujudkan banyak praktik pemrograman yang baik yang diajarkan oleh programmer tetapi hampir pasti diabaikan, ia percaya bahwa itu seharusnya benar-benar disebut Ultra Conservative Programming


sumber
Mencerahkan, untuk sedikitnya. Saat ini saya sedang berurusan dengan masalah dalam hal TDD, di Flash menggunakan Starling. Saya menggunakan FlexUnit, dan tidak memiliki kemampuan untuk menangani pengujian grafis karena tanpa kepala. Apakah akan tepat dalam kasus seperti ini untuk hanya mendelegasikan tes ini ke pemeriksaan manual (mis. Apakah tes untuk logo terpusat di layar). Apakah ini akan dianggap pengujian integrasi? (yaitu apakah modul layar Splash berfungsi dengan modul tahap Flash dengan benar?) Apakah saya harus menggunakan kerangka kerja mengejek untuk mensimulasikan situasi yang diperlukan? Bisakah tes menjadi konstruksi murni dan halus?
Kody Manharth