Bagaimana Anda mengelola permintaan fitur dan perubahan perangkat lunak? [Tutup]

21

Saya seorang Insinyur Perangkat Lunak dan selama beberapa tahun terakhir saya telah menjadi manajer proyek perangkat lunak de-facto hanya karena tidak ada seorang pun. Jadi untuk menjaga kewarasan kami di departemen Litbang / Teknik, pelanggan sudah terbiasa datang kepada saya dengan permintaan mereka. Saya tidak memiliki pengalaman di bidang ini sehingga ini adalah pertama kalinya saya bertindak sebagai manajer proyek untuk proyek perangkat lunak. Saya telah mengelola hal-hal lain tetapi tidak pada perangkat lunak.

Jadi, bagaimana Anda mengelola proyek perangkat lunak dan menandai prioritas? Permintaan datang pada interval yang jarang sehingga kami bisa mengerjakan sesuatu untuk orang lain dan kemudian orang lain datang dengan pekerjaan "terburu-buru" yang perlu dikerjakan. Apakah lebih mudah untuk mengatakan First Come, First Serve atau apakah orang dengan uang terbanyak?

Brian
sumber
1
dan mungkin ini juga: programmers.stackexchange.com/questions/3747/…
luis.espinal
1
Saya menggunakan slogan Nancy Reagan: "Katakan saja TIDAK!" Serius. Jangan pernah berkomitmen pada apa pun di tempat. Itulah salah satu cara insinyur perangkat lunak mendapat masalah besar. Sangat penting untuk menolak membuat komitmen biasa atau bahkan memperkirakan apakah sesuatu itu "sulit" atau "mudah". Selalu menunda keputusan dan kemudian mengambil beberapa saran luar biasa yang akan muncul dalam jawaban. Reputasi Anda bergantung pada kemampuan untuk memenuhi komitmen Anda - dan itu akan sangat menurun begitu Anda membuat terlalu banyak komitmen.
Angelo

Jawaban:

21

Saya telah menemukan bahwa semakin banyak pelanggan mengeluh tentang betapa mendesaknya permintaan mereka, kecuali jika mereka juga pengembang dengan hak mereka sendiri, biasanya itu pertanda baik bahwa permintaan itu tidak mendesak sama sekali. Salah satu profesor saya di kampus selalu mengatakan kepada kami untuk tidak membiarkan hal yang mendesak mengganggu yang penting.

Saya biasanya mengklasifikasikan permintaan dalam urutan ini (YMMV):

  1. Masalah yang terkait dengan peningkatan terbaru atau migrasi (paling penting).
  2. Perbaikan keamanan.
  3. Fungsionalitas yang rusak dari sistem yang ada.
  4. Fungsionalitas yang rusak dalam fitur RC dan beta.
  5. Permintaan fitur berbayar.
  6. Permintaan fitur Litbang dari sebagian besar basis pengguna.
  7. Permintaan fitur Litbang hanya dari satu atau dua pengguna.

Yang terakhir ini sebenarnya membutuhkan lebih banyak waktu karena mereka cenderung permintaan "mendesak, saya membutuhkannya kemarin". Pada kenyataannya, pengguna jarang memikirkan sepenuhnya apa yang sebenarnya mereka butuhkan atau bagaimana hal itu akan mendukung model bisnis mereka. Paling sering, permintaan mendesak ini, setelah dikirim, akhirnya digunakan sekali atau dua kali dan dilupakan. Dan begitu dilupakan, mereka menjadi sakit kepala tanpa akhir lubang keamanan dan konsekuensi yang tidak diinginkan.

Michael J. Sabal
sumber
3
Profesor Anda mungkin ingin turun dari Menara Gading sesekali.
JeffO
6
Yang dia maksudkan adalah banyak orang membiarkan semua gangguan yang meminta perhatian kita segera membuat kita tidak fokus pada hal-hal yang benar-benar penting. Ini beberapa tahun yang lalu, jadi contohnya adalah telepon. Setiap kali dia bertemu dengan seorang siswa, dia meletakkan teleponnya langsung ke pesan suara. Saya menemukannya sebagai pernyataan integritas dan efisiensi yang luar biasa.
Michael J. Sabal
4
Siapa, pelanggan yang membayar mendapat prioritas lebih rendah daripada fitur beta ?
JBRWilkinson
12

Saya suka Kawananprinsip:

  1. QI - Penting dan Mendesak
  2. QII - Penting tapi Tidak Mendesak
  3. QIII - Tidak Penting tetapi Mendesak
  4. QIV - Tidak Penting dan Tidak Mendesak
Adamizer
sumber
Dari mana itu?
Benteng
First Things First (1994) adalah buku swadaya yang ditulis oleh Stephen Covey dan A. Roger dan Rebecca R. Merrill en.wikipedia.org/wiki/First_Things_First_%28book%29
Adamizer
@Rook - Juga tercantum dalam 7 Kebiasaan Orang yang Sangat Efektif di Covey. Buku yang bagus.
Nemi
6
  1. Atur sistem fitur / bug / permintaan pelacakan dan minta pelanggan / rekan kerja Anda mengajukan tiket. Jika mereka tidak mengajukan tiket untuk itu, Anda tidak melakukannya. Tiket harus cukup rinci untuk dapat ditindaklanjuti dan harus menentukan "urgensi" ("Saya membutuhkannya sekarang" vs. "senang memilikinya").
  2. Pergi melalui tiket baru dan dengan hati - hati cakupannya. Masukkan biaya dalam tiket dalam dolar, pengembang, sumber daya, dan / atau waktu. Ini penting . Ketika pelanggan Anda melihat apa yang benar - benar akan dikenakan biaya, Anda akan melihat pilihan yang sangat berbeda di bidang "urgensi".
  3. Setiap hari, cari tahu jadwal Anda berdasarkan tiket yang diajukan & urgensi mereka. Jadikan jadwal terlihat oleh orang lain sehingga jelas apa yang Anda lakukan dan ketersediaan Anda untuk permintaan di masa depan.
