Bagaimana memulai proyek pembangunan ketika ada terlalu banyak pemangku kepentingan potensial

15

Saya baru saja mengambil pekerjaan baru di sebuah perguruan tinggi sebagai (satu-satunya) pengembang aplikasi Web.

Perguruan tinggi ini memiliki sejumlah sistem warisan yang berbeda tetapi semuanya memiliki kode yang sangat buruk. Sebagian besar dibangun di PHP mereka berurusan dengan hal-hal seperti kehadiran, hasil ujian, penilaian, dll.

Pekerjaan pertama saya adalah membangun sistem yang menggabungkan banyak data ini, yang saat ini beristirahat di berbagai basis data tanpa segala jenis API yang ramah untuk menariknya (sistem yang ada dikodekan dalam vanilla PHP tanpa pemisahan data dan tampilan) dengan platform baru untuk merekam informasi pastoral tentang siswa dan menyajikannya kepada tutor dan staf senior dengan cara yang bermanfaat sehingga mereka dapat bereaksi terhadap masalah dengan siswa dengan cepat.

Dalam pertemuan pertama kami, ada 18 orang! Tidak ada pemimpin atau suara yang jelas yang mewakili mayoritas. Tidak ada klien yang dapat diidentifikasi . Pertemuan berayun dari ide implementasi terperinci pada fitur-fitur kecil dari kepala fakultas ke argumen tentang apakah kita harus menggunakan spreadsheet Excel atau tidak untuk input data!

Seperti yang dapat Anda bayangkan kepala saya berputar di ujungnya. Sebenarnya saya punya banyak ide bagus tapi saya tidak bisa membuatnya didengar. Ini adalah peran yang sangat baru bagi saya, sebelum saya menjadi bagian dari tim pengembangan di agensi pemasaran. Kami memiliki peran yang sangat jelas: Manajer Proyek, Klien, Desainer, Pengembang.

Saya ingin tahu apakah ada pengembang atau manajer berpengalaman yang dapat memberi saya beberapa petunjuk tentang bagaimana saya dapat membuat kolega saya menjadi sesuatu yang menyerupai tim proyek. Apakah lincah cara untuk pergi? Bagaimana Anda mendekati menangani semua suara yang berbeda? Sudah jelas bahwa beberapa proses perlu dilakukan dengan sangat cepat, saya hanya tidak yakin apa itu.

Matt Harrison
sumber
8
Jika Anda adalah satu-satunya pengembang, siapa 17 lainnya dalam rapat?
pdr
1
Pertanyaan bagus. Kepala sekolah, Berbagai anggota staf pengajar (bahkan guru PE ada di sana), dan banyak orang dengan nama akronim.
Matt Harrison
1
@MattHarrison: tetapi apa kesamaan mereka dengan aplikasi web Anda? Apakah mereka pengguna potensial? Apakah mereka mempertahankan sistem warisan yang Anda sebutkan? Anda harus mengklarifikasi itu sehingga Anda memastikan Anda tahu siapa yang akan Anda minta persyaratan dan siapa yang bisa Anda abaikan.
Doc Brown
1
@DocBrown Maaf, mungkin saya sedikit tidak jelas. Mereka semua akan menjadi pengguna sistem di masa depan. Aplikasi ini akan lintas perguruan tinggi dan digunakan oleh lebih dari 3000 orang. Saya pikir apa yang terjadi di sini adalah orang mengundang orang dan pertemuan itu telah menjadi sirkus. Apa yang akan saya lakukan adalah menekankan perlunya keterlibatan pemangku kepentingan yang lebih kecil.
Matt Harrison
5
@ Untuk downvoter anonim / lebih dekat: ini mungkin terlihat terlalu terlokalisasi pada pandangan pertama. Tapi saya pikir pertanyaan sebenarnya adalah pertanyaan pengembangan yang menjadi perhatian umum: "bagaimana memulai proyek pembangunan ketika ada terlalu banyak pemangku kepentingan potensial", dan pertanyaan-pertanyaan semacam itu adalah IMHO pada topik di sini.
Doc Brown

Jawaban:

26

