Cara membuat "kultus kualitas" [ditutup]

21

DeMarco dan Lister (Peopleware) menyarankan Anda membuat "kultus kualitas" dalam tim pemrograman Anda. Dengan frustrasi, mereka tidak menyarankan bagaimana Anda melakukan hal itu!

Adakah yang punya pemikiran tentang bagaimana mencapainya?

Craig Schwarze
sumber
1
"Kultus kualitas" Anda hanya akan seefektif waktu yang dimungkinkan. Ketika bos mengatakan 'Itu harus dilakukan pada hari Jumat' , maka Anda dipaksa untuk menurunkan kualitas untuk kecepatan. Jelas ini bukan yang lebih disukai coders. Idealnya kami lebih suka waktu untuk memastikan kualitas!
balikkan
1
@WesleyWerner: Poin bagus. Tapi saya pikir 'sekte kualitas' juga harus merangkul mengurus utang teknis, yang (pada akhirnya) akan menyelesaikan masalah bos yang Anda sebutkan.
talonx
@invert: Saya biasanya menjawab dalam kasus seperti itu, bahwa kami memiliki situasi analog dengan teorema CAP di sini. Kami memiliki kualitas, kecepatan, dan tenaga, dan ia dapat memilih dua.
JensG

Jawaban:

37

Pengalaman saya adalah bahwa tim pengembangan (tetapi secara umum, tim mana pun) terdiri dari 3 jenis orang:

  • mereka yang memiliki drive bawaan untuk kualitas,
  • mereka yang hanya di dalamnya untuk mendapatkan uang (bir / perempuan / apa pun) dan tidak peduli meskipun Anda mencoba memotivasi mereka,
  • yang "biasa-biasa saja" (karena tidak ada kata yang lebih baik).

Kelompok terakhir adalah yang terbesar, dan mereka cenderung mengikuti partai yang berkuasa. Jika ada cukup banyak orang berkualitas dalam tim, mereka dapat menarik mayoritas dengan diri mereka sendiri, menciptakan spiral ke atas yang kuat dalam semangat dan motivasi tim. Namun, jika ada terlalu banyak pemalas, mereka dapat dengan mudah menciptakan efek sebaliknya, spiral kematian.

Jadi tugas terpenting bagi manajer adalah memilih dan mempertahankan orang yang tepat dan menyingkirkan yang buruk secepatnya . Bukan yang "biasa-biasa saja" - mereka mungkin dipengaruhi untuk mulai meningkatkan, untuk memberikan dukungan untuk ide-ide baik orang lain, dan beberapa dari mereka bahkan mungkin akan menjadi penentu tren positif pada hak mereka sendiri.

[Update2] merefleksikan jawaban Alb : IMO tidak perlu pengembang berkualitas untuk menjadi mayoritas yang jelas dalam tim (meskipun tidak ada salahnya :-). Ada "ambang pengaturan tren" , di mana pandangan dan perilaku subkelompok dapat dengan cepat menjadi "arus utama" dalam suatu komunitas , sehingga orang lain memperhatikan dan mulai mengikuti. Anda dapat melihat ini bekerja di masyarakat yang lebih besar setiap saat (mis. Kebiasaan merokok, kesehatan & diet, mode pop, makanan organik). Perkiraan saya yang sangat kasar adalah bisa sekitar 25-30%, tetapi tergantung banyak faktor. Di sinilah orang jahat bisa sangat terluka. Bahkan beberapa orang jahat dalam tim Anda dapat meningkatkan ambang batas itu secara signifikan. [/ Pembaruan2]

