Bagaimana mengizinkan inovasi dalam Metodologi Agile [tertutup]


21

Adalah satu hal untuk mengatakan bahwa metodologi gesit baik dalam pengaturan di mana persyaratan kurang dipahami, atau bahwa kebaruan signifikan terlibat. Tetapi haruskah itu diterapkan di mana inovasi langsung diperlukan? Jika ya, bagaimana?

Jika apa yang Anda renungkan tidak dikenal di industri ini, atau bahkan dianggap tidak mungkin, mungkin sulit untuk memahami kisah pengguna dan tugas terkait. Sebagai contoh, apakah akan menguntungkan Albert Einstein (atau perusahaan hipotetis yang ia laporkan) untuk menyusun teori relativitas umum dengan memecahnya menjadi epos, sprint, dan tugas? Jika jawabannya "ya," maka akomodasi khusus apa yang seharusnya dimasukkan untuk membantu pendekatan gesit bekerja paling baik dengan cara Einstein dalam mencapai wawasan revolusioner?

Untuk memberikan contoh perangkat lunak tertentu, bayangkan tahun ini 2008 dan Anda ingin menggunakan WCF untuk memberikan kapabilitas tipe COMET atau " polling panjang ". Semua penelitian Anda tentang "pekerjaan sebelumnya" tidak menghasilkan apa-apa, dan Anda bahkan membaca blogger MSDN mengatakan itu tidak mungkin.

Sekali lagi, penyesuaian atau "rasa" apa yang bisa dibawa ke cerita pengguna dan tugas untuk mengakomodasi daya cipta (atau keberanian?) Dari endeaver ini? Atau akankah lebih baik untuk menyimpulkan bahwa upaya ini sangat inovatif (pada 2008), lebih baik dibiarkan sebagai latihan think-tank yang tidak diarahkan?

Inovator yang beroperasi di bawah sprint dua minggu tentu tidak ingin ditembak mati setiap kali ia meninggalkan tugas buntu dan mulai mengerjakan tugas yang baru ditemukan yang tidak dibayangkan ketika sprint ditentukan. Demikian juga, ketika sprint berakhir dan tidak ada kode kerja atau pendekatan kerja yang disampaikan, inovator tidak boleh ditembak jatuh oleh manajemen. Perlu ada cara untuk menyebut upaya tersebut sebagai "sukses" bahkan dalam situasi seperti ini. Dalam mungkin satu atau tiga sprint lagi dari jenis "jalan buntu" semacam ini, inovator akhirnya mungkin menemukan sesuatu yang berhasil.

Bagaimana tangkas memungkinkan manajemen tahu bahwa setiap sprint "ok" meskipun ada kemunduran inovatif? Bagaimana ini dikelola sehingga bagan burn-down tidak terlihat tidak masuk akal?


8
@Liath: Inovasi seringkali perlu memiliki waktu untuk mencoba ide-ide tanpa tekanan karena harus menunjukkan sesuatu setiap dua minggu, yaitu pada akhir sprint. Umpan balik jangka pendek sering menempatkan fokus pada "tunjukkan sesuatu, apa pun yang terjadi" (karena selalu mungkin untuk memperbaikinya dalam sprint di masa depan, jika pelanggan tidak puas) alih-alih "coba lakukan dengan cara yang Anda pikir Anda harus melakukannya ". "Kamu menunjukkannya ketika sudah siap" bukannya "Kamu sudah siap ketika kamu harus menunjukkannya."
Giorgio

4
Saya pikir pertanyaan cabang yang dapat dibuat dari pertanyaan ini adalah: "Apakah time-boxing memiliki nilai dalam penelitian perangkat lunak atau proyek yang sangat inovatif?", Juga, "Apakah ada proyek inovatif / risiko tinggi yang tidak mendapat manfaat dari waktu -tinju"? (Saya membaca ini dari pencarian Google ad-hoc: agile.conscires.com/2010/03/30/agile-for-research-projects )
rwong