Saya tidak akan mengharapkan "proses pengembangan tangkas" di sini sebagai solusi untuk masalah Anda saat ini. Hal pertama yang harus Anda lakukan: bersihkan misi Anda . Itu berarti:

  • jelaskan apa tanggung jawab Anda sendiri
  • memperjelas apa tanggung jawab pemangku kepentingan lainnya
  • mengidentifikasi siapa yang bertanggung jawab untuk masing-masing sistem warisan
  • jika tidak ada klien (belum) untuk aplikasi web Anda, temukan orang yang akan menggunakannya di masa depan dan minta izin untuk memasukkannya sebagai pengguna representatif dari sistem Anda (orang yang dapat Anda ajak mendiskusikan persyaratannya dengan)
  • jika ada pemangku kepentingan yang berbeda dengan tujuan yang berbeda, kumpulkan persyaratan mereka (misalnya, dengan mewawancarai mereka satu per satu, bukan 18 orang secara keseluruhan dalam satu ruangan). Tulis hasilnya pada daftar. Setelah itu, mulailah memprioritaskan.
  • tulis roadmap (gambaran besar) dan spesifikasi kecil untuk rilis 0,1 dan buat bos Anda serta klien perwakilan menyetujuinya secara formal
  • EDIT: lihat komentar GlenH7

Ini bisa memakan waktu cukup lama, Anda mungkin tidak akan menulis banyak kode pada tahap proyek ini. Dalam situasi seperti itu, Anda harus melakukan "rekayasa persyaratan" terlebih dahulu. Tapi mulai dari yang kecil, pikirkan yang besar. Setelah Anda mengembangkan rilis pertama Anda, Anda akan memiliki sesuatu untuk ditampilkan, membahas persyaratan lagi dengan para pemangku kepentingan dll.

Doc Brown
sumber
Saran brilian Terima kasih! Bolehkah saya mengklarifikasi; ketika Anda mengatakan 'jelaskan tanggung jawab Anda', apakah maksud Anda membuatnya jelas, atau menghapusnya seperti menyingkirkannya? Maaf, saya orang Inggris, jadi mungkin ini adalah bahasa Inggris AS.
Matt Harrison
1
@MattHarrison: semoga hasil edit saya memperjelas ini - meskipun terkadang juga merupakan ide yang baik untuk menghilangkan beberapa tanggung jawab ;-)
Doc Brown
4
Jawaban yang sangat bagus. Satu-satunya barang yang akan saya tambahkan adalah mengidentifikasi pemangku kepentingan pemimpin atau eksekutif. Orang ini memiliki otoritas terakhir dalam menentukan prioritas dan cakupan fitur. Ada beberapa cara berbeda untuk sampai ke sana, tetapi seseorang memiliki akuntabilitas akhir atas proyek tersebut. Dan ya, silakan mencuri komentar ini untuk ditambahkan ke jawaban Anda jika Anda mau. :-)
6

Pisahkan orang-orang yang benar-benar ingin proyek ini bekerja dari kawanan.

Karena banyak politik, seseorang mengumpulkan pertemuan ini dengan daftar hadir di mana keanggotaan ditentukan oleh siapa yang akan mendapatkan paling marah jika saya tidak mengundang mereka. Itu terjadi. Sasaran ini terpenuhi tetapi sebagai pengembang, Anda menemukan bahwa tidak ada yang diputuskan. Tidak ada yang ditugaskan apa yang harus dilakukan. Jika Anda beruntung, mereka berhasil menjadwalkan pertemuan berikutnya atau melarang, mereka menetapkan pertemuan berulang pada hari Selasa ketiga setiap bulan.

Selanjutnya akan muncul pembentukan komite, sub-komite, dan gugus tugas. Ini lebih betteer, tetapi Anda akan menemukan mereka semua sama tidak berharga.

Akhirnya, Anda akan mencari tahu siapa yang benar-benar peduli dengan proyek ini. Siapa yang benar-benar ingin meluangkan waktu untuk melakukannya dengan benar. Mudah-mudahan, orang ini akan memiliki penyelia yang akan memberi mereka waktu untuk melakukan ini dan tidak hanya menjadikannya item lain dalam daftar todo mereka yang sudah lama. Temukan orang-orang ini SECEPATNYA! Bantu mereka mengelola harapan bos mereka dan mendapatkan komitmen yang disepakati.

Dapatkan sesuatu di depan sebanyak mungkin orang dalam kelompok asli yang bahkan akan repot untuk kembali. Mereka semua mungkin orang yang pintar dan / atau berpendidikan tetapi mereka tidak akan membaca banyak spesifikasi. Mereka akan menyukai beberapa hal, membenci orang lain dan menginginkan lebih. Tidak ada ruginya menuliskan saran, tetapi cobalah membuat pihak itu untuk menindaklanjuti dengan beberapa skin dalam permainan. Jangan berjanji untuk melakukan segalanya. Hanya alamat apa yang bisa dilakukan dalam waktu dekat.

Jika Anda akhirnya harus berurusan dengan lebih dari 5 orang secara teratur, itu karena beberapa manajer membuat beberapa orang mereka terlibat yang tidak benar-benar ingin berada di sana.

