Kelola tim tangkas dengan XPlanner

Cakupan, rancang, bangun, uji, sampaikan, minta maaf. Ini adalah langkah-langkah yang sering dilalui dari metodologi rekayasa tradisional ketika diterapkan pada dunia proyek perangkat lunak yang lincah. Sebagai pengembang perangkat lunak, Anda mungkin mengenal baik persyaratan sistem "terakhir" yang tampaknya merunduk dan menenun seperti pejuang hadiah. Mungkin Anda telah bekerja keras dalam proyek pengembangan hanya untuk muncul berbulan-bulan (atau bertahun-tahun) kemudian untuk menghadapi pelanggan yang tampaknya sangat kecewa karena kebutuhan sebenarnya belum terpenuhi. Mungkin rekan-rekan Anda berada pada titik di mana rencana pengembangan jangka panjang yang cermat ditempatkan sebelum mereka menanamkan rasa malapetaka yang akan datang. Intinya — tim Anda siap untuk melakukan pengembangan yang gesit, tetapi apakah alat manajemen tim tradisional Anda telah tertanam untuk manajemen tim tradisional?

Metodologi tangkas mungkin ringan, tetapi sangat disiplin. Alat apa pun yang mendukung Anda dalam merencanakan dan melacak pengiriman cepat dengan kolaborasi pelanggan yang intim dapat menjadi tambahan yang berharga untuk gudang senjata Anda. Kabar baiknya adalah beberapa alat tersebut sekarang tersedia untuk tim tangkas. Artikel ini merinci pengalaman dunia nyata dalam mengelola tim pengembangan yang gesit menggunakan salah satu alat jenis baru ini, XPlanner sumber terbuka.

XPlanner adalah aplikasi Java Web yang dirancang untuk mendukung manajemen tim sesuai dengan metodologi pemrograman ekstrim (XP). Namun, kami telah menemukan alat ini cukup fleksibel untuk memberikan dukungan yang berharga untuk pendekatan tangkas arus utama lainnya (misalnya, Scrum) di tengah panasnya pelaksanaan proyek. Meskipun tidak canggih, XPlanner menyediakan alat yang berguna untuk mendukung tim Anda baik Anda berpengalaman, atau baru saja meluncurkan, dunia pengembangan perangkat lunak tangkas yang bermanfaat.

Alat manajemen tim tradisional vs. tangkas

Alat manajemen tim tradisional (seperti Proyek Microsoft) didasarkan pada struktur rincian pekerjaan yang melihat jauh ke masa depan proyek. Alokasi sumber daya yang direncanakan dan perhatian yang cermat pada varian ke baseline digunakan untuk mengelola "jalur kritis" menuju pengiriman akhir. Penerapan alat tersebut menyiratkan upaya perencanaan awal yang substansial, ketergantungan tugas yang kaku, dan dasar persyaratan yang stabil. Perubahan signifikan pada ruang lingkup atau persyaratan kemungkinan memerlukan revisi signifikan pada model. Jadi, alat tradisional ini paling tepat ketika merencanakan perjalanan dari A ke B, dengan asumsi sedikit variasi dalam perjalanan. Sebaliknya, proyek yang gesit diarahkan untuk mengharapkan perubahan, tidak membuat asumsi bahwa B bahkan menjadi tujuan akhir.

Dalam memahami budaya proyek tangkas, ada baiknya untuk mempertimbangkan prinsip pengembangan tangkas seperti yang dianut oleh penulis Manifesto Agile:

  • "Individu dan interaksi atas proses dan alat
  • Bekerja perangkat lunak di atas dokumentasi yang komprehensif
  • Kolaborasi pelanggan melalui negosiasi kontrak
  • Menanggapi perubahan mengikuti rencana "

    (Kent Beck et al., 2001)