Yevgeniy Brikman
sumber
+1 untuk pelacakan masalah. Saya harus melakukan ini dengan rekan kerja sebelumnya. Saya mengatakan kepada mereka jika itu benar-benar penting bagi saya untuk melakukannya, itu harus bernilai 5-10 menit yang akan membawa mereka untuk mengajukan tiket.
GSto
3

Saya telah melihat proyek-proyek di mana perubahan persyaratan dikelola oleh sistem kontrol perubahan yang sangat berat. Ini buruk. Banyak perubahan penting tidak terjadi karena pelanggan tidak ingin melalui kerumitan mengirimkan kontrol perubahan, sehingga perangkat lunak tidak sesuai dengan kebutuhan mereka. Beberapa perubahan kecil dimasukkan "di bawah radar" untuk menghindari proses, sehingga perangkat lunak bahkan tidak cocok dengan apa yang Anda pikirkan.

Sebaliknya, saya juga melihat proyek-proyek di mana manajer proyek berpikir "reaktif" berarti meminta para pembuat kode untuk menanggapi setiap permintaan dari para pengguna, yang hanya berarti Anda tidak pernah menyelesaikan pengembangan inti dan kode Anda menjadi kekacauan hack yang berat di atas retas. Pada dasarnya Anda sekarang tidak memiliki pengembang, Anda memiliki tim insinyur penjualan yang berkualitas tinggi.

Jadi orang mungkin berharap ada situasi di antara kedua kutub ini yang bekerja dengan baik, dan saya berharap yang paling cocok untuk Anda adalah pilihan pribadi dan letaknya. Pasti ada nilai dalam menangkap biaya setiap perubahan. Dalam kerangka kerja seperti Scrum Anda dapat mengekspresikan biaya dalam poin cerita, dan tim dapat menukar pekerjaan yang mereka lakukan di setiap iterasi versus total upaya yang tersedia. Jika Anda memiliki manajer produk, Anda dapat meminta orang itu untuk menghitung manfaat yang diharapkan dari perubahan atau permintaan fitur. Ini biasanya dilakukan dalam hal pendapatan yang dilindungi (berapa banyak pelanggan akan pergi jika Anda tidak melakukan ini) dan menarik pendapatan (berapa banyak pelanggan akan datang jika Anda melakukan ini). Itu dapat membantu dengan memprioritaskan, tetapi juga dapat hanya mencerminkan bias atau preferensi pribadi dari manajer produk.


sumber
2

Berikut beberapa pemikiran ...

Ada banyak perangkat lunak di pasar yang membantu Anda, http://www.fogcreek.com/ dengan Fogbugz, GeneXus USA dengan XPM http://www.genexususa.com/xpm , dll.

Ini seperti seni untuk menyeimbangkan permintaan fitur baru dengan perbaikan bug dan dengan ide Anda sendiri. Anda harus mendapatkan makanan untuk musim dingin berikutnya, tetapi Anda harus makan hari ini juga.

Anda punya waktu, sumber daya, dan ruang lingkup, manfaatkan sebaik-baiknya.

Henry Ford juga pernah berkata, "Jika saya mendengarkan pelanggan, saya akan memberi mereka kuda yang lebih cepat" ...

Secara pribadi: jadilah dinamis, jangan meletakkan aturan seperti yang Anda katakan ... dan berhati-hatilah dengan aturan orang lain ... mereka mungkin bekerja dengan baik dalam konteks mereka, tetapi tidak di dalam Anda.

Armin Bachmann
sumber
2

Yang akhirnya kami temui adalah kami sekarang akan mengadakan pertemuan penjualan / teknis setiap dua bulan untuk membahas proyek saat ini dan permintaan fitur mendatang atau mendatang. Insinyur penjualan akan menjadi manajer proyek dan setidaknya mereka akan selaras dengan penawaran produk terbaru. Di masa lalu hanya mudah untuk meneruskannya ke Teknik dan melupakannya. Ini kemungkinan akan mengurangi beban yang harus dilakukan oleh seorang insinyur perangkat lunak dan meletakkan tanggung jawab pada penjualan dan manajemen untuk menggunakan waktu kita dengan bijak.

Brian
sumber
1

Perusahaan tempat saya bekerja menggunakan dua aplikasi utama, sebuah alat berbasis web yang disebut JIRA untuk menangani aspek-aspek terkait proyek dan sistem help desk kami untuk menangani permintaan perubahan melalui fungsi rfc-nya

GrumpyMonkey
sumber
1

Jawaban yang saya lihat sejauh ini bagus. Satu hal yang akan saya jelaskan secara spesifik adalah bahwa Anda harus pandai mengatakan "Tidak" untuk beberapa permintaan.

Jika Anda mengizinkan pelanggan untuk mengatur urgensi, itu akan hampir selalu "Tinggi" (atau lebih besar).

Anda (baik Anda sendiri, atau tim, tergantung pada pengaturan Anda) perlu mengevaluasi permintaan ini, dan memprioritaskannya berdasarkan kriteria Anda sendiri.

Wonko the Sane
sumber