Uruskan pasukan tangkas dengan XPlanner

Skop, reka bentuk, membina, menguji, menyampaikan, meminta maaf. Ini adalah langkah-langkah yang sering dilalui metodologi kejuruteraan tradisional apabila diterapkan ke dunia perisian perisian. Sebagai pembangun perisian, anda mungkin sudah mengetahui keperluan sistem "akhir" yang nampaknya merunduk dan menenun seperti pejuang hadiah. Mungkin anda telah mengerjakan projek pembangunan hanya untuk muncul beberapa bulan (atau tahun) kemudian untuk menghadapi pelanggan yang kelihatan sangat kecewa kerana keperluan sebenarnya belum terpenuhi. Mungkin rakan sebaya anda berada pada titik di mana rancangan pembangunan jarak jauh yang teliti diletakkan sebelum mereka menanamkan azab yang akan datang. Intinya - pasukan anda sudah siap untuk maju dengan perkembangan yang tangkas, tetapi adakah alat pengurusan pasukan tradisional anda telah disusun untuk pengurusan pasukan tradisional?

Metodologi tangkas mungkin ringan, tetapi sangat disiplin. Apa-apa alat yang menyokong anda dalam merancang dan mengesan pengiriman cepat dengan kolaborasi pelanggan yang intim dapat membuat penambahan yang berharga untuk gudang senjata anda. Berita baiknya ialah beberapa alat seperti itu kini tersedia untuk pasukan tangkas. Artikel ini memperincikan pengalaman dunia nyata dalam menguruskan pasukan pengembangan tangkas menggunakan salah satu alat generasi baru ini, XPlanner sumber terbuka.

XPlanner adalah aplikasi Java Web yang dirancang untuk menyokong pengurusan pasukan mengikut metodologi pengaturcaraan ekstrim (XP). Walau bagaimanapun, kami mendapati alat ini cukup fleksibel untuk memberikan sokongan yang berharga untuk pendekatan tangkas arus utama yang lain (contohnya, Scrum) dalam kepanasan penyampaian projek. Walaupun tidak canggih, XPlanner menyediakan alat yang berguna untuk menyokong pasukan anda sama ada anda berpengalaman dengan, atau hanya melancarkan, dunia pengembangan perisian lincah yang bermanfaat.

Alat pengurusan pasukan tradisional berbanding tangkas