1
Tautan ini , dikaitkan dengan Xavier Amatriain, juga tampaknya menawarkan paket lengkap ("proses") untuk menerapkan metodologi Agile dalam proyek penelitian. Ini berbeda dari Scrum seperti yang kita kenal, tetapi ini sangat jauh dalam merangkul nilai-nilai dan praktik Agile.
rwong

2
Inovasi dalam pengembangan perangkat lunak tidak mudah terlepas dari metodologi karena orang diajarkan (dengan alasan yang baik, saya kira) untuk tetap berpegang pada hal-hal yang disepakati kebanyakan orang. Saya pikir itu karena rekayasa perangkat lunak tidak terlalu ilmiah, dibandingkan dengan disiplin teknik lainnya, di mana ide dinilai berdasarkan kemampuan mereka, bukan pada konformisme mereka.
Mike Dunlavey

Jawaban:


8

Pertanyaan judul, di mana inovasi mengacu pada kemajuan kreatif skala kecil di tim yang sudah berjalan baik di Agile.

Jawaban terbaik dirangkum dalam artikel ini tentang "Hari Kartu Emas" .

Ringkasan (diparafrasekan, dan dengan interpretasi saya sendiri yang mungkin tidak mencerminkan maksud penulis) :

  • Pengembang dapat mengidentifikasi tujuan yang menarik (merangsang secara intelektual) yang terkait dengan pekerjaan yang ingin mereka garap.
  • Tujuan yang meluas ini, setelah disetujui oleh tim (termasuk pemilik produk), menjadi "kartu emas".
  • Tim didorong untuk mengambil satu hari untuk mengerjakan "kartu emas" ini.
    • Biasanya ini terjadi pada hari Jumat, sehingga menjadi "Hari Kartu Emas".
  • Sehubungan dengan Scrum, Kartu Emas dijadwalkan dan dilacak sama seperti item jaminan lainnya; tim perlu menunjukkan hasil mereka.

Ada beberapa poin lain (tidak ada dalam artikel itu) sehubungan dengan penerapan "kartu emas":

  • Jangan biarkan seorang anggota tim tunggal bersenang-senang. Setiap anggota tim harus didorong untuk menghabiskan waktu kreatif dengan mengambil "hari kartu emas" sesekali.
  • Sejalan dengan itu, cobalah membuat "kartu emas" sebagai upaya tim (bukan tugas solo), dan manfaatkan tugas itu sebagai momen bersosialisasi (membangun tim).

Pertanyaan mendasar, di mana inovasi mengacu pada penelitian (berbulan-bulan hingga bertahun-tahun dengan pekerjaan mengerikan) yang memiliki risiko nyata tidak menemukan solusi yang berguna.

Pertanyaan sebelumnya, Teknik pemrograman ekstrem manakah yang cocok untuk digunakan dalam lingkungan penelitian? mencakup banyak dasar dari pertanyaan ini.

(Penafian: Saya menulis salah satu jawaban untuk pertanyaan itu, meskipun bukan yang dipilih.)

Ringkasannya adalah bahwa pekerjaan penelitian perangkat lunak dapat berjalan cepat; itu membutuhkan pesertanya untuk memprioritaskan berdasarkan informasi baru (dengan menyerap ide yang ditemukan / dipelajari dan mensintesis yang baru). Ia memberi kesan "lambat" hanya karena "lambat untuk menunjukkan buah keberhasilan, dan hanya jika berhasil."


Pertanyaan ini tentang Manajemen Proyek Beta - Apa pro dan kontra dari memasukkan manajer proyek ke dalam tim peneliti? - Juga mencakup alasan yang sama.


Dalam semangat, ya.

Seperti yang ditunjukkan dalam jawaban mouviciel , semangat riset perangkat lunak sejalan dengan semangat Agile Manifesto. Apa yang akan saya perdebatkan selanjutnya adalah apakah penelitian berisiko tinggi dapat masuk ke Agile sebagai metodologi organisasi atau manajemen ("Agile in practice").