Tentu saja tidak selalu memungkinkan untuk menyewa cukup banyak orang top. Jadi ketika faksi pertama tidak cukup kuat untuk menggerakkan sendiri, manajemen perlu membantu mereka. Beberapa pemikiran tentang ini:

  • Saya pikir Scrum memiliki ide bagus untuk ini dengan demo produk. Memperagakan fitur yang Anda terapkan di depan audiensi yang tidak hanya terdiri dari rekan satu tim Anda, tetapi mungkin juga pengembang dari tim lain, manajemen, bahkan pengguna aplikasi dapat menjadi sumber kebanggaan yang sangat besar dan juga merupakan faktor kuat untuk membantu tim jell.

  • Hal lain adalah manajemen mendengarkan dengan sungguh-sungguh kepada tim pengembang mengenai kualitas. DeMarco dan Lister bahkan menyebutkan bahwa ada perusahaan / departemen di mana tim dev memiliki hak veto atas apa yang dapat diproduksi. Jika mereka merasa aplikasi tersebut belum siap untuk prime time, mereka dapat menunda rilis terlepas dari apa yang diinginkan manajemen. Sekarang itu sulit bagi manajemen, tetapi saya dapat membayangkan bahwa itu membangun semangat tim dan sangat mengomunikasikan pesan bahwa kualitas sangat penting di sini, bukan hanya pada tingkat kata-kata.

  • Ini mengarah ke poin berikutnya: untuk menciptakan "kultus kualitas", manajemen harus benar-benar memahami apa yang sudah diketahui oleh pengembang yang paling berpengalaman: bahwa kualitas bukanlah suatu renungan - harus dibangun ke dalam produk sejak awal. Jadi orang-orang harus didorong untuk (dan dihargai untuk!) Berpikir tentang pemeliharaan jangka panjang, mengusahakan solusi yang baik , bukan yang cepat .

Memperbarui

@Machado dalam komentarnya memberikan sentuhan baru pada pertanyaan (setidaknya bagi saya):

Apa yang dapat saya, sebagai anggota tim, bukan manajer, lakukan untuk meningkatkan kualitas kode tim saya?

Beberapa pemikiran:

  • Teruslah belajar dan sebarkan pengetahuan itu kepada siapa saja yang mendengarkan. Pelajari dan gunakan praktik terbaik dalam bidang keahlian Anda.
  • Banggalah dengan pekerjaan Anda .
  • Keduanya hampir secara alami akan membiarkan Anda menjadi panutan yang positif bagi orang lain - terutama pendatang baru dan junior -; sadarilah hal ini, dan manfaatkan peran Anda untuk kepentingan seluruh tim. Cara terbaik untuk mempengaruhi orang lain adalah dengan contoh positif.
  • Lihatlah tidak hanya pada kode, tetapi pada seluruh proses pengembangan perangkat lunak; terus bertanya dan memberikan umpan balik untuk mengoptimalkan proses pengembangan .

Dan yang tak kalah pentingnya: temukan tempat di mana Anda bisa menjadi "pria papan atas" . Jika Anda berada dalam kelompok "biasa-biasa saja" sekarang, berusahalah untuk mengembangkan diri Anda - semoga ide-ide di atas membantu. Tetapi jika Anda berada di "strata bawah" di tim Anda saat ini, saya sarankan Anda untuk menganalisis alasannya. Apa yang menurunkan motivasi Anda? Kondisi kerja yang buruk? Rekan setim? Pengelolaan? Jenis pekerjaan? Dan apa yang menggairahkan dan menarik minat Anda? Anda mungkin perlu berbicara dengan rekan kerja dan / atau bos Anda tentang hal itu. Atau Anda mungkin perlu mencari pekerjaan yang lebih baik - atau bahkan profesi baru - di mana Anda dapat mulai bersinar. Benar-benar tidak layak menghabiskan sebagian besar kehidupan seseorang dengan aktivitas yang tidak memuaskan atau menyedihkan.

Mungkin juga Anda dipaksa untuk melanjutkan pekerjaan Anda yang suboptimal saat ini karena faktor-faktor eksternal (kurangnya kesempatan kerja yang lebih baik, perlu membayar tagihan, dll.) - hal itu terjadi sesekali. Bahkan dalam kasus ini, cobalah untuk melakukan yang terbaik dari itu. Menghasilkan karya berkualitas (sebanyak keadaan memungkinkan) adalah hadiah itu sendiri, yang membantu menjaga harga diri Anda, dan menjaga diri Anda tetap waras dan terbuka dalam jangka panjang. Jadi ketika sebuah peluang untuk sesuatu yang lebih baik muncul, Anda lebih siap untuk mengambilnya.

