Programcılar piyangoyu kazanırsa, şirketinizin su altında kalmamasını nasıl sağlayabilirsiniz [kapalı]


28

Altımda birkaç programcı var, hepsi açıkça çok harika ve çok akıllı. Çok teşekkür ederim.

Ancak sorun şu ki, her biri, ekipteki hiç kimsenin ne olduğu hakkında en ufak bir fikri olmayan bir çekirdek alandan sorumlu. Bu, eğer biri dışarı çıkarılırsa, bir işletme olarak şirketimin değiştirilemediğinden ölmüş demektir.

Bir otobüse çarpmaları veya istifa veya her neyse, onları kapsayacak yeni programcılar getirmeyi düşünüyorum. Ama korkarım ki

  1. Eski programcılar aktif olarak bilgi aktarımı fikrine karşı direnebilirler, bir yedeklemenin değerlerini azaltacağından korkuyorlardı.
  2. Farklı geliştiriciler arasında teknoloji transferini kolaylaştıracak bir sistemim yok, bu yüzden onlardan yapmalarını istesem bile, doğru bir şekilde yapacaklarına dair hiçbir güvencem yok.

Benim sorum

  1. Eski programcılara nasıl anlaştıklarını söyleyelim
  2. Bu tür bir "yedeklemeyi" kolaylaştırmak için kullandığınız sistemler nelerdir? Kod incelemesi yapabileceğinizi anlayabiliyorum, ancak bunu yapmanın basit bir yolu var mı? Sanırım giriş kodu incelemesiyle tam bir giriş için hazır değiliz.

4
Belirli bir alanda fazlalık sahibi olmanın, başka bir alanı aramak yerine o alanı elinde tutmanıza izin verdiğini her zaman söyleyebilirsiniz. Bu aynı zamanda programlama bilgisine de yol açar, bu yüzden aslında işlerini korur SAFER başkalarının bildiklerini bilmesini sağlar.

1
Bir işte, bir ofis piyango havuzumuz vardı. Yönetici, hepimiz kurtarılırsak, orada sıkışıp kalmak istemediği gerekçesiyle katılmak için ısrar etti.
David Thornley

3
Jeff? Sen olduğunu! Kahretsin, bizi öldürmeye çalışmasan iyi edersin!

2
Neden dünyada başlık değişti - "bir otobüse çarptı" bu kadar yaygın olarak bilinen bir fikirdir, bu konunun kendi adı ve Wikipedia makalesi: Otobüs numarası . İnsanların kendi takımlarının "piyango numarası" hakkında konuştuğunu duymuyorsunuz .
Nicole

1
@Carra ne yazık ki soru aynı değil - bir otobüse çarpmış birini oyunun aşkı için kalmaya ikna edemezsin! :)
Nicole

Yanıtlar:


19

Eski programcılara nasıl anlaştıklarını söyleyelim

Sorunu onlara açık bir şekilde sunun, tabii ki bunu tehdit olarak görmeyecek şekilde, ekip ve projenin daha iyi çalışmasını sağlamak için bir fırsat. Örneğin, "Başkalarının kovulmanız durumunda bildiklerini bilmek istiyorum" açıkçası yanlış bir yaklaşım :-) "Bazılarınız tatile giderse veya hasta olsa bile projenin düzgün çalışmasını sağlamak isterim " çok daha iyi.

Genellikle geliştiriciler, bazıları tatilde olduğu ve kendileri için örtmeleri gereken her zaman, sorunları kendileri yaşarlar. Dahası, iyi geliştiriciler üzerinde çalıştıkları proje için sorumluluk hissediyorlar, bu nedenle muhtemelen bu fikirle aynı fikirde olacaklar. Yine de, onlara fikirlerini tartışma ve (umarım) taahhüt etme zamanı verin. Ayrıca, takım içinde bilgilerini nasıl ve kimlerle paylaşacaklarını söyleyebilmelerini sağlayın. Joe'nun Jim'le çalışmak (ve bilgilerini paylaşmak), ancak Jack'le değil.