Dalam praktiknya, Anda harus menjawab beberapa pertanyaan.
Daftar ini tidak lengkap ...

Kita harus melacak kembali sedikit tentang bagaimana Agile Metodologi muncul.

Metodologi Agile biasanya digunakan ketika ada sponsor proyek. Selain itu, kesediaan sponsor untuk mendanai proyek terbatas; ia mengharapkan untuk melihat beberapa perangkat lunak yang dapat digunakan (berpotensi dapat dikirim) kualitas dikirimkan secara teratur setelah mendanai proyek untuk beberapa waktu.

Jenis pekerjaan penelitian dalam pertanyaan ini mengacu pada "upaya yang berpotensi tidak dapat dipecahkan". Dengan kata lain, sifat dasar dari jenis pekerjaan ini melibatkan risiko yang pada akhirnya dapat gagal, terlepas dari semua niat dan ketekunan dari orang-orang yang terlibat.

Ini bukan daftar periksa gaya ScrumButt.
Ini lebih merupakan daftar periksa preflight yang memprediksi apakah seseorang lebih baik "Que Sera, Sera"


1. Transparansi di muka. Apakah sponsor proyek diberitahu kebenaran tentang sifat berisiko proyek?


2. Kesediaan sponsor. Apakah sponsor mengetahui risiko dan bersedia melanjutkan pendanaan?

Sponsor perlu memiliki penerimaan risiko yang lebih tinggi daripada proyek bisnis biasa, atau proyek Software / IT / Agile tipikal. Tidak setiap sponsor cocok dengan kriteria ini. Jika tidak cocok, akan baik bagi profesional untuk mundur dari proyek.


3. Transparansi di seluruh proyek. Apakah sponsor diberitahu tentang status sebenarnya dari proyek secara teratur?

Ini untuk menggagalkan upaya untuk menyembunyikan kemunduran atau menjulang kegagalan dalam proyek dengan menyalahgunakan selang waktu antara pembaruan status.


4. Partisipasi aktif dari sponsor. Apakah sponsor tertarik untuk mengetahui detail seluk beluk, naik turun, janji dan keterbatasan dari setiap upaya?

Masalah dengan penelitian perangkat lunak adalah bahwa mungkin ada banyak petunjuk palsu - baik positif palsu (percaya bahwa suatu pendekatan akan berhasil tetapi akhirnya tidak berhasil), dan negatif palsu (mengklaim sesuatu tidak mungkin, hanya dibantah oleh orang lain) .

Proyek tangkas memungkinkan tim (termasuk sponsor dan pemangku kepentingan) untuk mengambil risiko yang diperhitungkan. "Dihitung" berarti bahwa pengambil risiko sepenuhnya diinformasikan. Jika sponsor tidak mau mempelajari detail seluk beluk proyek, maka sponsor tidak akan memiliki informasi lengkap untuk menghitung (menilai) risiko sendiri.

Bahkan jika sponsor bersedia mengambil risiko keuangan, jika tidak mau juga mengambil risiko pengambilan keputusan (dan menerima konsekuensi atas pilihannya sendiri) maka sponsor juga tidak layak untuk proyek-proyek penelitian berisiko tinggi tersebut.


5. Bisakah tim peneliti menunjukkan (menunjukkan) kemajuan mereka dalam bentuk menjalankan perangkat lunak, yang bertentangan dengan slide presentasi?

Pertanyaan ini sesuai untuk proyek penelitian di mana hasil akhir diharapkan untuk menjalankan perangkat lunak. Slide presentasi bisa berguna untuk menjelaskan teori CS, tetapi bisa juga disalahgunakan untuk menyembunyikan kemunduran dalam implementasi perangkat lunak (atau tidak adanya sama sekali). Demo perangkat lunak dimaksudkan untuk menggagalkan penyalahgunaan tersebut.


6. Bisakah tim peneliti memberikan produk perangkat lunak yang bernilai sebagian, bahkan jika sponsor memutuskan untuk menghentikan pendanaan kapan saja dalam proyek?