Dengan demikian, proyek tangkas secara eksplisit meninggalkan perencanaan jangka panjang demi keterlibatan pemangku kepentingan yang intim, fokus yang jelas pada fitur bernilai tinggi, dan merilis perangkat lunak yang dapat digunakan lebih awal dan sering. Tujuan dasarnya adalah untuk memberikan nilai secara sederhana dan efektif dalam menghadapi perubahan yang konstan. Agar alat perencanaan dan pelacakan menjadi berharga dalam konteks ini, itu harus sesuai dengan nilai-nilai ini.

Perencanaan dan pelacakan proyek dengan XPlanner

XPlanner adalah perangkat lunak manajemen proyek tangkas yang tersedia di bawah GNU Lesser General Public License (menjadikannya "gratis, seperti dalam bir," dalam bahasa sumber terbuka). Paket ini digunakan sebagai aplikasi Web, yang memungkinkan anggota tim dan pemangku kepentingan proyek Anda untuk bergabung dengan menggunakan browser Web favorit mereka. Setelah dikonfigurasi, Anda akan dapat merencanakan dan melacak berbagai aspek pengiriman proyek agile Anda melalui antarmuka Web yang sederhana.

Yang terpenting, dari perspektif gesit, peserta proyek dapat langsung berkolaborasi dengan menyumbangkan informasi mereka ke dalam repositori proyek bersama. Kolaborasi ini dapat melibatkan pelanggan yang mendeskripsikan persyaratan proyek dalam bentuk cerita pengguna, yang kemudian digunakan pengembang untuk merinci dan melacak tugas yang diperlukan untuk membuat cerita ini menjadi kenyataan.

Selain mendukung tingkat kolaborasi pelanggan ini, XPlanner menyediakan fitur praktis lainnya yang mendukung pendekatan agile. Ini termasuk fitur seperti mekanisme sederhana untuk menentukan iterasi proyek; antarmuka yang intuitif untuk memperkirakan dan melacak upaya individu; dan bagan untuk metrik tim penerbitan. XPlanner dibahas di sini saat digunakan untuk mendukung pengiriman perdagangan elektronik dan sistem alur kerja yang terdiri dari beberapa kelompok pemangku kepentingan dan tim yang terdiri dari tujuh pengembang.

Mendownload dan menginstal

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 mesin servlet; namun, mesin apa pun yang kompatibel dengan Servlet 2.3 (atau versi yang lebih baru) harus dilakukan. XPlanner dikirimkan sebagai arsip file (zip atau tar.gz) yang harus Anda buka dan buat sebelum menerapkan dan menggunakan alat tersebut.

Langkah konfigurasi wajib dilibatkan saat Anda perlu menyiapkan database favorit Anda untuk digunakan sebagai tempat penyimpanan informasi proyek. Karena XPlanner menggunakan layer ketekunan objek / relasional Hibernate untuk interaksi database, Anda memiliki opsi untuk menggunakan database yang didukung Hibernate untuk repositori proyek Anda. Pilihan yang dibundel adalah database Java yang ringan Hypersonic (sekarang disebut HSQLDB); namun, kami menggunakan Oracle 9i sebagai database repositori kami. Untuk mengkonfigurasi database ini, kami harus mengedit file xplanner.propertiesdengan menghapus komentar pada properti Oracle yang sudah ditentukan. Kami juga perlu memodifikasi build.xmlfile untuk memasukkan driver database tipis Oracle. Setelah dikonfigurasi, Anda dapat membangun penerapan XPlanner Anda. Ini melibatkan eksekusi Ant untuk menghasilkan arsip Web yang dapat diterapkan (WAR) sebagai berikut:

ant install.db.schema ant build.war 

Terapkan file arsip Web yang dihasilkan ( xplanner.war) ke mesin servlet pilihan Anda dan kemudian telusuri ke URL // server-anda: port-anda / xplanner / (menggunakan pengguna default "sysadmin" dan sandi "admin") untuk memeriksa hasilnya!

Berintegrasi dengan ekosistem Anda