JeffO
sumber
1
+1 untuk menyoroti aspek politik dari situasi seperti itu.
Doc Brown
4

Munculkan daftar ide yang menurut Anda akan memperkuat / meningkatkan sistem yang ada berdasarkan pengamatan Anda dan "kebutuhan" mereka dan memastikan Anda fokus pada di mana Anda dapat mencapai keuntungan nyata yang terlihat. Sertakan dalam daftar itu setiap ide yang menurut Anda akan berguna, serta saran "masuk akal" yang menonjol dari non-devs.

Buat daftar fitur hal-hal yang "harus" dimasukkan dalam upaya pengembangan Anda. Berikan masing-masing anggota "suara" kekuatan, mungkin dalam bentuk "bintang lengket" dan cari tahu apa yang sebenarnya diinginkan oleh masing-masing anggota menempatkan bintang di sebelah apa yang mereka anggap penting. Beberapa orang mungkin berakhir dengan lebih banyak bintang jika mereka menandatangani cek, memiliki keputusan akhir, dll. Setelah itu mudah-mudahan Anda, dan semua orang lain, akan melihat apa yang penting bagi keseluruhan, dan mudah-mudahan mereka akan setuju dengan prioritas, yang akan kemudian terjemahkan ke dalam peta jalan

1). Survei Tim - Cari tahu apa yang dianggap penting / dibutuhkan / prioritas utama oleh setiap anggota

2). Dapatkan sesuatu di luar sana, cepat - Jangan mencoba menyelesaikan semua masalah sekaligus, dapatkan fungsionalitas "minimal" di luar sana dan minta mereka menyetujuinya, kemudian secara kolektif tingkatkan berdasarkan umpan balik dari pengguna.

3). Gunakan umpan balik mereka dan umpan balik dari pengguna lain untuk memandu proses pengembangan

(Bangun, Nilai Umpan Balik, Bangun, Nilai Umpan Balik) Bilas dan Ulangi.

Selain itu, Anda dapat mempertimbangkan untuk menyelesaikan "titik upaya" atau perkiraan jam .. yang mungkin juga membantu dalam penentuan prioritas.

Hanzolo
sumber
1
+1, itulah cara mengemudikan mobil begitu Anda mulai bergerak :-)
Doc Brown
1
+1 untuk yang ini, meskipun saya masih membuatnya lebih eksplisit bahwa Anda harus waspada terhadap "sistem yang buruk" yang benar-benar melakukan apa yang perlu dilakukan. Prioritaskan sedemikian rupa sehingga Anda tidak memperbaiki hal-hal yang tidak rusak, fokus pada di mana Anda dapat mencapai keuntungan nyata yang terlihat.
Joris Timmermans
@MadKeithV, setuju .. "Fokus di mana Anda dapat mencapai keuntungan nyata yang terlihat", komentar yang diperbarui untuk menyertakan pernyataan itu.
hanzolo
2

Tantangan pertama Anda adalah mengidentifikasi kebutuhan untuk proyek ini. Adakan pertemuan lain dengan semua orang itu dan minta mereka untuk menuliskan masalah yang perlu dipecahkan. Jangan biarkan mereka berbicara tentang banyak cara di mana proyek ini akan menjadi solusinya. Paksa mereka untuk benar-benar mengidentifikasi kebutuhan / masalah.

Salah satu cara untuk melakukan ini adalah meminta mereka masing-masing secara individual untuk mendokumentasikan kebutuhan-kebutuhan itu pada catatan tempel - satu gagasan per tempel. Kemudian jalankan Affinity Diagram untuk membantu mereka mengelompokkan ide-ide yang berbeda itu ke dalam kebutuhan spesifik. Terakhir, buat mereka memilih ( Multi-Voting ) sehingga Anda dapat melihat kebutuhan terbesar.

Agile mengingatkan kita untuk menangani fitur yang memiliki nilai pelanggan paling tinggi terlebih dahulu. Mulailah dengan kebutuhan terbesar dan kemudian pisahkan barang itu sampai Anda memiliki bagian kecil pertama yang benar-benar dapat Anda lakukan dalam waktu singkat.

lsievert
sumber
0

KISS - Buat rencana perjalanan. Terima kasih semua orang untuk datang, tinjau, lakukan. Pelacakan samping akan melambat jika Anda mengatasinya dengan membagikan kekhawatiran mereka dan meminta mereka untuk tetap SETELAH rapat. Buat keputusan dengan memilih di mana ada kontroversi untuk membuat sebagian besar bahagia. Motivasi untuk berpartisipasi dalam sistem apa pun secara langsung terkait dengan kepercayaan individu pada metode itu.

Steven
sumber