Dahili bir temsilci, oylama ve rozetler iyi programlama uygulamalarını teşvik edebilir mi?


17

Sadece yüksek sesle düşünmek - biz programcılar tüm bu oylama / rozetler / rep şeyleri seviyorum, böylece böyle bir şema daha iyi kodlamayı teşvik etmek için bir şirket kodu inceleme sürecine sokulabilir.

Gibi bir şey

  • Siz (veya sizin adınıza başkaları) bir kod incelemesi için inceleme gönderebilirsiniz (snippet, tek taahhüt veya dizi olabilir)

  • Diğerleri bu konuda yorum yapabilir (SE'deki cevaplara benzer)

  • Rozetler verilebilir / önerilebilir (bazıları iyi olurdu, bazıları "Yorum Çölü" gibi kötü olurdu)

  • Kodun kendisi, yorumlar ve rozetler üzerinde yukarı / aşağı oy verebilirsiniz (örneğin, birisi rozet önermişse ve kabul etmediyseniz / kabul etmediyseniz)

Bunun gibi bir planın amacı

  • Kod incelemelerinin kullanımını teşvik etmek için biraz eğlence getirin

  • Kaliteyi artırın (bu şemada hem kod inceleyen hem de gözden geçirenlerin öğrenmesi muhtemel)

  • Kod incelemelerinin kıvılcım 'ego savaşları' olasılığını azaltın

  • Bireysel performansı ölçmenize yardımcı olacak bazı metrikler verin

Bu işe yarayabilir mi? Düşünceler?


2
Sadece bu siteyi buldum - Kod değerlendirmeleri için StackExchange
Ryan

5
Bir süredir iyi bir fikir olacak gibi görünüyor, ancak farklı yapacağım tek şey ceza rozetleriyle kurtulmak. Arkalarında kalanları yakalamaya çalışmaktan vazgeçirecek bir damgalama ve tevazu taşıyorlar.
maple_shaft

1
Bu zor olanı. Bence acımasız gerçek, çoğu zaman hatalardan (kendimiz ve diğerleri) başarılardan daha fazla şey öğrenebilmemizdir. Ve tüm çiçekli hippi konuşma için adil cezalar işe yarıyor. Ailenize sorun;)
Ryan

9
Tek sorun, Jon Skeet'in her zaman 100k temsilcisi ile en üstte oturacağıdır. Jon Skeet şirketiniz için çalışmıyor mu? Önemli değil. Hala orada olacak.
Tom Anderson

1
İyi bir nokta - belki de "Tek bir açıklama satırı olmadan bir sınıfı kontrol ettim" utanç rozeti bir süre içinde sona ermeli veya olumlu bir şey yaptıktan sonra iptal edilmelidir - aksi takdirde zaten yaptığınız gibi iyileştirmeye yönelik bir teşvik yoktur 'işareti' var ve artık önemli değil
Ryan

Yanıtlar:


20

Para, rozet veya rep gibi dışsal ödüller , kısa vadeli , diyetler ve diğer herhangi bir ödül / cezaya dayalı sistem çalışacaktır .

Bunun yerine amaç ve özerklik gibi içsel ödül kullanılmalı ve daha uzun vadeli sonuçlar sağlanmalıdır. Basit dışsal ödül sistemlerinden daha pratik yapmak çok daha zordur, ancak öder.

Birçok uzman bu konuda araştırma yaptı. İşte benim iki favorim:

Daniel Pink , TED'de izlemesi ve anlaması kolay bir konu hakkında harika bir sunum yaptı.

Cezalandırılan Ödüller'in yazarı Alfie Kohn bu konuda şunları yazdı:

Tabii, rüşvet ve tehditler geçici uyum sağlayabilir. Spor salonuna gitmek için yetişkinlere veya bir kitap almak için çocuklara bir ödül teklif edin ve işe yarayabilir - bir süre için. Ancak kendilerini dış motivasyonlu olarak düşünmeye başlarlar, bu yüzden ödül artık mevcut olmadığında devam etmek için bir neden yoktur. Aslında, egzersiz veya okuma ile daha önce olduğundan daha az ilgi gösterebilirler.

Ödüller (ve cezalar) ile ilgili bir başka sorun, insanların davranışlarını değiştirecek olmasıdır. Örneğin, çalışanınıza bonus verirseniz, diğer (şirket çapındaki) amaçlara bakılmaksızın, bu bonusları elde etmeye odaklanacaktır. Departmanlar ve çalışanlar arasında bireysellik ve rekabet yaratacaktır. Kızgınlık gerçekleşecek ve herkes herkesi izleyecek. Özellikle amaçlarınızdan biri "bireysel performansın ölçülmesine yardımcı olmak" olduğunda.