Péter Török
sumber
4
Nasihat yang berbahaya. Bagaimana jika OP milik grup 2/3? ;)
1
jawaban yang bagus, saya tidak pernah memikirkannya seperti ini, tetapi sangat masuk akal.
Alb
9
@ Pengembang jika mereka, mereka tidak akan membaca DeMarco dan Lister atau mengajukan pertanyaan di sini.
Alb
Saya pikir pertanyaannya lebih diarahkan dari sudut pandang anggota tim. Jika manajemen benar-benar menginginkan kualitas, mereka akan mendengarkan pengembang top / inti mereka. Apa yang dapat saya, sebagai anggota tim, bukan manajer, lakukan untuk meningkatkan kualitas kode tim saya?
Machado
1
@ Thorbjørn, pertanyaan bagus! Saya akui saya telah melewatkan ini di sebagian besar tempat kerja saya sejauh ini. Berharap tidak terdengar terlalu membesar-besarkan diri, aku selalu mencari rekan tim untuk mencari dan belajar, tapi aku jarang menemukannya. Jadi saya beralih ke buku dan internet. Sebisa mungkin, saya menemukan panutan dalam Martin Fowler, Paman Bob Martin et al. Dan akhir-akhir ini di komunitas SO! Ini adalah tempat yang hebat untuk belajar. Juga "penyedia realitas yang kuat". Pengalaman merendahkan mengungkapkan batas dan kesenjangan dalam pengetahuan seseorang bisa sulit untuk diambil, tetapi sangat sehat bagi saya.
Péter Török
2

Jawaban hebat dari Péter Török untuk menyoroti bahwa Anda hanya akan mengelola ini dengan mayoritas orang baik. Setelah Anda memiliki orang-orang baik, Anda perlu lebih mengarahkan pendekatan wortel daripada tongkat. Berdayakan pengembang, biarkan mereka mengambil kepemilikan proyek / tugas dan mendorong persaingan dalam hal kualitas, mungkin orang-orang memberikan presentasi singkat tentang bagaimana mereka meningkatkan kualitas dalam proyek. Pengembang yang baik akan termotivasi untuk mengesankan rekan-rekan mereka.

Alb
sumber
+1 Poin bagus tentang motivasi. Saya tampaknya salah paham tentang mayoritas; Saya memperbarui jawaban saya untuk menjelaskan.
Péter Török
2

Selain komentar Peter (yang benar-benar masalah inti), Anda perlu memastikan kualitas bukan fitur yang ditambahkan nanti.

Lebih spesifik:

  • Hapus jejak pemikiran 'Kami akan membersihkannya nanti'. Alih-alih berusaha di awal untuk menyelesaikannya dengan cara yang benar.
  • Mengharuskan agar perubahan ditinjau dan dikerjakan melalui semacam proses QA yang melibatkan seseorang selain dari pengembang.
  • Paksa pemikiran tentang kualitas pada fase awal proyek. Pertahankan hal-hal seperti "semudah ini bagi orang lain untuk mempertahankan" dalam fokus selama pengembangan.
  • Lacak dan laporkan bug yang terjadi. Jika ada tren lihatlah cara untuk memerangi akar penyebab bug.
  • Perkenalkan pemikiran perangkat lunak sebagai kerajinan yang dapat diperbaiki dan sesuatu yang dapat dibanggakan oleh pencipta.
jzd
sumber
1

Saya akan mengatakan bahwa cara terbaik adalah mendorong kualitas daripada output. Ini adalah salah satu tempat dari gerakan Lean Software (berdasarkan Lean Manufacturing). Saya telah menulis posting blog panjang yang membahas tentang apa itu Lean . Saya memberi tahu Anda cara membuat kultus kualitas. Investasikan pada karyawan Anda dan biarkan mereka berinvestasi di perusahaan Anda (bukan investasi moneter, tetapi investasi pribadi).

Dan Pink berbicara di TED tentang apa yang memotivasi kami. Meskipun dia tidak merujuknya secara khusus. Hierarki Kebutuhan Maslow menjelaskan fenomena yang diamati dengan sempurna. Selama majikan menjawab dua kebutuhan pertama (yaitu membayar uang yang cukup sehingga uang tidak menjadi masalah) yang tersisa adalah Milik, Harga, dan Aktualisasi Diri.

  • Berikan komunitas yang solid untuk memiliki.
  • Berikan lingkungan di mana karyawan merasa bebas untuk melakukan kesalahan sehingga mereka dapat membangun harga diri ketika mereka membuat prestasi.
  • Berikan kendali kepada pengembang Anda sehingga mereka dapat membuat keputusan penting untuk aktualisasi diri

Kualitas bukanlah sesuatu yang dapat didikte ... melainkan diaktifkan. Percayai karyawan Anda untuk melakukan yang terbaik dan keluar dari jalan. Akhirnya, Anda harus memberi tahu mereka bahwa mereka harus pergi. Daripada meminta mereka untuk meluangkan lebih banyak waktu

Michael Brown
sumber