Sebagian besar lingkungan pengembangan sudah berisi sistem pelacakan bug, forum kolaborasi, sistem keamanan, repositori standar, dll. Meskipun berguna sebagai alat mandiri, nilai XPlanner dapat ditingkatkan melalui fitur integrasi yang sederhana dan kuat. XPlanner menyertakan, misalnya, kemampuan untuk mendukung rendering ucapan pengembang dalam bidang deskripsi, seperti bug: 1001 sebagai tautan ke //mybugzilla/show_bug.cgi?uid=1001. Ini dapat dilakukan hanya dengan menambahkan twiki.scheme.bug=//mybugzilla/show_bug.cgi?id=ke xplanner.propertiesfile. Teknik yang sama ini dapat digunakan untuk alat berbasis web lainnya seperti viewcvs (xplanner.propertiesmenunjukkan beberapa contoh lain). XPlanner juga dilengkapi pemformat wiki tingkat lanjut (tidak digunakan pada proyek kami) yang memungkinkan penautan otomatis ke entri wiki. Informasi lebih lanjut tentang ekstensi XPlanner dapat ditemukan di Sumber.

Di sebagian besar organisasi, biasanya, beberapa bentuk LDAP (protokol akses direktori ringan) - server direktori yang kompatibel menyediakan repositori terpusat dari akun keamanan pengguna. Misalnya, dalam organisasi yang mensponsori proyek kami, server LDAP kuno tetapi berfungsi melayani tujuan ini (Direktori Aktif Microsoft juga sebagian besar mendukung protokol LDAP). Sangat menyegarkan untuk menemukan XPlanner yang XPlannerLoginModulemudah diintegrasikan dengan LDAP. Ini melibatkan pembaruan xplanner.propertiessebagai 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 rekondisi dan penerapan cepat, keamanan otentikasi XPlanner terintegrasi sepenuhnya. Satu-satunya kelemahan adalah bahwa nama pengguna masih perlu ditambahkan secara eksplisit ke XPlanner, tetapi setidaknya masalah kata sandi dan keanggotaan grup menjadi masalah helpdesk perusahaan.

Tim, temui XPlanner

XPlanner melihat proyek menurut iterasi, cerita pengguna, dan tugas. Seperti yang ditentukan oleh paradigma Agile, setiap proyek yang dikelola XPlanner direncanakan dan dilacak menurut rangkaian iterasi yang berurutan. Setiap iterasi terdiri dari tanggal mulai, tanggal akhir, dan kumpulan cerita pengguna untuk direkayasa dari cerita ke kenyataan dalam jangka waktu itu.

Kisah pengguna adalah alat konseptual utama yang digunakan dalam pengembangan tangkas untuk mengkomunikasikan kebutuhan pelanggan kepada pengembang perangkat lunak. Setelah cerita pengguna ditetapkan ke iterasi saat ini (sebagai bagian dari perencanaan rilis melalui XPlanner), pengembang mencari detail lebih lanjut untuk setiap cerita dengan berkolaborasi dengan pengguna (mudah-mudahan tatap muka). Hasil langkah ini adalah rangkaian tugas pengembangan yang mendetail, yang masing-masing didaftarkan oleh pengembang di XPlanner berdasarkan kisah pengguna yang relevan.

Kami memilih proyek alur kerja e-niaga kami untuk dijalankan dengan iterasi bulanan, masing-masing terdiri dari sekitar 10 lantai, dengan 10 hingga 15 tugas yang ditetapkan untuk setiap cerita.

Memanen cerita pengguna

Setiap cerita pengguna untuk iterasi proyek harus berupa deskripsi singkat dan berfokus pada hasil dari pengalaman pengguna seperti yang diceritakan dalam sudut pandang orang pertama (misalnya, "Saya kemudian menelusuri berdasarkan warna ..."). Pengalaman ini ditulis oleh pengguna yang membayangkan aksi produk masa depan yang ideal, jadi Anda mungkin menganggap kisah pengguna sebagai visualisasi positif untuk perangkat lunak! Tujuan dari setiap visualisasi adalah memberikan informasi yang cukup bagi pengembang perangkat lunak untuk memperkirakan upaya yang diperlukan untuk membuat cerita itu menjadi kenyataan.