Çalışanın geri kalanı oyunun kurallarını çürütebilir ve istifa edebilir. Artan ciro yeni bir sorun haline gelecektir.

Bu toplulukta motivasyonun nasıl geliştirileceğine dair birçok önerinin sunulduğunu lütfen unutmayın .


2
Pierre, söylediğin bazı şeylere ve Daniel Pink'in bulgularına katılırken, tarif ettiği gibi çözüme uygulandıklarını sanmıyorum. Rep, rozetlerin vb. Parasal bir ödüle bağlı olması farklı olurdu, ancak burada sadece içsel anlamı olan davranışları geliştirmek için kullanılırlar. Bazı açılardan, genel olarak yararlı olduğunu söylemesi gereken stackexchange'in oyun yönlerinden farklı bir yol yoktur. Bu karmaşık bir konudur, bu yüzden dikkatle uygulanması gerekir
Homde

2
@mko: Para bir tür ödül. Rozetler veya itibar başka bir şeydir. Aynı etkiye sahip olduklarına inanıyorum.

2
Pierre, katılmıyorum. Bu ödüller sadece idealist değil, aynı zamanda size şefiniz tarafından değil, akranlarınız tarafından da verilmektedir. Onların takdiri, ustalığımızı ve eylemlerimizin amacını ölçmek için kendimiz için en önemli referans noktalarından biridir. Bir oylama sistemi, rozet ve itibar puanı yalnızca geri bildirimi ölçmekte ve döngüyü yoğunlaştırmaktadır. Yani SE bu yüzden çalışıyor.
back2dos

1
Pierre, gerçekten cesaret ve motivasyon üzerine derinlemesine gidiyor Daniel Pinks Kitap "Sürücü" okumanızı tavsiye ederim. Bir parasal ödülün aslında zararlı olduğu birçok örnek var, gerçek bir ödül değildi '
Homde

1
evet, ancak rozetler varsa, derecelendirme, içsel ödüllere yönelik davranışı vurgulamaya ve yönlendirmeye yarayacak olandan daha iyi bir önlemdir. Yani benim asıl ünü o kadar da değer olmayabilir ama bunu iyi geliştirici olmak istiyorum. Bu nedenle temsilci, mutlak yeteneğimi ölçmezse, göreceli ilerlemeyle ölçebilir ve beni ve kendimi geliştirmem için motive edebilir. Ölçemediğimiz şeyler değiştiremeyiz. Zor olan kısım elbette ölçümü gerçekten bir anlamı olacak ve doğru davranışı teşvik edecek şekilde tasarlamaktır.
Homde

5

Evet, olabilir

Ancak sadece çok dikkatli bir şekilde tasarlarsanız, aksi takdirde geri tepebilir. Bazı yorumlar yaptım ama pozisyonumu özetleyeceğimi düşündüm

İtibar için temel amaç, çalışanların zaman içerisinde becerilerini geliştirmek için kullanabilecekleri bir ölçüm sağlamak olmalıdır. Bunu akılda tutarak çok dikkatli bir şekilde tasarlayın, zor olan şey beceriyi ölçmek için iyi yollarla geliyor, başımın üstünden bunu yapamam.

Rozetler esas olarak "eğlenceli" bir şey, onları daha çok beceri odaklı konulardan uzak ve uzak tutardım. Yani "bu hafta gece baykuş" veya bir grup "sevk! Rozeti" gibi rozetleri iyi olurdu. "Sabit hataların çoğu" veya "Bildirilen hataların çoğu" gibi beceri temelli rozetleriniz varsa, bunun nasıl algılanıp oynanabileceğini çok dikkatli düşünün. Rozetler, IMO'yu tanıtmaktan ziyade davranışı vurgulamakla ilgili olmalıdır. Hem takım hem de bireysel rozetler bulunduğundan emin olun.

Olumsuz rozetlere karşı şiddetle tavsiye ediyorum, bu şeyler eğlenceli olmalı ve insanları hata yapmaktan korkutmak tehlikelidir. Bunun yerine bu durumlar için yararlı bir e-posta oluşturun.

Karar vermelerine ve rozetleri oylamalarına izin vermemenizi şiddetle tavsiye ederim. İnsanlar rozetleri için önerilerini gönderebilirler, ancak insanlar üzerindeki etkileri oldukça şiddetli olabileceğinden, ne rozetler kullanıldığını, ne yaptığını bilen bir kişinin dikkatli bir şekilde karar vermesi gerekir.

