Bir işyerinde “% 20 zaman” tanısı [kapalı]


30

% 20 zaman o 's çalışanlar ilginç buldukları projeler üzerinde çalışırken zamanlarının% 20'sini geçirmek için izin işveren kültürü - bu yeni bir uygulama icat veya varolan sürecinin iyileştirilmesi olabilir, vs. Bazı insanlar olabilir kokarca olarak bunu biliyorum Ancak bu terim sizin için hiçbir şey ifade etmeyebilir (ya da tamamen farklı bir şey).

Bir şirkette% 20 / skunk çalışmasından doğmuş birçok harika ürünün belgelenmiş durumu vardır. Bir kazan / kazan durumu gibi görünüyor; Şirket potansiyel olarak mükemmel bir yeni ürün veya uygulama kazanır ve geliştirici yaratıcı kaslarını esnetme ve yenilik yapma olanağına sahiptir.

Önceki işverenimde başarılı olmayan bir şekilde% 20 / Skunk türünü tanıtmak için birçok kez denedim.

Nasıl yönetime haklı çıkarabilirim? Bu tür bir iş düzenlemesine yaklaşmanın "doğru" yolu nedir?


11
Skunk çalışması? Burası herkesin güçlü esrar içip gerçek korkak kod yazdığı yer mi?
Dan Diplo

@Dan theregister.co.uk/1999/10/27/what_the_hell ;) Bir şirkette "planlanmamış geliştirici tarafından başlatılan işi" tanımlamak için kullanılan bir terimdir. Genellikle yarı zamanlı. Bazı şirketler çalışanlarının zamanlarının bir kısmını istedikleri herhangi bir şey üzerinde çalışarak geçirmelerine izin verir - bazen bu işler şirketin kullanabileceği işe ya da piyasaya sürülmesi için bir ürüne dönüşür.
dannywartnaby 7:10