Alat pengurusan pasukan tradisional (seperti Microsoft's Project) berdasarkan struktur pemecahan kerja yang melihat masa depan projek. Peruntukan sumber daya yang terancang dan perhatian terhadap varians ke garis dasar digunakan untuk menguruskan "jalan kritikal" hingga penyampaian akhir. Penggunaan alat-alat seperti itu menyiratkan usaha perencanaan awal, ketergantungan tugas yang kaku, dan asas keperluan yang stabil. Perubahan yang signifikan terhadap skop atau keperluan mungkin memerlukan penyemakan yang signifikan terhadap model tersebut. Oleh itu, alat tradisional ini sangat sesuai ketika merancang perjalanan dari A ke B, dengan mengandaikan sedikit variasi dalam perjalanan. Sebaliknya, projek lincah diarahkan untuk mengharapkan perubahan, tidak membuat anggapan bahawa B bahkan akan menjadi tujuan akhir.

Dalam memahami budaya projek tangkas, adalah berguna untuk mempertimbangkan prinsip pengembangan tangkas seperti yang disokong oleh pengarang Manifesto Agile:

  • "Individu dan interaksi terhadap proses dan alat
  • Perisian yang berfungsi melebihi dokumentasi yang komprehensif
  • Kerjasama pelanggan atas rundingan kontrak
  • Menanggapi perubahan mengikut rancangan "

    (Kent Beck et al., 2001)

Oleh itu, projek lincah secara terang-terangan meninggalkan perancangan jangka panjang yang memihak kepada penglibatan pihak berkepentingan yang intim, fokus yang jelas pada ciri bernilai tinggi, dan melepaskan perisian yang dapat digunakan lebih awal dan sering. Tujuan asasnya adalah untuk memberikan nilai secara sederhana dan berkesan dalam menghadapi perubahan berterusan. Agar alat perancangan dan penjejakan menjadi berharga dalam konteks ini, ia mesti sesuai dengan nilai-nilai ini.

Perancangan dan penjejakan projek dengan XPlanner

XPlanner adalah alat perisian pengurusan projek yang tangkas yang terdapat di bawah Lesen Umum GNU Lesser General Public (menjadikannya "percuma, seperti dalam bir," dalam bahasa sumber terbuka). Pakej ini digunakan sebagai aplikasi Web, yang membolehkan ahli pasukan dan pihak berkepentingan projek anda masuk dengan menggunakan penyemak imbas Web kegemaran mereka. Setelah dikonfigurasikan, anda akan dapat merancang dan mengesan pelbagai aspek penyampaian projek lincah anda melalui antara muka Web yang mudah.

Secara penting, dari perspektif tangkas, peserta projek dapat berkolaborasi secara langsung dengan menyumbangkan maklumat mereka ke dalam repositori projek biasa. Kerjasama ini dapat melibatkan pelanggan menggambarkan keperluan projek dalam bentuk cerita pengguna, yang kemudian digunakan oleh pembangun untuk memperincikan dan mengesan tugas yang diperlukan untuk menjadikan cerita ini menjadi kenyataan.

Selain menyokong tahap kolaborasi pelanggan ini, XPlanner menyediakan ciri-ciri berguna lain yang menyokong pendekatan lincah. Ini merangkumi ciri-ciri seperti mekanisme sederhana untuk menentukan lelaran projek; antara muka intuitif untuk individu mengira dan mengesan usaha; dan carta untuk menerbitkan metrik pasukan. XPlanner dibahas di sini kerana ia digunakan untuk mendukung penyampaian sistem perdagangan elektronik dan aliran kerja yang terdiri dari beberapa kumpulan pemangku kepentingan dan sekumpulan tujuh pemaju.

Memuat turun dan memasang

XPlanner adalah aplikasi Java murni yang dapat digunakan dalam lingkungan pengembangan J2SE 1.4 yang dilengkapi dengan Apache Ant dan mesin servlet yang sesuai. Kami memilih Apache Tomcat sebagai enjin servlet; namun, mana-mana enjin yang sesuai dengan Servlet 2.3 (atau versi yang lebih baru) harus dilakukan. XPlanner dihantar sebagai arkib fail (zip atau tar.gz) yang mesti anda bongkar dan bina sebelum menggunakan dan menggunakan alat ini.

Langkah konfigurasi wajib terlibat kerana anda perlu menyediakan pangkalan data kegemaran anda untuk digunakan sebagai repositori untuk maklumat projek. Oleh kerana XPlanner menggunakan lapisan ketekunan objek / hubungan Hibernate untuk interaksi pangkalan data, anda mempunyai pilihan untuk menggunakan pangkalan data yang disokong oleh Hibernate untuk repositori projek anda. Pilihan yang dibundel adalah pangkalan data Java ringan Hypersonic (sekarang disebut HSQLDB); namun, kami menggunakan Oracle 9i sebagai pangkalan data repositori kami. Untuk mengkonfigurasi pangkalan data ini, kami harus mengedit fail xplanner.propertiesdengan membebaskan sifat Oracle yang sudah ditentukan. Kami juga perlu mengubah suai build.xmlfail untuk memasukkan pemacu pangkalan data tipis Oracle. Setelah dikonfigurasi, anda boleh membina penyebaran XPlanner anda. Ini melibatkan pelaksanaan Ant untuk menghasilkan arkib Web yang dapat diterapkan (WAR) seperti berikut:

ant install.db.schema ant build.war 

Sebarkan fail arkib Web yang dihasilkan ( xplanner.war) ke mesin servlet pilihan anda dan kemudian layari URL // pelayan anda: port-xplanner anda / (menggunakan pengguna lalai "sysadmin" dan kata laluan "admin") untuk memeriksa hasilnya!

Bersepadu dengan ekosistem anda

Sebilangan besar persekitaran pembangunan sudah ada sistem pengesanan bug, forum kolaborasi, sistem keselamatan, repositori piawai, dll. Walaupun berguna sebagai alat mandiri, nilai XPlanner dapat ditingkatkan melalui fitur integrasi yang sederhana dan kuat. XPlanner merangkumi, misalnya, kemampuan untuk menyokong rendering pembangun dalam bidang keterangan, seperti bug: 1001 sebagai pautan ke //mybugzilla/show_bug.cgi?uid=1001. Ini dapat dilakukan dengan hanya menambahkan twiki.scheme.bug=//mybugzilla/show_bug.cgi?id=ke xplanner.propertiesfail. Teknik yang sama ini boleh digunakan untuk alat berasaskan Web lain seperti viewcvs (xplanner.propertiesmenunjukkan beberapa contoh lain). XPlanner juga dilengkapi pemformat wiki lanjutan (tidak digunakan pada projek kami) yang membolehkan pautan automatik ke entri wiki. Maklumat lebih lanjut mengenai sambungan XPlanner boleh didapati di Sumber.

Di kebanyakan organisasi, selalu, beberapa bentuk LDAP (protokol akses direktori ringan) - pelayan direktori yang serasi menyediakan repositori terpusat bagi akaun keselamatan pengguna. Sebagai contoh, dalam organisasi yang menaja projek kami, pelayan LDAP kuno tetapi berfungsi berfungsi untuk tujuan ini (Direktori Aktif Microsoft juga banyak menyokong protokol LDAP). Sangat menyegarkan apabila mendapati XPlanner mudah XPlannerLoginModuledigabungkan dengan LDAP. Ini melibatkan pengemaskinian xplanner.propertiesseperti berikut:

-> Comment out default security #xplanner.security.login.module=com.technoetic.xplanner.security.XPlannerLoginModule

-> Uncomment and edit the LDAP entries from... xplanner.security.login.module=com.technoetic.xplanner.security.jndi.JNDILoginModule

-> ...to: xplanner.security.login.option.roleSearch=(uniqueMember={0})

-> Add user search entries xplanner.security.login.option.userBase=ou=people,o=person

-> And blank out values for xplanner.security.login.option.userPattern= xplanner.security.login.option.userPassword=

Dengan pembinaan semula dan pengerjaan yang cepat, keselamatan pengesahan XPlanner digabungkan sepenuhnya. Satu-satunya kelemahan adalah bahawa nama pengguna masih perlu ditambahkan secara eksplisit ke dalam XPlanner, tetapi sekurang-kurangnya kerumitan kata laluan dan keahlian kumpulan menjadi masalah meja bantuan korporat.

Pasukan, temui XPlanner

XPlanner melihat projek mengikut iterasi, kisah pengguna, dan tugas. Seperti yang ditentukan oleh paradigma Agile, setiap projek yang dikendalikan oleh XPlanner dirancang dan dijejaki mengikut siri lelaran berturut-turut. Setiap lelaran terdiri dari tarikh mula, tarikh akhir, dan koleksi cerita pengguna yang akan direkayasa dari cerita ke realiti dalam jangka masa tersebut.

Cerita pengguna adalah alat konsep utama yang digunakan dalam pengembangan tangkas untuk menyampaikan keperluan pelanggan kepada pembangun perisian. Sebaik sahaja cerita pengguna ditugaskan untuk iterasi semasa (sebagai sebahagian daripada perancangan pelepasan melalui XPlanner), pembangun mencari butiran lebih lanjut untuk setiap cerita dengan bekerjasama dengan pengguna (semoga bersemuka). Hasil langkah ini adalah satu siri tugas pengembangan yang terperinci, yang masing-masing pembangun mendaftar di XPlanner terhadap kisah pengguna yang berkaitan.

Kami memilih projek aliran kerja e-dagang kami untuk dijalankan dengan lelaran bulanan, masing-masing terdiri daripada sekitar 10 cerita, dengan 10 hingga 15 tugas ditugaskan untuk setiap cerita.

Menuai cerita pengguna

Setiap kisah pengguna untuk lelaran projek harus menjadi gambaran pendek dan berfokus pada hasil pengalaman pengguna seperti yang diceritakan pada orang pertama (contohnya, "Saya kemudian mencari berdasarkan warna ..."). Pengalaman ini ditulis oleh pengguna yang membayangkan produk masa depan yang ideal dalam tindakan, jadi anda mungkin menganggap kisah pengguna sebagai visualisasi positif untuk perisian! Matlamat setiap visualisasi adalah untuk memberikan maklumat yang cukup bagi pembangun perisian untuk mengira usaha yang diperlukan untuk menjadikan cerita itu menjadi kenyataan.

XPlanner membuat katalog koleksi cerita pengguna projek anda, sambil merakam anggaran pelanggan, pelacak, keutamaan, dan usaha terhadap setiap kisah tersebut. Kesukaran utama yang sering kita temui adalah pengambilan cerita pengguna berkualiti tinggi dari pemikiran pengguna sistem. Hal ini tentunya berlaku untuk projek kami, kerana ini merupakan pergeseran paradigma yang signifikan dari syarat bahagian / bahagian yang tegar yang biasa mereka gunakan. Namun, kemampuan untuk menggunakan XPlanner untuk menguruskan cerita sehingga dapat dilihat dan diperbaharui dengan mudah oleh pihak berkepentingan, dan dengan cepat diperdagangkan masuk dan keluar dari iterasi tertentu, tentu saja membantu. Satu ciri bagus, jika tidak berfungsi, XPlanner adalah nuansa asli yang memberikan cerita kepada pengguna, yang masing-masing memaparkan di skrin sebagai kad indeks 3-dengan-5 yang serupa, seperti yang ditunjukkan dalam Gambar 1.

Anggarkan dan catat usaha

Pembangunan lincah menetapkan bahawa pembangun melakukan penetapan tujuan mereka sendiri, yang melibatkan menganalisis kisah pengguna dan menentukan tugas teknikal yang diperlukan untuk merealisasikan kisah itu. Pembangun harus bebas untuk menambahkan tugas tambahan atau mengubah tugas yang ada apabila butiran cerita lebih lanjut tersedia. XPlanner menyokong fleksibiliti ini dengan memberi para pemaju akses penuh untuk menentukan dan menyunting tugas. Setiap tugas dapat diberikan jenis, seperti hutang, fitur, atau cacat, untuk mencirikan jenis pekerjaan yang sedang dilakukan (hutang, misalnya, adalah tugas untuk membersihkan "kerajinan" teknis yang tersisa dalam sistem dari lelaran sebelumnya). Tugas juga ditentukan dengan disposisi (terancang atau tidak dirancang), pemaju penerimaan, keterangan kerja, dan anggaran jumlah jam ideal yang diperlukan untuk menaklukkan tugas itu.

XPlanner memudahkan pengembang untuk mencatat berapa banyak kerja yang telah dilaburkan dalam tugas tertentu atau untuk mengemas kini anggaran usaha asal (yang asli masih disimpan). Perhatikan bahawa anggaran usaha, seperti yang disebutkan, harus ditentukan dalam jam ideal . Jam yang ideal adalah jam di mana pembangun tidak mengalami sebarang gangguan.

Pembangun juga harus mencatat jumlah jam ideal yang mereka laburkan terhadap tugas tertentu. Sekiranya anda mendorong pembangun anda untuk merekodkan jam ideal dengan jujur ​​(dengan tidak menuntut untuk mengetahui di mana waktunya berjalan), anda akan dapat mengekstrak beberapa metrik berguna dari XPlanner (dibincangkan di bawah). Sebagai contoh, kami mendapati bahawa, dalam projek kami, satu jam yang ideal mengambil masa 1.4 jam untuk dicapai. Maklumat ini kemudian dapat digunakan untuk memberikan perkiraan yang lebih baik untuk iterasi berikutnya — yang membantu menepati janji pasukan dan harapan pelanggan di taman permainan yang sama.

Sukatan dan perancangan untuk lelaran seterusnya

Anda sedang melalui lelaran dan bos ingin mengetahui "bagaimana keadaan kita." Jawapan yang baik untuk soalan ini adalah "Kami kira-kira 80 peratus jalan ke sana." Sudah tentu, 20 peratus terakhir nampaknya memakan masa lebih lama daripada yang sepatutnya — 20 peratus terakhir adalah perisian yang setara dengan sayur-sayuran kusam semasa makan malam yang anda tinggalkan sehingga yang terakhir.