Perangkat Lunak Berlapis Emas
Pertama kali saya melihat pelapisan emas yang digunakan sebagai deskripsi untuk perangkat lunak adalah dalam sebuah makalah oleh Barry Boehm di mana ia memberikan akar penyebab berikut:
Pelapisan emas. Spesifikasi persyaratan tetap sebelum desain cenderung mendorong perangkat lunak pelapisan emas. Pengguna bertanya tentang persyaratan mereka akan sering beralasan, "Saya tidak tahu apakah saya akan membutuhkan fitur ini atau tidak, tapi saya mungkin juga menentukannya untuk berjaga-jaga."
Dalam uraiannya, ia merekomendasikan menggunakan metode yang dijelaskan dalam penelitiannya termasuk model siklus hidup perangkat lunak spiral di mana proyek-proyek dicakup untuk menghasilkan serangkaian prototipe satu per siklus, dan ketika spiral semakin besar, produk fitur lengkap. Spiral memiliki pengaruh luas menyebar di antara para peneliti perangkat lunak, dan merupakan jembatan penting antara air terjun dan Agile. Batasan kritis spiral adalah bahwa setiap kali mengelilingi spiral, siklus menjadi lebih lama dan lebih mahal.
Seperti Agile, spiral mencoba menghindari pelapisan emas dengan pelingkupan yang lebih sempit dan menjadwalkan proyek yang cukup lama sehingga tim dapat menyelesaikan persyaratan, sementara pada saat yang sama menjadi cukup pendek untuk memungkinkan fokus pada tujuan dari hari pertama hingga hari pengiriman. Salah satu cara metode Agile seperti Scrum lebih unggul adalah Scrum berlari untuk jangka waktu yang tidak lebih lama dengan iterasi. Dari makalah, manajemen proyek tampaknya memiliki pengaruh lebih besar pada pelapisan emas daripada pengembang individu.
Bakat untuk Tinju Waktu
Mampu kotak waktu sangat penting, tetapi itu bukan keterampilan biner. Anda tidak memilikinya atau tidak memilikinya. Anda lebih baik atau kurang baik dengannya. Apakah itu berasal dari atasan Anda atau dari Anda, saya lebih suka jika tidak ada yang mengatakan bahwa Anda tidak dapat menghentikan pelapisan emas. Itu terdengar pribadi, meresap, dan permanen.
Analisis akar penyebab mungkin membantu mengidentifikasi beberapa masalah. Saya cukup yakin mereka tidak semua akan menunjuk pada Anda, dan bahwa kecuali Anda bekerja dengan psikopat, orang lain di tim Anda akan melihat kebutuhan serupa untuk meningkatkan keterampilan Agile mereka. Jika Anda mengenal seseorang tanpa masalah, Anda tidak mengenalnya dengan baik. Jika Anda mengenal seseorang yang berpikir mereka tidak perlu meningkat, mereka tidak mengenal diri mereka dengan baik.
Saya harap perbaikan yang Anda identifikasi akan menjadi hal yang dapat Anda selesaikan dengan kesadaran dan bantuan Anda sendiri dari tim. Namun, saya pikir itu bukan di mana ini berakhir. Harapan saya dari penyelia atau manajer yang menulis ulasan Anda adalah mereka juga dapat melatih bawahan mereka untuk menjadi sukses. Ini sangat penting ketika organisasi sedang mengalami perubahan revolusioner seperti beralih dari yang direncanakan ke Agile (atau ad-hoc ke Agile).
Prototipe Dikelola Cepat atau Kotor atau Risiko?
Saya memiliki seorang manajer yang biasa meminta tugas dilakukan dengan cara tertentu.
Cepat dan kotor, tapi cantik.
Dia tahu kekonyolan dari ini, dan itu adalah bagian dari rasa humornya yang masam. Banyak orang mengatakan hal-hal seperti ini dan mereka benar-benar serius. Di suatu tempat, ada kompromi atau peluang untuk meredakan masalah dengan teknologi atau pendekatan yang ditingkatkan.
Apa yang bisa kita korbankan agar sesuai dengan kotak waktu kita?
Dalam bab satu dari Extreme Programming Dijelaskan , edisi kedua, Kent Beck berbicara tentang apa yang diperlukan untuk bergerak cepat. Jawabannya adalah "Anda hanya melakukan apa yang perlu Anda lakukan untuk menciptakan nilai bagi pelanggan."
Risiko
Dalam edisi pertama buku yang sama, Beck mengidentifikasi sedikit lebih dekat dengan pandangan Boehm tentang mengendalikan risiko sebagai hal yang kritis untuk metodologinya dengan mengatakan:
"Risiko adalah masalah dasar pengembangan perangkat lunak"
Dalam kedua edisi, Beck mendaftar dan menjelaskan delapan risiko umum, diikuti oleh pernyataan bahwa XP (atau mungkin dengan ekstensi, Agile) membahas masing-masing dengan cara tertentu. Bagi saya, sebagian besar penjelasannya bermuara pada penggunaan peningkatan yang lebih kecil dan iterasi yang lebih cepat memungkinkan kita untuk mengarahkan hal-hal kembali ke jalurnya sebelum risiko tumbuh terlalu besar untuk ditangani.
Mentalitas Kecukupan
Beck membahas sumber daya dalam konteks sebuah cerita tentang Penduduk Gunung dan Penduduk Hutan dan memperkenalkan konsep yang disebut "Mentality of Sufficiency". Dalam konteks situasi Anda, ia bertanya, "Bagaimana Anda melakukannya jika Anda punya cukup waktu?" Hanya satu bab pertama ini, tersedia sebagai pratinjau buku, dapat memberikan banyak makanan untuk dipikirkan tentang bagaimana XP (dan metode Agile lainnya) memikirkan kendala seperti waktu.
Paksaan Mungkin menjadi Gejala, Bukan Penyakitnya
Bertahun-tahun yang lalu saya melihat sebuah buku tentang penundaan yang menyatakan bahwa banyak penundaan muncul dalam ketakutan. Jika Anda tidak memulai, Anda tidak membuat kesalahan, dan mungkin Anda tidak akan dikritik. Paksaan dan perfeksionisme memberi sesuatu yang menurut akal sehat kita lebih baik daripada menunda-nunda, tetapi mungkin memiliki hasil yang sama. Pertimbangkan bahwa mungkin Anda mengalami masalah dengan penundaan dalam bentuk lain?
Kritik dan Persaingan
Dalam metodologi Agile seperti Scrum, peluang untuk dikritik atau dihukum karena penundaan tidak pernah lebih tinggi. Itu adalah lingkaran setan. Saya menunda-nunda karena saya dikritik, saya dikritik karena saya menunda-nunda. Dengan rapat scrum harian, kami selalu waspada karena kami selalu sehari atau kurang dari melaporkan kepada tim apa yang kami capai.
Dalam tim yang ideal, Scrum memberikan peluang harian untuk memperbaiki penundaan. Kesalahan seharusnya tidak punya waktu untuk menjadi besar sebelum bantuan tiba. Tim tidak selalu berada di tempat yang seharusnya mereka percayai, sehingga para pemimpin dalam tim mungkin perlu secara proaktif mengatasi kritik atau ketakutan kritik agar hal-hal bergerak maju.
Dalam dunia kerja kita, setiap orang dalam tim juga harus bersaing dengan yang lain. Ini agak skizofrenik untuk percaya memiliki tim yang berbagi pekerjaan dan kemuliaan untuk pencapaian, tetapi kemudian menggunakan proses manajemen kinerja tahunan yang memberi hadiah 20% dari anggotanya, menghukum atau mengusir 10% atau lebih dari anggota, dan berpura-pura bahwa 70% mayoritas berkontribusi terbaik tanpa insentif. Saya pikir ini adalah gajah besar di ruangan WRT yang mempromosikan kerja tim, dan untuk merujuk kisah Kent Beck, itu menunjukkan ikatan budaya yang mendalam untuk menjadi Manusia Gunung.
Jalan lurus
Sebagai anggota tim Agile, akan baik untuk belajar dan berdialog dengan orang lain tentang apa yang berhasil. Jika tim Anda menggunakan TDD untuk mengotomatisasi tes unit mereka dengan alat, mintalah orang yang melakukan yang terbaik untuk melatih Anda. Jika supervisor atau manajer Anda memiliki masalah dengan pendekatan dokumentasi Anda, cari tahu apa yang dia sukai atau siapa yang melakukannya dengan cara yang dia sukai, dan ikuti pendekatan mereka. Jika bermuara pada kecepatan pengkodean mentah, selidiki apa yang diperlukan untuk kode lebih cepat.
Para pemimpin dapat mengambil langkah-langkah ke arah yang benar dengan memberi contoh peran perilaku yang diinginkan seperti pembicaraan jujur tentang masalah mereka sendiri (bukan masalah orang lain), menawarkan dan menindaklanjuti dengan bantuan, melakukan dialog tentang bagaimana tim dapat pindah ke gaya Agile Marine (yaitu tidak ada laki-laki tertinggal). Tidak semua orang di tim memiliki kemampuan yang sama. Mungkin tepat untuk mengeksplorasi anggota tim pasangan atau menugaskan tugas dan peran yang dapat menekankan kekuatan pelengkap dari orang-orang yang terlibat. Perencanaan untuk pertumbuhan atau remediasi keterampilan harus menjadi bagian pekerjaan yang berharga baik untuk penyelia maupun bawahan, tetapi harus terjadi sejak dini dan sering kali agar efektif.