Pertanyaan ini hanya relevan berdasarkan kasus per kasus. Beberapa proyek penelitian bersifat inkremental; mereka mungkin memiliki banyak tonggak dan hasil. Untuk itu diperlukan tim peneliti untuk memprioritaskan pendekatan mereka untuk memilih "buah dengan harga terendah lebih dulu", atau "pendekatan biaya terendah untuk menunjukkan kelayakan".

Beberapa proyek penelitian tidak bersifat tambahan: untuk menghasilkan terobosan teknologi tunggal yang sangat spesifik. Itu hit atau miss. Untuk jenis proyek ini, satu-satunya hasil tambahan adalah pekerjaan penelitian dan pembuatan prototipe, dan mungkin publikasi akademis. Hasil tambahan yang “tidak dapat dikonsumsi” ini tetap bernilai bagi beberapa jenis sponsor - yaitu, universitas, lembaga pendanaan penelitian, dan perusahaan besar yang berharap untuk membangun itikad baik akademik.

Namun, proyek penelitian yang memiliki karakteristik seperti itu mungkin juga mendukung pendekatan "Pengodean Koboi", seperti yang dibahas lebih lanjut di bawah ini. Ini disebut "peretasan", dan memang terjadi di dunia akademis.

Karena skala waktu dari sebagian besar penelitian akademik, dana penelitian gaya akademik biasanya diberikan dengan komitmen satu tahun atau lebih; pendanaan penelitian medis (akademik dan komersial) dapat dilakukan untuk periode yang lebih lama. Di sisi lain, penelitian tipikal yang didanai secara komersial dapat dihentikan tanpa pemberitahuan, atau sumber daya (tenaga kerja) mereka sepenuhnya dipindahkan ke proyek lain.


7. Bagaimana tim peneliti mengukur skala silo vs lintas fungsional?

Beberapa jenis tim peneliti sangat diam. Seringkali, ini terjadi dalam proyek "multi-disiplin" - tepatnya satu anggota dari setiap disiplin ilmu terlibat. Akibatnya, tidak ada satu anggota pun yang dapat mengambil alih tugas anggota lain, bahkan yang sangat kecil, karena pengetahuan dan keterampilan mereka tidak tumpang tindih. Kesulitan juga akan meluas ke komunikasi dan definisi tugas.

Tim yang sangat tertutup masih akan mendapat manfaat dari beberapa ritual Scrum seperti pertemuan sehari-hari, tetapi selain dari "ritual" mungkin tidak ada banyak interaksi yang terjadi. Dibutuhkan seorang pelatih lincah yang sangat bersosialisasi untuk membuat tim berbicara dan membangun kepercayaan.


8. Jika seorang pelatih lincah hadir, apakah pelatih meresepkan siklus iterasi pendek, tinju waktu, dan memberikan perkiraan waktu?

Setiap praktik lincah ini menimbulkan kesulitan untuk jenis proyek penelitian tertentu. Namun demikian, dilaporkan bahwa beberapa kelompok penelitian yang memiliki keahlian mampu menerapkan praktik ini dalam penelitian lanjutan . Karena tidak ada detail tentang bagaimana pelatihan tangkas terjadi dalam tim ahli ini, kami mungkin tidak dapat mengetahui bagaimana masing-masing kesulitan ini dapat diatasi.


9. Apakah tim peneliti dengan suara bulat memilih untuk mengadopsi gaya pengembangan Solo daripada metodologi lainnya?

Diedit: versi sebelumnya menggunakan frasa "koboi pengkodean", yang menyinggung kurangnya profesionalisme. Namun, ada perbedaan antara pengembangan solo dan pengkodean koboi, dan keadaan dalam item daftar periksa ini dapat membuat pengembangan solo menjadi pilihan yang sah.