Kod değerlendirmeleri ilginç bir fikir ve sanırım bir beceri değeri üretmenin yollarından biri. Kodu vurgulamak ve tartışmak gerçekten yardımcı olabilir. Bununla birlikte, eğer herkes, yazdıkları her şeyin potansiyel olarak yargılantıklarını bilirse, geri tepebilir, tarama yavaşlayabilir. Özellikle bazen hızlı bir şekilde bir şeyler yazdığınız ve sonra yeniden düzenleme yaptığınız yinelemeli gelişim ile bu davranışı istemezsiniz.

Belki de bu kodu kendileri gönderen veya sadece belirli bir yaştaki kodu gönderebilen biri tarafından dengelenebilir. Bununla birlikte, hangi etkilerin olacağını bilmek zor olabilir

Sonun Bunu deneyin ve ne çalışıyor ve ne değil, orada denilen iyi bir kitap görmek gerekecek düşünüyorum Gerçeklik bozuldu o ilginç olabilir. Ayrıca Daniel Pinks kitabı "Drive" da mutlaka okunmalı.


2

Bence HAYIR , iyi uygulamanın kendisini değil, bir semptomu (başkalarının iyi uygulama olduğunu düşünüyorsa ) ölçer .

Bob Amca'nın bir kitabını yorumlamak için (başlığı unuttum): İyi kod neredeyse zahmetsiz görünüyor, sorunu yazmak için yapılmış gibi, önemsiz görünüyor.

Deneyimlerime göre, böyle bir kod fark edilmeden gider ve ancak uzun bir süre sonra bu kodun asla sorun yaratmadığına ve belki de o zaman sorunun kodun girişinden önce büyük bir belirsizlik karmaşası olduğuna dikkat çeker. ve belirsizlik. İncelemelerde övgü alan kod, tipik olarak gözden geçirenlerin nitpick havasında değil, iyi bir güne baktığı ve en az değişikliğe sahip olan koddur.


1
Erm - re: ilk noktanız - evet ama en iyisi bu değil mi? Kod metrikleri kendi başlarına yeterince iyi bir resim vermez.
Ryan

1
Herhangi bir kod inceleme yöntemi için bu doğru değil mi?
nikie

Sorun, onu ölçmeye çalışmanız değil, ölçümünüz ile aslında takımların motivasyonu arasında bir geri bildirim döngüsü ayarlamanızdır. Deneyimlerime göre, bu hızlı bir şekilde takımı daha iyi kodlamak yerine 'testleri geçmeye' motive ediyor.
keppla

1
"Testleri geçin", metrikler için manuel kod incelemesinden çok daha geçerlidir. Birinci argümanınızı uç noktaya taşımak için, hiçbir şeyin 'iyi' olduğuna karar vermenin bir yolu olmadığını söylüyorsunuz. Bu doğru ama bir düzeyde yeterli insanın bir şeyin iyi olduğunu düşünmesi durumunda, muhtemelen iyi olduğunu kabul etmeliyiz.
Ryan

1
Büyük argüman için +1 - tho - büyük kodlar not edilebilir.
Ryan

1

Fikir ekibe yeni bir dinamik getirecek. Ekibin bir rutta olduğunu düşünüyorsanız, bu şeyleri sarsmak için iyi bir yoldur.

Sadece unicorns ve rainbows olmayacağını unutmayın. Bazıları bu girişimi sevmeyecek, dolayısıyla genel üretkenlik / kalite zarar görebilir. Ancak bu risk buna değebilir. Durumunuza bağlıdır.


1

İnsanları "mekanik", tekrarlayan ve sıkıcı şeyler yapmaya motive etmek için dış motivasyon (önerdiğiniz dışsal motivasyon şeklidir) kullanmanızı öneririm:

  • Toplantılara zamanında gelmek
  • Zaman çizelgelerinin zamanında gönderilmesi
  • Belgeleri güncelleme
  • Ekiple bilgi paylaşımı

Bunu yaratıcılık gerektiren veya kalitenin nesnel olarak ölçülemediği herhangi bir işte motivasyon için kullanmam. Örneğin, widget'lar yapan bir kişiniz varsa ve bir parçanın iyi mi kötü mü olduğunu mekanik olarak doğrulayabilirseniz ve onaylanan süreci takip etmedikçe bir parçanın yapılmasına izin vermeyecek bir işleminiz varsa, motive etmek üretken olur Süreç, kalite pahasına daha fazla birim yapmak için kısayol almalarına izin vermediği için üretkenlik için ekstra ödüller veren işçi.