Bu tür bir "yedeklemeyi" kolaylaştırmak için kullandığınız sistemler nelerdir? Kod incelemesi yapabileceğinizi anlayabiliyorum, ancak bunu yapmanın basit bir yolu var mı? Sanırım giriş kodu incelemesiyle tam bir giriş için hazır değiliz.

Ekibimizde kod / tasarım incelemeleri dışında kullanıyoruz

  • Ekip üyeleri arasında görevlerin ve sorumluluk alanlarının rotasyonu (her birimizin ana sorumluluk alanları vardır, ancak her zaman ve sonrasında, başka bir ekip üyesi tarafından daha iyi bilinen bir alanda görevler yaparız)
  • Yüz yüze bilgi aktarımı oturumları (genellikle yukarıdaki işler gerektiğinde, ancak birileri ekipten ayrılmadan önce)
  • Takım / proje wiki

Kod incelemesinin kendisi, birçok alanda, geliştiricinin bilmesi gereken, koddan doğrudan okunabilecek olandan çok daha fazlası olduğu için yeterli olmayabilir. Başka bir deyişle, etki alanı modeli de var. Kodun gerçekte ne yaptığını okuyabilirsiniz , ancak model olmadan nedenini bilemezsiniz .


Team/project wiki, bunun hakkında ayrıntılı bilgi verebilir misiniz? Ayrıca, face-to-face knowledge transfer sessionsbu tür bir oturumu belirli bir saatte düzenli olarak düzenliyor musunuz?
Graviton

@Graviton, (eski) sistemimizin tasarımını ve uygulamasını wiki projesi üzerinde belgelemek için çalışıyoruz. Bu (örneğin herhangi bir ekip üyesi tarafından) düzenlemek ve güncellemek daha kolaydır, örneğin ayrı Word belgeleri ve ayrıca sayfaların herhangi biri arasında ücretsiz bağlantılar sağlar. Gerektiğinde, belirli bir araç veya projenin bir parçası üzerinde yaptığımız bilgi transferleri.
Péter Török

Knowledge transfers we do on when needed, muhtemelen bir personel istifa süresi boyunca bu? Bunun için gereken zaman biraz fazla değil mi?
Graviton

@Graviton, hayır, demek istediğim, ne zaman bazılarımız bir başkası tarafından daha iyi bilinen bir alanda görev tayin edilirse. (Bunu yukarıdaki listeye ekleyeceğim, çünkü bu aslında "bilgi yedekleme" oluşturmak için mükemmel bir yoldur.)
Péter Török

12

Bilgilerini paylaşmaları için onları motive etmenin bir yolu, onlardan çalışmaları hakkında diğer insanlara kısa bir sunum yapmalarını istemek olacaktır . Programcılar normalde çalışmalarından gurur duyarlar ve bu onu gösterme şansı olur. Bir sunum, yabancılar tarafından nadiren bilinen bazı tuhaflıkları göstermelerini sağlamak için iyi bir fırsattır.

Ayrıca, neden sadece bu konuda açık olmamaya ve herkese birisinin otobüse çarpması durumunda hepinize bir bilgi paylaşım şeması bulmanız gerektiğini söyleyin. Bunu mantıksız görmüyorum. Şu an benim şirketimde oluyor ve bazıları savunmada bulunsa da yapılması gerektiğini biliyorlar.

Belki bazı şeyler üzerinde çiftler halinde çalışabilirler , eğer meraklı bir yapıya sahiplerse, sorun olmamalıdır.


4

Yazılımın dahili dokümantasyonunu güncel almak, yeni kişileri işe almadan önce ilk adım olmalıdır. Elbette, değerli programcılarınızın IDE yerine Office ve UML araçlarıyla biraz zaman geçirecekleri anlamına gelir, ancak her durumda buna değer olduğunu düşünüyorum.

Mevcut bir dokümantasyonunuz olduğunda, programcıların, diğerlerinin ne yazdığını herkesin anladığından emin olmak için kontrol etmelerine izin verebilirsiniz. Hala yeni insanlara gerek yok.