2
@ danny Bu terimi nasıl anladığımdan emin değilsiniz: Google’ın "% 20 zamanını" açıklıyorsunuz. Lockheed'in Skunk Works'ün plansız bir şey yaptığından şüpheliyim. Aksine, "ileri veya gizli projeler üzerinde çalışmakla görevli bürokrasi tarafından yüksek derecede özerklik verilen ve bürokrasi tarafından engellenen bir kuruluş içindeki grup". (
WP'nin

1
@SteveBennett:% 20 zamanın aşırı mantığı,% 100 kullanım, fonksiyonel silolarda çalışma, yüksek derecede uzmanlık derecesi, her bir işte harcanan zamanı ve çok, çok ve çok fazla atıktır.
azheglov

1
Bu, İşyeri için daha fazla soru olmakla birlikte, daha önce burada sorulmuştur - workplace.stackexchange.com/questions/468/…
ChrisF

Yanıtlar:


45

% 20 zamanın ana nedeni, kapasite kullanımının% 100 yerine% 80'de tutulmasıdır.

Bir yazılım geliştirme organizasyonunu, özellik isteklerini gelişmiş özelliklere dönüştüren bir sistem olarak düşünebilirsiniz. Davranışını kuyruk teorisini kullanarak modelleyebilirsiniz .

TEORİSİ

İstekler, sistemin kendilerine hizmet edebileceğinden daha hızlı gelirse, sıraya girerler. Gelenler yavaşladığında, sıra boyutu azalır. Varış ve servis işlemleri rastgele olduğundan, sıra boyutu zamanla rasgele değişir.

Matematiksel olarak eğimli bu "rastgelelik" hakkında soru sorabilir: bazı olasılık dağılımları olmalı, yani sıra boyutu ortalamada ne olacak? Math'ın (kuyruk teorisi) buna bir cevabı var: eğer hem varış hem de servis işlemleri Markov ise, o zaman N = rho ^ 2 / (1-rho).

(Hizmet ve varış oranlarının oranına eşit kullanım katsayısı ise. İşlemler Markov değilse, matematik daha karmaşıktır, ancak sonuçları değiştirmez.)

Bu fonksiyonu çizerseniz, ortalama kuyruk uzunluğunun kullanım 0.8'e kadar düşük kaldığını , ardından keskin bir şekilde yükseldiğini ve sonsuza kadar gittiğini görebilirsiniz. Bunu, bilgisayarınızın CPU'sunu düşünerek sezgisel bir şekilde anlayabilirsiniz: kullanımı% 100'e yaklaştığında, bilgisayar yanıt vermiyor.

UYGULAMA

Yazılım geliştirme ekonomisi, yazılım şirketlerinin sıralarının yüksek sıralarda olması durumunda büyük maliyetlere maruz kalmasıdır. Bu, kaçırılmış pazar fırsatlarını, eski ürünleri, geç kalan projeleri ve talep beklentisiyle bina özelliklerinden kaynaklanan atıkları içerir.

Dolayısıyla,% 20 zaman, ekonomik sonuçları optimize etme sorununa bilimsel bir cevaptır: Yüksek sıradaki durumlardan kaçının, buna neden olan kullanım oranlarından kaçının. Esasen sistemi duyarlı tutan gevşekliktir.

Birkaç pratik sonuç hemen takip eder:

  • % 20 zaman alıyor ve maliyet muhasebesi yapıyorsanız (geliştiricilerin zamanı X'e mal olur, ancak / ve şirket bunu karşılayamaz / karşılayamazsa), yanlış yapıyorsunuzdur.
  • Her hafta cumaya% 20 tahsis ediyorsan, yanlış yapıyorsun
  • % 20 zaman proje teklifi teslim / inceleme / onay sistemi kuruyorsanız, yanlış yapıyorsunuzdur
  • zaman çizelgelerini dolduruyorsan, yanlış yapıyorsun
  • Eğer yeniliği% 20 zaman boyunca motive edici olarak kullanıyorsanız, yanlış yapıyorsunuz demektir. Yeni ürünler% 20 projeden çıksa da önemli değildi. Şirketiniz çekirdek saatleri boyunca yenilik yapamıyorsa, bu bir sorun!
  • % 20 zaman yaratıcılıkla ilgili değil. Yaratıcılığınızı% 20 zamanla serbest bırakacağınızı söyleme, neden zaten çekirdek saatleriniz boyunca yeterince yaratıcı olmadığınızı sorun.

YORUMLARINIZDA SORULARA CEVAP

Dan , bunu doğru yaptın ve birçok kişi tarafından yapılan hatayı doğru tarif ettin. Kullanım yüzdesini seçemezsiniz, çünkü bu bir çıktı değişkenidir. İki sürecin özelliklerinin bir oranıdır, yani süreç budur, çünkü süreçler oldukları gibidir. Bir kuruluşun her iki süreçte de etkisi vardır; Yetenek ve talep eşleştirme, yalın yazılım geliştirme bilgi birikimi tarafından ele alınan zor sorunlardan biridir. Kullanımı, bu sorunun bir organizasyonda ne kadar iyi çözüldüğünün göstergelerinden biridir. Yalın girişiminiz ilerledikçe gevşeme ortaya çıkıyor ve atıkları değer akışından kaldırıyorsunuz. Ancak% 20 zaman ayırırsanız, daha az kapasite ile aynı kullanım tuzağına düşersiniz.

Kim , bu hala kısmen bir kültür meselesi. Düşünebileceğim en yakın kültürel referans, sözde Marshall örgütsel değişim modelinin sinerjik seviyesidir . Başarılı yalın dönüşümlerin sonunda ortaya çıkar veya başlangıçtan itibaren yalın olarak kurulan organizasyonlarda bulunur. ( İşte Bob Marshall'ın beyaz makalesine bir link (PDF) .)

REFERANSLAR

Yukarıdaki mantık, yazılım mühendisliği literatüründe iyi desteklenmektedir. Mary ve Tom Poppendieck, Yalın Yazılım Geliştirmeyi Uygulamaya Getirdikleri 2006 kitaplarında bunu ima etti . Donald Reinertsen , 2009 yılında yayınlanan Ürün Geliştirme Akışı İlkeleri kitabında (Bölüm 3), bu konunun formül ve grafiklerle ayrıntılı bir şekilde ele alınmasını sağlar.


Woah, güzel cevap. Bunu hiç düşünmedim - her zaman kültürel bir şey olarak görmüştüm. +1
Kim Burgess

ÇOK ilginç ... Yine de sakın kırmadığım bir şey var: Neden kuyruğun% 80'e kadar küçük kaldığı, çünkü bu noktaya kadar boş kapasite var. Kapasitenizin% 20'sini sıra dışı öğelerle doldurma zorunluluğu varsa, kapasitenizi% 80'e düşürdünüz ve% 80'i yeni% 100'ünüz. Sağ?
Dan Ray,

@KimBurgess: Cevabın sonunda soru ve yanıtlarına yorumunuza bir yorum ekledim.
azheglov

@DanRay: Doğru yaptın! Cevap sonunda soru-cevap ekledim.
azheglov

3
Keşke on kez oy kullanabilseydim.
Daniel Daranas

12

Bu cevabı yazdıktan on dört ay sonra çok daha iyi bir cevap buldum .

Bu eserlerin resmen tanındığı bir yerde çalışmamıştım. Ancak konuşmalarımdan ve bu uygulama hakkında bilgi edinmeye çalıştığımda, şunu buldum - peki, çoğunlukla "% 20 zamanının" ne olmadığını:

  • bu aslında bir kültür değil, politika
  • üst yönetim tarafından karar verilemez
  • bir geliştiriciler kurulu tarafından kurulamaz
  • Bu 32 saat ve bu 8 saat değil

Cevabınız için teşekkürler. Sanırım bir kültür olmalı - personeli bir şeyler icat etmeye zorlayamazsınız. Ayrıca geliştiricilerden oluşan bir komite tarafından yapılamayacağı konusunda da hemfikirdi - deneyimlerim kesinlikle buna uyuyor, bu yüzden sanırım soru bu kültürün nereden geliyor? Atlassian bunu denedi, bu yüzden bir yönetim kararı olmalı. Bunun, ancak bir şirketin kuruluşundan itibaren kültürünün merkezinde olması durumunda işe yarayabilecek bir şey olduğunu düşünüyor musunuz ?
dannywartnaby

Atlassian durumunda, karar en baştan geldi, ancak sanırım doğru çalışanlar vardı, geliştiriciler buna hazırdı. Yine de, bu blog yazısı: blogs.atlassian.com/developer/2009/02/… uygulamalarında epeyce sorun olduğunu bildirdi ve denemelerine devam edeceklerini söyleseler de, halkı bir bir buçuk yıl. Takipte kalıyorum.
azheglov

6

" Skunkworks "% 20 zamanla aynı değil. Söylediğiniz gibi% 20 zamandır - geliştirici üzerinde çalışılacak olanı kendi başına seçer. Skunkworks tamamen farklı. Bir skunkworks projesi, üst yönetime bildirilmeyen bir ekip (genellikle guruların parçalanma ekibi) tarafından yürütülen, yüksek değerli, yüksek maliyetli bir projedir ve ekip, projenin yönetim yönetimi olmadan nasıl ilerlemesi gerektiğine karar verir. . Bu projeler genellikle bir şeyi başarmak için taktiksel veya ticari bir ihtiyaçla motive edilir, ancak bütçesinde yer yoktur. Bir şeyin yapılması gerekiyorsa, yapılır - bütçeler lanetlenir.

% 20 zaman uyguladığım bir geliştirme ekibini yönettim. Ya da yine de denedim. Üstlerimin onayını aldım, bu bir sorun değildi. Sorun, ekibin çok küçük ve çok uzmanlaşmış olmasıydı. Acil müdahale gerektiren problemler ortaya çıktığında,% 20 zaman kaybedildi. Bu çok sık oldu.

Ayrıca geliştiricimin bir kısmının yön eksikliğimi rahatsız edici bulduklarını da buldum. “İstediğiniz herhangi bir şey üzerinde çalışın, programlamaya bağlı olduğu sürece” dediğim halde, “şey” kısmını kabul etmekte zorlanıyorlardı. Bazı projelerin diğerlerinden daha iyi olacağını düşünüyorlardı, bu yüzden kaçınılmaz olarak ana üründeki düşük seviyeli uygulama talepleri üzerinde çalıştılar, bunun gibi şeyler. Dallanmalarını ve büyümelerini istedim ama bunun yerine ana uzmanlıklarını daha derine çıkardılar.

Tekrar yapardım, ama ana ürün üzerinde çalışmayı açıkça yasaklardım ve başlamak için seçebilecekleri bazı fikirler ile başlayabilirim.


1
Neden ana uzmanlıklarına daha fazla kazmaları bir problemdi? Yapılması gereken (muhtemelen) yapılması gereken şeyleri uygulamaktan mutluluk duyuyorlardı ama olmadı. Her zaman yeni ve yenilikçi şeyler denemek konusunda herkes tutkulu olmayacak ve bu tutumu zorlamanın bir hata olacağını düşünüyorum.
Matt Olenik

Tam olarak bir sorun olduğunu söyleyemem . Sadece ürün üzerinde çalıştıklarını düşünüyorum çünkü limitsiz bir şey seçmek konusunda çekingen davrandılar. Bu kısmen, uygun problem alanının her şey olduğunu yeterince açıklamadım.
John Dibling

Gerçekten yararlı cevap John, teşekkürler. Yönsüzlüğün ve işe icat etme özgürlüğünün, kavramın merkezinde olduğu gibi, bazı geliştiriciler için çalışmayan zamanın% 20'sine katkıda bulunan bir faktör olduğunu ilginç bulmanız ilginçtir. Sanırım bazı geliştiricilere, bunlardan en iyi şekilde yararlanmak için net bir hedef verilmesi gerekiyor. Sanırım kültür "zamanınızın% 20'sini bir şeyler yaratmak için harcayabiliyor, ama yapamıyorsanız, sorun değil, belki daha iyi bir şey yapmak için zamanı kullanın - şu anki projeniz olmak zorunda değil" ..?
dannywartnaby

Bu garip, ilk önce "skunk works" terimiyle , bir geliştirici için gizli bir evcil hayvan projesi olarak başlayan ve daha sonra kuruluşun yönünü tamamen değiştirdiği ortaya çıkan, yüksek değerli ancak düşük maliyetli bir proje tanımlayan bir kitapta tanıştım .
Spoike

4

% 20 politikasını uygulayan bir girişim için çalışıyorum. Bu benim bunu yapan ilk işverenim ve iş görüşmesine katıldığı zaman, diğer işverenlerin çoğu bir saatini "boşa harcamamaya" çalıştığı için gerçekten şaşırdım.

Kurulduğu zaman devreye girdim ve neredeyse bir yıl boyunca tek geliştiriciydim. % 20'mi temelde birkaç şeyle harcadım:

  • Raporlama / rasgele açık kaynak projelerine hata tespit - Bu ilginç bir projeyi bölmek gibi küçük olabilir Github & dokümanlar birkaç yazım hatası tespit.
  • Açık kaynak kodlu "şeyler" yazma - sadece eğlence için programlama zorlukları gibi şeyler.
  • Konferanslara ve sprintlere gitmek - birkaç ayda bir, projeler üzerinde çalışabileceğim (bazıları ana uygulama tarafından kullanılabilecek, bazıları değil) ve biraz tecrübe kazanabileceğim bir sprint'e giderim. Uygulamamız tarafından ve geliştiricilerini konferanslara gönderen diğer şirketler tarafından geliştirilen uygulamalar tarafından kullanılan birkaç kütüphane vardır, bu nedenle şirketimize doğrudan bir fayda olarak görülebilir.
  • Yeni teknolojiler öğrenmek - işte böyle kullanmamıza rağmen Go'yu böyle öğrendim . Bu özellikle işverenim tarafından teşvik ediliyor. Son zamanlarda bazı Stanford ücretsiz çevrimiçi derslerini takip ediyordum.

Zamanlar tam olarak ölçülmüyor, kesinlikle 32 + 8 saat değil, bazen% 20 kesmek için yeterli zaman olmadığında yapılması gereken acil şeyler var, diğer zamanlarda ise daha fazla zaman ayıracağım.

Uzaktan çalışıyorum ve 37signal'ın Campfire sohbetini iletişim kurmak ve birbirimizin varlığını gevşek bir şekilde izlemek için kullanıyoruz ve bu saatler "çalışma" saatleri olarak izleniyor, sohbete giriş yapıyorum ve iş arkadaşlarım için uygunum. Şu anda projemiz üzerinde çalışmayacağımı açık.


3

Küçük deneyimlerime göre, aslında bir çok projemiz bu şekilde başladı. Yeni projeler üstlenecek boş zamanımız ve bant genişliğimiz vardı, bir araya geldik ve bölümümüz için potansiyel ileri / iyi düşünme fikirleri ile karşılaştık. Boş zamanlarımızda bir prototip geliştirdik ve bir kez oldukça cilalandı, üst seviyeye çıkarıldı ve genellikle fayda görüyorlar.

Bana öyle geliyor ki, üst seviye gördüklerinde ne istediklerini biliyor, ancak görene kadar ihtiyaç duyduğunu / bilmiyorlar. Prototipleme kendi projelerimizi yaratmamıza, teklif etmemize ve onaylandıktan sonra tamamlamaları için daha fazla zaman ayırmamıza izin verdi.


Bunun çoğu kuruluş için geçerli olduğunu düşünüyorum - kesinlikle geçmişte yaşadım, yönetim / pazarlamaya güzel şeyler göstermek belirli fırsatlar yaratır ve yeni projeler yaratır - ancak bu zamanı yeni ve ileriye yönelik arayışı için 'resmi olarak' mümkün kılma girişimi ve Düşünme fikirleri çok çabuk düz düşer. "Boş zamandan" bahsettiniz - bu süre bizim çalışmanızın dışında mı yoksa içeride mi? Ayrıca, bölümünüzün ne kadar büyük olduğunu sorabilir miyim? (kaç tane dev, ve bununla kaç kişi katılıyor?)
dannywartnaby

Bu projeler genellikle kiralanan projeler arasında başlar. Ekibimiz küçük bir ekip (3-7 geliştirici). Ve buna dahil olan projeye bağlı. Bazen yeni bir teknoloji öğrenmek istersem bu işleri evde eğlence için yapıyorum, bazen de prototip yapabildiğim bir şey varsa ayrıntıların çoğunu çalıştırmadan sadece bunu yapacağım.
Chris
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.