Bu güvenlik önlemleri almadıysanız, dış motivasyon girişimi kesinlikle geri tepecektir. Programlama bu kategoriye dik bir şekilde düşer - yazılım kalitesini güvenilir bir şekilde ölçemeyiz. Bir widget yaptığınızda, fabrikadan ayrılır ve bir sonraki widget'ta yaptığınız işi etkilemez, ancak yazılım yaptığınızda, onu tekrar tekrar çalışmanız gerekir. Yaptığınız şeylerin uzun vadeli etkileri var. Bu çok önemli olan ancak ölçülemeyen uzun vadeli etkilerdir. İçsel motivasyon bu tür şeyler için çok daha kullanışlı bir motivasyon kaynağıdır.

Bunun anlamı:

  • İnsanların işleri için sorumluluk almasına izin verin
  • İnsanları neyin iyi çalıştığı ve neyin işe yaramadığı konusunda birbirleriyle konuşmaya teşvik edin
  • İnsanların çalışmaları için gerçek bir takdir gösterin

Bunların üçünü de bir tür dahili SO yapmaz, yani insanlar neden SO'ya bu kadar çok zaman ayırıyorlar? Ve 'oylama' ile ilgili nokta, bunun gibi bir alanda adil, doğru ve değerli olma olasılığının daha yüksek olduğunu düşünüyorum çünkü tamamen katılıyorum - kaliteyi ölçmek için iyi bir objektif olmayan yolumuz yok.
Ryan

0

Bu işi yapan şeylerden biri, birbirini tanımayan veya birbirleriyle günlük çalışmak zorunda olan çok sayıda katılımcıdır. Küçük bir grupta, sistemi iyi görünmek için oyun oynamanın veya tanıtım için rekabetinizi kötü göstermenin bir yolu olacağını düşünürüm. Bu nedenle resmi akran değerlendirmeleri genellikle zayıf bir sistemdir. Küçük bir grupta, en iyi temsilcisi olan insanlar, en iyi programcılar değil, politik olarak en zekice olanlar olacaktır.


0

Kısa cevap, evet, işe yarayabilir.

Biraz daha uzun cevap, evet, işe yarayabilir, ama aynı zamanda geri tepebilir.

Profesyonel bir programcı olmanın yanı sıra, amatör bir davranış analistiyim.

Modern davranış biliminin imza bulgularından biri, davranışın sonuçlarından güçlü bir şekilde etkilenmesidir.

Sonuçları kontrol ederseniz, davranışı bir dereceye kadar etkileyebilirsiniz. Derecesi, davranışlarını değiştirmeye çalıştığınız her bir birey için belirli sonuçların ne kadar önemli olduğuna ve sonuçlarınızdan kaçınmanın ve çalışmak istedikleri başkalarını bulmasının ne kadar kolay olduğuna bağlıdır.

Profesyonel bir programcı olarak, kod yazmanın bir sonucu da bana ödeme yapılması; Bana ödeme yapmayı kes, ve çok geçmeden görünmeyi bırakardım. Ödeme benim için gerçekten önemli bir sonuç (bir aile büyütüyorum) ve şu anki şirketimde ödenmek yerine çalışmak isteyeceğim başka bir sonuç yok.

Patronum olsaydın, bana hangi sonuçları (teşvikler, güçlendiriciler) sunacağına karar vereceksin. Ama onları nasıl algıladığım konusunda karar veremiyorsun. Örneğin, "Ayın Kodlayıcısı" olarak seçilirsem patronum özel bir park yeri sunmaya karar verebilir. San Francisco'da ya da New York'ta yaşasaydım ve bir araba sürdüysem, bunun için çalışmaya istekli olabilirim. Ama şimdi yaşadığım yerde park etmek sorun değil ve yine de işe gidebiliyorum.

Deneyimlerime göre, işyerinde SO gibi bir program uygulamakla karşılaştığınız en büyük risk, insanlara değerlerini ödemek yerine akran oyları sunmak olarak algılanabilmenizdir.


"Modern davranış biliminin imza bulgularından biri, davranışın sonuçlarından güçlü bir şekilde etkilenmesidir." Bu bir bulgu mu? Gerçekten mi?? Bu hayatımızda çok erken öğrendiğimiz bir şey değil mi? Sıcak şeyler dokunmayın çünkü sonuç acıyor! Sakıncası hala bazen çok fazla içiyorum ...
Ryan

@Ryan: Düşünürdün. Ama "acı veren şeylere dokunma çünkü acıtıyor" bilim yapmaz. Davranıştaki değişikliklerin nasıl ölçülebilir, tekrarlanabilir, tekrarlanabilir ve öngörülebilir hale getirileceğini göstermek - davranış bilimini bir bilim yapan da budur.
Mike Sherrill 'Cat Recall'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.