O zaman yeni insanlar almayı düşünebilirsiniz. Ya da şirketinizdeki iş yüküne bağlı olarak.


@ammoQ, bu ölçeklerin ölçeklenip ölçeklenmediğinden emin değil; yeni insanları işe aldıktan sonra ne olacak, yine UML'yi çizecek misin? Peki ya tasarım mimarisi değişirse? Bunları incelemek için bir sisteminiz var mı?
Graviton

2
@Graviton: Yeni insanlar mevcut personel tarafından yazılan dökümanları okudular. UML diyagramlarını tekrar çizmenize gerek yok. Mimari değişirse, belgeleri kabul etmeniz gerekir. Evet, bu berbat bir şey biliyorum. Ancak, bu konuda size yardımcı olacak UML araçları var, kaynak kodu okuyorlar ve sınıf diyagramları ve benzeri şeyler üretiyorlar.
user281377 11:11

BTW, yeni personelin öğrenecek kaynak koddan ve mevcut programcılardan sorulacak başka bir şey olmadığında yazılımın içindekileri nasıl öğreneceğini düşünüyorsunuz?
user281377 11.03 .10:

@ammoQ, bilmiyorum; bilseydim soruyu sormak zorunda kalmazdım.
Graviton

1
@oosterwal, neyse ki şimdi standart bir yapı yönetim sistemi (Maven) kullanabiliriz, bu yüzden derleme işleminin ayrıntılarını belgelemek için sadece asgari bir ihtiyaç vardır. (Ve eğer bir ekip üyesi build config'u güncellemeden yeni modüller eklerse, hepimiz Continuous Integration sunucusundan 5 dakika içinde bir posta alırız, derlemenin bozulduğunu ve kimin tarafından olduğunu söyleriz.) Ama evet, özel olarak yazdığımda bültenleri ve sürümleri otomatikleştirmek için komut dosyaları, ben onları iyi belgeledim.
Péter Török

4

Büyük bir şirketseniz İK'yi arayabilir ve bu konuda konuşabilirsiniz. İnan bana, kilit personel bir otobüse çarptığında, muhasebe görevlilerinde de aynı sorun var. Bir pazarlamacı, önemli pazarlıkların ortasında bir zombiye dönüşürse, pazarlamacılar da çok fazla sorun yaşayacak - sık sık oluyor, ya da bana söylendi.

Bunun için doğru İK dilinin arka arkaya planlama olduğunu düşünüyorum . Şirketiniz bununla baş etmek için zaten politika ve çerçevelere sahip olabilir.


4

Çalıştığım bir yer aynı sorunu vardı. Yaptıkları, her bir Kıdemli geliştiriciyle çalışmak için bir küçük geliştiriciyi işe almaktı. Projelerde birlikte çalışan 2 kişilik küçük ekipler oluşturdular. Birkaç ayda bir veya projelerde küçük geliştiricileri döndürürler. Bu şekilde, Üst düzey geliştiriciler konu uzmanları olarak kaldı, ancak küçük geliştiriciler tüm sistemleri ve birlikte nasıl çalıştıklarını iyi anlamaya başladı. Ayrıca takım büyüklüğü ile iki katına çıkma projeleri daha hızlı hale geldi.

Ortaya çıkan daha büyük projeler için Üst düzey geliştiricilerden, bazen diğer sistemleri öğrenmeye başlayabilmeleri için bir projenin uzunluğu boyunca sistemin başka bir bölümünde Junior geliştirici olarak davranmaları istenmiştir.

Buradaki kilit nokta, ekibi geliştirmeye ve büyütmeye devam ederken mevcut geliştiricilerin bilgi ve kıdemlerine saygı duymaktı. Yavaş bir süreçti ama zamanla gayet iyi çalıştı.


4

Açık kaynaklı projeleri başarılı kılan şeylerden biri de "sahip olma" kodunun eksikliğidir. Bununla birlikte, hiç kimsenin bir uygulama alanının tek koruyucusu olmadığı anlamına gelir - herkes uygulamanın herhangi bir bölümüne katkıda bulunmaya teşvik edilebilir. Bu kesinlikle inandığım bir şey.

Yapmak istediğin şeylerin yolunun şu an sahip olduğun takıma zarar verdiğini açıklamak. Karşılaşmak istediğiniz noktalar ve tercihen bu sıraya göre:

  • Bunun nasıl çalıştığını bilen tek kişi sizseniz, pike inen diğer harika şeyler üzerinde çalışmanıza izin veremem.
  • Biz istiyoruz sen iyi bir tatil yapmak mümkün, ama hiç kimse senin yaptığını çünkü göze alamaz.
  • İnsanların işlerini değiştirmeleri çok hoş olmayan bir gerçek çünkü şu anki durumlarından memnun değiller, sizi kaybetmek istemiyoruz, çünkü çalıştığınız alanın sıkışıp kaldığını hissediyorsunuz.

Kişisel bir not olarak, vefat eden bir iş arkadaşı ile uğraşmak zorunda kaldım. Herhangi bir bilgi silosu bulunmamakla birlikte, kayıp hala sert bir şekilde devam etmektedir. Bunun olma olasılığı yukarıdaki üçüncü mermi noktasından çok daha düşük.

Davanızı ortaya koyduktan sonra, sorunun nasıl düzeltileceğine dair fikirlerini almak için yardımlarını alın. Elbette kendinle gel. Fikirleri, bir ekibin parçası olduklarını anlamalarına yardımcı olacak ve uzmanlık alanlarından daha fazlası için ihtiyaç duyulacak. Jane'in Joe'nun yaptıklarına ilgi duyması olabilir, ama biraz korkutuyor olabilir. Bunun, bilgi transferinin daha eğlenceli olmasına yardımcı olabileceğini bilmek. Yapmak isteyeceğiniz şeylerden bazıları:

  • Mevcut takımı çapraz eğitin. Kısa vadede biraz verimlilik kaybedebilirsiniz, ancak uygulamanın bir köşesinde uygulamanın diğer bölümlerine uygulanabilecek bazı dersler çıkarılabilir. Jane ve Joe'nun bir süre birbirlerinin projesinde birlikte çalışmasını sağlayın.
  • Bir bilgi paylaşımı kültürünü teşvik edin. Çalıştığım bir şirketin "kahverengi çanta teknolojisi konuşması" programı vardı. Herkes onaylanan herhangi bir konuda sunum yapabilir (genellikle teknoloji veya yazılım işlemlerini tanıtır). Şirket öğle yemeğini hazırladı ve sunum yapan kişi çabaları için birkaç yüz dolar aldı.
  • Mentorluk bir yaşam tarzı olmalıdır. Başkalarını mentorluk yapmanın amacı, sizi yeni şeyler yapmakta serbest bırakmak ve sizi şirket için daha da değerli kılmaktır.
  • Bilgi silosu sınırlarını geçmeden rütbe çekmeden yollarını bulun. Ne kadar eğlenceli yaparsanız, o kadar az tehditkar olur. Takımınızdaki insanlar söylediğiniz kadar iyiyse, muhtemelen olaylardan tamamen memnun değillerdir. Takımın başa çıkıp çıkamayacağının yargıcı olmanız gerekecek, ancak “hadi öyleyse seçelim” haftasına sahip olabilirsiniz. Her zaman burada kendinle başla. Fikir, herkesin gözünde “so-so-so” nun sorumluluklarının ne olduğunu ve yaşadıkları problemleri nasıl daha iyi çözebileceklerini anlamaktır. İlk önce boynunuzla birlikte başladığınız sürece, kimsenin işini yapamayacağı fikrine sahip olacaklar.

Genel olarak, işi daha zevkli hale getirmek istediğinizi ve bunun için onların yardımına ihtiyaç duyduğunuz konusunda onları etkilemeye çalışın.


2

Stajyerler iyi bir fikir olabilir, mevcut geliştiricilerin doğrudan astları olacaklar, bu yüzden kendilerini tehdit altında hissetmeyecekler.

Şirket büyüdükçe, hem eski geliştiricilere hem de staj sonrasında bunu yapanlara ihtiyacınız olacak.

Bence bu işe yarayabilir.


1

Genel olarak, bazı yöneticiler birdenbire dokümantasyon ve arka arkaya planlamaya özen göstermeye başladığında, programcıların kovulması veya işten atılmak üzere olduğu güçlü bir uyarı işaretidir. Tipik yönetim davranışından böyle bir ayrılıktır ve programcılarda her türlü uyarı sinyalini vermesi endişesiyle karşı karşıyadır.

Herkese tüm işlemlerini ve süreçlerini belgelemesi söylenir.

" Kurumsal Doom Uyarı İşaretleri " nin Seviye 3'ü .

Bir alternatif olarak, bir makalede " Yukarı veya Dışarı " kültürünü teşvik edeceğimizi öne sürmekteyiz. içeriyor.


Katılmıyorum. Bir şirketin değeri, Fikri Mülkiyet'e (IP) oldukça bağlıdır . Bu, patentleri, işlemleri ve tüm dahili belgeleri içerir. Gizli bilgilerini belgeleyerek paylaşmak istemeyen bir çalışan, gizli bilgilerinin yazıldığı kağıda değmez. Bir çalışanın gizli bilgisi, bir şirkete somut değer katmaz.
oosterwal

1
@oosterwol - Üretken bir geliştirme ekibini bir araya getirip yönetebilmek, değerlemenin çok daha iyi bir tahmincisidir. Çok iyi belgeleriniz olduğunu söylemek, çok iyi bir kaynak kontrolüne sahip olduğunuzu söylemek gibidir. Tabii onlar gerekli, ancak sizi rekabetten ayırmayacak.
JeffO

@Jeff O: Belgelendirme sizi bugün rekabetinizden farklılaştırmayacaktır, çünkü tüm IP bilgileri mevcut geliştiricilerin başındadır . Beş yıl içinde, mevcut geliştiricilerin hepsi değer belgelerine sahip şirketlere yöneldiklerinde, yeni geliştiriciler eski kodu korumaya çalışmak ve geçmişte kötü olduğu kanıtlanmış ancak hiçbir zaman belgelenmemiş olan fikirleri uygulamakta başarısız olmakta zorlanacaklar.
oosterwal

1

@AmmoQ'nun cevabında başlattığı tam dokümantasyon kavramını geliştirmek ...

İyi bir yönetici, doğrudan raporlarının becerilerini geliştirmek için çalışır, böylece raporlardan herhangi biri yerini alabilir. Geliştiricilerinize, işlerinde tam şeffaflık sağlayan bir çalışanın, tüm çalışmalarını gizli ve gizli tutanlardan daha değerli olduğunu anlamasını sağlayın. Eğer 'gizli' geliştirici bugün bugün öldüyse, bu kaybedilen bilgiyi geri kazanmak şirkete büyük bir maliyet sorumluluğu olacaktır. Eğer “tam açıklama” çalışanı bugün ölmüşse, şirket hala zararda olacaktır, ancak daha az yıkıcı olacaktır. Bu nedenle, “tam açıklama” çalışanı daha fazla değere sahiptir.

Kendisini kovulmaya karşı bağışık kılmak için gizli bilgileri saklamaya çalışan herhangi bir çalışan da bir terfi için bağışıklık kazanır. Günümüzde sahip oldukları sıradan işleri tamamlayacak kimse yoksa bir geliştiriciyi daha zorlayıcı ve ödüllendirici bir konuma getiremezsiniz. Eğer sıradan işler tamamen belgelenirse ve tamamen açıklanırsa, önceki geliştiriciyi doldurmak ve daha üst bir pozisyona yükseltmek için yeni bir geliştirici kiralayabilirsiniz.

Bu, sizin de yaptığınız şeyi belgelemeniz ve doğrudan raporlarınızın her birine eğitim vermeniz gerektiği anlamına gelir. Bu şekilde, sen bugün öldü tam zamanlı yedek bulunana kadar, onlardan biri sizin için doldurulabilir.


İnternet üzerinde, büyük boyutlu bir uygulamanın tamamını oluşturacak kadar iyi yazılmış bir özelliği gösteren bir belgeye link verebilir misiniz? Bence bu, Urban Myth'in altına düşüyor.
JeffO

1
@Jeff O: Haklısın - önemli boyutta bir sistemi tanımlayacak kadar eksiksiz bir belge yok. Böyle bir sistemi tek bir belgede tanımlayabileceğiniz fikri, kötü proje yönetimi ve kötü yazılmış teknik özelliklerin bir sonucudur. Hiyerarşik bir belge dizisi ile önemli bir sistem belirtilmelidir. Kök belge sistemin üst düzey bir düzenini sağlar ve alt belgelerine bağlar. Her alt belge, yalnızca tek bir somut özellik belirten son düğümdeki belgelere kadar ek bilgi sağlar.
oosterwal

1

Yeni programcıları getirmeye başlamadan önce, her birinin kendi belgelenmiş mirasını yaratmalarına yardım etmelerini isterdim.

Ya bir wiki ile ya da işlerinin her yönüyle ilgili 3-halka bir belge inciliyle.

Ya da gerçekten ayrıntılı ve eksiksiz bir dokümantasyon istiyorsanız, her programcı ile röportaj yapmak için teknik bir yazar kiralayın ve daha sonra herkesin günlük, haftalık, aylık, yıllık yaptığı her şeyin bir dokümantasyonunu oluşturun.

Ardından, programcınızın güncelleme / düzenleme / katılım / yorum yapabilmesi için bir wiki sürümü oluşturun.

O zaman, zamanla büyüyecek bir sisteme sahipsiniz ve yeni programcılar için gelişmiş bir öğrenme eğrisi olacaksınız.

Ayrıca dürüst olmak gerekirse, programcının sadece bir çekirdek alanda sıkışıp kalması akıllıca değildir, gerçekten treni geçmek, çekirdek işleri geçmek.

Ardından, 1 kişi tatile çıktığında veya onun gibi bir şey olduğunda mevcut personelinizi kullanabilirsiniz.


1

Programlayıcılarınızdan biri hastalandığında, soruları ve problemleri ile tekrar tekrar telefon edin.

Programlayıcılarınızdan biri tatilde olduğu her an, sorularınız ve sorunlarınızla tekrar tekrar telefon edin.

Yakında onlar için hem de şirketin çekirdek alanlardan sorumlu tek kişilere sahip olmamanın daha iyi olacağını anlayacaklar .


0

Kimse otobüse çarpılmak istemez, ancak kısa sürede başka birinin projesini devralmak ve projelerini sürdürmek de istemezler. O zaman herkes işsiz kalma riskini taşıyor.

Silolarda gelişiyorsanız, insanları bir projeden diğerine taşımaya başlamanız gerekir. Belgelendirme, kod incelemesi veya basit bir hatayı düzeltmekle başlayın. Herhangi bir küçük kod koruma / bölge davranışı, kullanımın çok ötesine geçmeden ele alınmalıdır.

Kodunuzun bir parçası üzerinde yalnız bir uzmana sahip olmak verimlilik yanılsamasıdır.

Hiç tatile gitmek isteyen var mı?


0

Yönetimle yapılan aptalca hatalar yüzünden daha birçok şirketim oldu. Bir veya iki mühendis ayrılırsa çarpmaz ve yanmazsınız, sadece bir süre daha çalışmanız gerekir. Sheesh, her çeyrekte birini kaybeden bir denizaşırı ekibi yönetiyorum. Görevleri hareket ettirmeye başlayın. Bugün.

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.