XPlanner membuat katalog dari kumpulan cerita pengguna proyek Anda, sambil merekam perkiraan pelanggan, pelacak, prioritas, dan usaha terhadap masing-masing cerita. Kesulitan utama yang sering kami temukan adalah mengumpulkan cerita pengguna berkualitas tinggi dari benak pengguna sistem. Hal ini tentunya terjadi pada proyek kami, karena ini merupakan perubahan paradigma yang signifikan dari persyaratan bagian / sub-bagian yang kaku yang biasa dialami pengguna. Namun, kemampuan menggunakan XPlanner untuk mengelola cerita sedemikian rupa sehingga dapat dengan mudah dilihat dan diperbarui oleh pemangku kepentingan, dan dengan cepat diperdagangkan masuk dan keluar dari iterasi tertentu, tentu membantu. Salah satu fitur bagus, jika tidak berfungsi, dari XPlanner adalah nuansa otentik yang diberikannya pada cerita pengguna, yang menampilkan masing-masing di layar sebagai kartu indeks 3-oleh-5 yang mirip, seperti yang ditunjukkan pada Gambar 1.

Perkirakan dan catat upaya

Pengembangan tangkas mengatur bahwa pengembang melakukan penetapan tujuan mereka sendiri, yang melibatkan analisis cerita pengguna dan menentukan tugas teknis yang diperlukan untuk mewujudkan cerita itu. Pengembang harus bebas menambahkan tugas tambahan atau mengubah tugas yang ada saat detail cerita lebih lanjut tersedia. XPlanner mendukung fleksibilitas ini dengan memberikan akses penuh kepada pengembang untuk menentukan dan mengedit tugas. Setiap tugas dapat diberi jenis, seperti hutang, fitur, atau cacat, untuk mengkarakterisasi jenis pekerjaan yang sedang dilakukan (hutang, misalnya, adalah tugas untuk membersihkan "sisa" teknis yang tertinggal dalam sistem dari iterasi sebelumnya). Tugas juga ditentukan dengan disposisi (terencana atau tidak), pengembang penerima, deskripsi pekerjaan, dan perkiraan jumlah jam ideal yang diperlukan untuk menaklukkan tugas itu.

XPlanner memudahkan pengembang untuk mencatat berapa banyak pekerjaan yang telah diinvestasikan dalam tugas tertentu atau untuk memperbarui perkiraan upaya asli (yang asli masih disimpan). Perhatikan bahwa perkiraan upaya, seperti yang disebutkan, harus ditentukan dalam jam yang ideal . Jam yang ideal adalah jam di mana pengembang sama sekali tidak mengalami gangguan.

Pengembang juga harus mencatat jumlah jam ideal yang mereka investasikan untuk tugas tertentu. Jika Anda mendorong pengembang Anda untuk secara jujur ​​mencatat jam ideal (dengan tidak menuntut untuk mengetahui kemana waktu pergi), Anda akan dapat mengekstrak beberapa metrik yang berguna dari XPlanner (dibahas di bawah). Kami menemukan, misalnya, bahwa, dalam proyek kami, waktu yang ideal membutuhkan waktu sekitar 1,4 jam untuk mencapainya. Informasi ini kemudian dapat digunakan untuk memberikan estimasi yang disempurnakan untuk pengulangan berikutnya — yang membantu untuk menepati janji tim dan ekspektasi pelanggan dengan cara yang sama.

Metrik dan perencanaan untuk iterasi berikutnya

Anda sedang menjalani pengulangan dan bos ingin tahu "bagaimana penampilan kami". Jawaban yang sudah usang untuk pertanyaan ini adalah "Kita sudah sekitar 80 persen menuju ke sana." Tentu saja, 20 persen terakhir itu sepertinya selalu memakan waktu jauh lebih lama daripada yang seharusnya — 20 persen terakhir adalah perangkat lunak yang setara dengan sayuran kusam saat makan malam yang Anda tinggalkan sampai saat terakhir.