Pertanyaan ini menunjukkan bahwa ada programmer yang lebih memilih untuk memiliki sebagian besar pengembangan. Jika tim peneliti sebagian besar terdiri dari pemrogram jenis ini, mengingat bahwa keahlian anggota tim tidak tergantikan (mengacu pada poin silo keterampilan sebelumnya), maka anggota tim mungkin harus diberikan apa yang mereka inginkan, sebagai gantinya untuk keterampilan dan tenaga mereka.

Perbedaan utama antara pengembangan solo dan koboi pengkodean adalah bahwa dalam pengembangan solo, seseorang dapat mengadopsi praktik yang tercantum dalam The Joel Test: 12 Steps to Better Code , seperti penggunaan kontrol versi, otomatisasi pembuatan, dan memperbaiki bug sebelum menambahkan fitur baru .

Beberapa keadaan akan mendukung setiap anggota melakukan pengembangan solo, sedangkan beberapa keadaan akan mendukung pengkodean koboi.

Pengodean koboi lebih disukai jika tujuan akhirnya adalah "membuat suatu poin", dengan menunjukkan bahwa ada sesuatu yang secara teknologi memungkinkan. Tidak ada persyaratan untuk pengiriman - atau kualitas - selain dari presentasi yang baik pada DEF CON® berikutnya .


Pertanyaan terakhir. Jika keadaan tidak memungkinkan tim Agile untuk melakukan penelitian inovatif, lalu bagaimana mereka menggunakan teknologi inovatif?

Bisnis seperti biasa. Biarkan perusahaan lain (atau akademisi, individu atau tim peretas , startup, dll.) Mengatasi masalah sulit terlebih dahulu, dan kemudian membeli / melisensikan teknologi dari mereka. Industri perangkat lunak telah menjalankan prinsip-prinsip ini selama beberapa dekade.

Penekanan pada menunjukkan prototipe kerja awal dalam metodologi Agile memaksa tim untuk mencari solusi yang ada terlebih dahulu, yang merupakan hal yang baik karena dapat menyelamatkan tim dari beberapa pekerjaan yang berlebihan.


6

Kembali ke Agile Manifesto :

  1. Individu dan interaksi atas proses dan alat
  2. Bekerja dengan perangkat lunak melalui dokumentasi yang komprehensif
  3. Kolaborasi pelanggan atas negosiasi kontrak
  4. Menanggapi perubahan setelah mengikuti rencana

Tidak ada dalam nilai-nilai ini yang melarang inovasi. Sebenarnya, inovasi memiliki sarang yang lebih baik dengan Agile daripada dengan Waterfall.

Namun demikian, dapat terjadi bahwa implementasi Agile yang biasa menempatkan beberapa kendala pada proyek perangkat lunak yang membatasi inovasi, seperti tenggat waktu (jangka waktu sprint adalah tenggat waktu) atau biaya. Tapi ini bukan masalah dengan Agile, ini adalah masalah dengan organisasi kerja saat ini.


3
+ Saya pikir Anda sudah mendapatkannya. Saya pikir masalahnya adalah dengan buku-buku yang memberitahu orang-orang bagaimana melakukannya. (Saya merasa sangat sulit untuk menulis tanpa mengarang-ngarang.) Tim kami mengikuti "Agile" dan artinya adalah pertemuan tanpa akhir. Salah satu anggota hanya berkata, "Hitung saya keluar. Ini hanya mode terbaru. Jika Anda tidak membutuhkan saya, tidak apa-apa."
Mike Dunlavey

@MikeDunlavey - Saya suka bagaimana Anda: Tim kami mengikuti "Agile" beresonansi dengan: Menanggapi perubahan setelah mengikuti rencana .
mouviciel

1
@mouviciel: Saya setuju dengan jawaban Anda tetapi kemudian saya tidak mengerti apa yang benar-benar baru tentang nilai-nilai lincah: Saya telah mengikuti pada poin 1, 2, 4 di semua proyek saya jauh sebelum saya bahkan mendengar kata gesit, dan sebagian besar orang yang bekerja dengan saya melakukan hal yang sama. Kami menyebutnya akal sehat. Jadi, apakah istilah "gesit" hanya kata baru untuk "jangan menjadi budak proses Anda dan menggunakan akal sehat"? Di sisi lain, satu-satunya perbedaan nyata yang dibawa ke pekerjaan saya adalah lebih banyak rapat dan lebih banyak aturan yang harus diikuti.
Giorgio

@Iorgio - Ya, ini adalah cara saya melihatnya. Proyek air terjun terbaik yang saya kerjakan adalah ketika pemimpin tim menyukai akal sehat di antara para pengembang dan memberi tahu pelanggan sebuah kisah "V-model / ISO9001 / Huge Documentation" yang cantik. Apa yang baru dengan nilai Agile terletak pada kredensial yang diberikan oleh penulis Manifesto.
mouviciel

Agile awalnya merupakan manifesto tentang pengembangan perangkat lunak; itu telah tumbuh (atau bermutasi) untuk mengatasi berbagai macam melakukan bisnis. Rapat adalah bentuk komunikasi tatap muka, meskipun itu akan kurang efektif daripada komunikasi satu-ke-satu karena politik dan gaya pribadi.
rwong

6

Saya rasa tidak. Agile adalah tentang memakan gajah coklat - mengambil tugas besar dan memecahnya menjadi potongan-potongan yang dapat dikelola yang tidak hanya dapat dikirim, tetapi juga dikirimkan secara teratur.

Jenis proyek penelitian tidak cocok dengan ini - kecuali jika proyek Anda dapat dipecah menjadi potongan-potongan kecil yang dapat ditunjukkan setiap dua minggu (atau lebih lama - mana kata Agile 2 minggu adalah waktu yang harus diambil oleh sprint Anda, proyek tangkas terbaik yang pernah saya miliki dikerjakan memiliki sprint 6 minggu)

Saya tidak akan mencobanya. Saya akan mengambil sedikit alat tangkas yang menurut Anda akan bekerja untuk Anda, dan mengabaikan yang tidak. Terlalu banyak orang berpikir Agile berarti "Anda harus melakukan semua yang menurut scrum tutorial harus Anda lakukan dan tidak boleh ada kebijaksanaan", pendekatan itu sangat tidak tangkas.


1
Memecah tugas-tugas besar menjadi potongan-potongan kecil bukanlah hal yang Agile. Ini telah digunakan sejak awal rekayasa kembali di Mesopotamia kuno dan Mesir, dan banyak digunakan dalam proyek Waterfall. Jika digunakan dalam proyek Agile, itu bukan karena sifat Agile tetapi karena pola pikir yang diwarisi dari berabad-abad pencapaian sukses.
mouviciel

@mouviciel: Benar, tetapi gesit memaksa Anda untuk memecahkan masalah menjadi potongan-potongan yang harus masuk ke dalam sprint tunggal. Jika tidak (seperti yang sering terjadi dalam proyek penelitian), Anda kacau ... kecuali jika Anda membuat sprint Anda lebih lama. Ketika Anda mengerjakan masalah penelitian yang kompleks, Anda tidak dapat memperkirakan berapa lama waktu yang diperlukan untuk memecahnya menjadi bagian-bagian yang cukup kecil: memiliki bagian-bagian kecil berarti pada dasarnya Anda telah menyelesaikan masalah.
Giorgio

@ rwong: Apakah ada proses gesit selain Scrum yang tidak memerlukan umpan balik sedini mungkin dan siklus pengembangan singkat?
Giorgio

4
"Terlalu banyak orang berpikir Agile berarti" Anda harus melakukan semua yang dikatakan oleh scrum tutorial yang harus Anda lakukan dan tidak boleh ada keleluasaan ", pendekatan itu sangat tidak tangkas.": Benar, tim saya sebelumnya jauh lebih gesit ketika kami melakukan air terjun: kami mengambil potongan yang kami butuhkan dan memasangnya untuk kebutuhan kami. Kemudian datang pembinaan lincah dan kami harus bekerja dengan buku itu: kami kehilangan sebagian besar kelincahan kami. ;-)
Giorgio

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.