Beş yeni genç geliştirici ve birçok karmaşık görev. Şimdi ne var?


10

Şirketimiz, ürünümüzü geliştirmeme yardımcı olmak için beş yeni genç geliştirici işe aldı. Ne yazık ki, yeni özellikler ve gelen hata düzeltmeleri genellikle yeni mezun olan bir geliştiricinin sahip olduğundan daha derin bilgi gerektirir (iş parçacığı / eşzamanlılık, karmaşık bir sistemdeki performans darboğazlarında hata ayıklama vb.)

Çözebilecekleri (muhtemelen) görevlerini devretme (ve planlama), sorularına cevap verme, onlara rehberlik etme / yönetme, kod kullanımlarını tüm zamanım boyunca gözden geçirme ve sık sık sorunları tüm temsilci seçme sürecinden daha kısa sürede çözebileceğimi hissediyorum (sadece zamanımı sayarak). Ayrıca, daha derin sistem bilgisi / daha ileri beceriler gerektiren görevleri çözmek için zamanım yok ve yakın gelecekte değişecek gibi görünmüyor.

Peki, şimdi ne var? Bunları ve zamanımı etkili bir şekilde kullanmak için ne yapmalıyım?


1
Tüm 5 Jr. Onları denetleyen tek Sr siz misiniz?
Tyanna

@Tyanna: Evet, bu projedeki tek kıdemli benim. Diğer yaşlılar bir süre önce başka projelere taşındılar.
mxe

2
Yapılacak ilk şey, yeni katılanlara kadar rampa gibi biraz daha az üretken olacağı yönetimine açıklamak olduğunu
jk.

Son zamanlarda mezun olduğum için, eşzamanlılığı veya performansı içermeyen bir programın olması beni çok şaşırttı.
Daniel Joseph

+1. Tek pişmanlığım, seni daha fazla değerlendiremem.
Shivan Dragon

Yanıtlar:


2

Evet, işleri onlardan daha hızlı çözebilirsiniz, bu yüzden üst düzeysiniz ve değilsiniz. Bununla birlikte, iyi bir kıdemli, gençlerini de üst seviyeye taşımak ister ve bunu yapmanın tek yolu, bir şeyleri nasıl yapacağını öğrenmelerine izin vermektir.

Mentorluk, kodlama değil, şu anda zamanınızın en etkili kullanımıdır.

Önümüzdeki altı ayı etkili bir şekilde mentörlük yaparak geçirirseniz ve gençler ara geliştiriciler olmaya yetecek kadar öğrenirlerse, o zaman 5 aralıklı geliştirici ve bir kıdemli var. Daha hızlı olduğu için tüm zor işleri kendiniz yaparsanız, altı ay içinde başparmaklarını döndüren 5 genç yaşarsınız (iyi bir iş vermezseniz, en iyisi diğer işlere geçecektir) daha az veya daha yeni junior geliştiricileri olabilir) ve bir fazla çalışan ve huysuz kıdemli olabilir.

Hatalarda tipik olarak hangi karmaşık etkileşimlerin bulunduğunu biliyorsunuz, bu yüzden işler, sorun giderme ve asıl sorunu nasıl bulacağınız ve daha sonra bunları düzeltmek için genellikle gerekli olan yöntem türleri hakkında özel olarak bu türler hakkında biraz eğitim geliştirin. Sonra onlara bu sorunları ortaya çıktıkça verin. Evet, bunları düzeltmek daha uzun sürecek ve zaman tahminlerinde buna izin vermelisiniz.

Çift programlama fikri harika. Gerçekten gelişmiş olan her sorun için farklı bir sorunla eşleştirin. Sorunu çözmek için yeterince bilmeseler bile, nedenini aramak açısından neyi denemek istediğinizi söylerken klavyede küçük çocuğa sahip olmak, sorun giderme sürecini öğretmeye yardımcı olacaktır. Tabii ki, sadece dikte etmelerini beklemeyin. neyi aramasını istediğinizi ve nedenini açıklayın. Fikirlerini sorun ve dinleyin. Fikirlerinin neden iyi bir seçim olmadığını açıklayın. Öncü sorular sorarak Sokratik öğretim yöntemini kullanın. Başlıca sorularınız aracılığıyla kendileriyle ortaya çıkardıkları çözümü açıklama yapmadan kendilerine dikte ettiğiniz çözümden daha iyi hatırlayacaklardır. Ayrıca, çözümün yazıldığını izlemekten ziyade çözümü yazmışlarsa daha iyi hatırlayacaklar.

Çocuk bir çiftin parçası olarak belirli bir problem sınıfını çözmenize yardımcı olduktan sonra, bir dahaki sefere bu problem sınıfı ortaya çıktığında başka biriyle eşleştirebilir ve sadece omuzlarında durmadan değil, danışmanlık için kullanılabilir olabilirsiniz. farklı şeyler deniyorlar.

Gerçekten zor beş yeni insan var. Hepsine karşı adil olmanız ve kimlerle eşleştiğinizi veya rehberlik ettiğinizi döndürmeniz gerekir. Sık oynatma. BU, eğer biri başarılı olmazsa ve ilerleme kaydediyorsa "Zor sevgi" sağlayan bir kişi olmanız gerekir. Bunlardan birini veya birkaçını bir kenara bırakıp iyileştirmeleri gerektiğini ve neden başarılı olmadıklarını hissettiğinizi söylemeniz gerekebilir. SOme peopel, eşleştirdiğinizde tüm işleri yapmanıza izin verir ve bunu yapabilirsiniz; t, sadece daha kolay olduğundan emin olun. Eğer kişi işi yapamazsa, onlar için daha nazik ve daha bağımsız olmayı öğrenemeyeceği veya öğrenemeyeceği açık olan bir kez taşımazsanız ekibiniz için çok daha iyidir.

Unutmayın, beklediğinizi elde edersiniz. Eğer fazla bir şey beklemiyorsanız, fazla bir şey elde edemezsiniz. Onların parlamasını bekleyin ve çoğu sizin standardınıza gelecektir.


20

Eşleştirme Programlama sesleri burada büyük bir olasılık gibi.

  • Bunlardan dördüne bu hatalardan daha basit ikisini verin, eşleşmelerine izin verin ve her bir çiftin bunlardan birini ele almasını sağlayın.
    • Bu isteği "Buna neyin sebep olduğunu bulabilir misiniz?" Şeklinde ifade edin. Henüz nasıl düzelteceklerini düşünmeye başlamalarını sağlayın .
    • Bir düzeyde açıklama yaptıktan sonra , onlara nasıl düzeltilebileceğini sorun. Bu şekilde büyük bir görevle aynı anda bunalmayacaklar. Gitmelerine izin verin ve henüz yapmadılarsa kodu denemelerine izin verin ve bir kez bir kez - belirsiz bir plan olsa bile - onları iyi bir çözüme doğru yönlendirebilirsiniz.
  • Diğeri, onunla eşleşebilir ve daha zor olanlardan biri üzerinde çalışmaya başlayabilirsiniz. Bu, kodla ilgili deneyimsizliği göz önüne alındığında daha zor olabilir, ancak onunla birlikte deneyime sahip birinden de faydalanacaktır.
    • Deneyiminize göre, yeni bir özellik bunu yapmanın iyi bir yolu olabilir. Yeni özellik geliştikçe ona mevcut API'yı gösterebilirsiniz.

Bir fıkra / bu öneri çalışma örneği için: Ben üzerinde çalıştığım kod temeli en halim parçası ile bu şekilde tanıtıldı - eşleştirilmiş diğer nispeten yeni geliştirici ile, böyle bir şey yaptık:

  • Biz bir hata verildi ve yaklaşık 10 dakikalık bir girişten sonra neler olup bittiğini anlamaya çalışmak söylendi.
  • Yaklaşık bir saat içinde ayrıldık ve iki farklı düşünce dizisine girdik.
  • Bundan yaklaşık iki saat sonra, genel olarak kodun nasıl çalıştığını anladım, ancak tam olarak kötü çıktının nerede üretildiğini bilmiyordum. Ham ve denormalize verileri inceleyerek nasıl oluşturulduğunu anladı, ancak kodu bulamadı.
  • Yedekledik ve kod yollarını birlikte izledik ve kesin bir cevap aldık. Bundan sonra, yöneticimizle bazı olası çözümler üzerinde beyin fırtınası yaptık ve daha sonra bunu uyguladık.

O zamandan beri nasıl çalıştığını anlayan tek kişi olduğumdan beri kod tabanının tüm bölümünün kalıtımsal bakımını yaptım (hala etraftaki orijinal geliştiriciler tam olarak hatırlamıyor bile).


+1. Tek sorun 5 kişiyi 2 ;-) çiftine ayırmak olabilir
Doc Brown

@DocBrown 5 deneyimsiz geliştirici + 1 deneyimli geliştirici, 3 grup 2 yapabileceğiniz anlamına gelir (ikinci ana madde işaretine bakın). Hangi kod türünün (UI, iş mantığı, vb.) Nereye gittiğiyle ilgili daha fazla öğretici olabilir, ancak diğer 4'ten farklı şeyler öğrenecektir. Sonra bir sonraki görev grubunda döndürün.
Izkata

7

Onlara öğret. Onlara kolayca çözebilecekleri görevleri atayın.

Basitçe söylemek gerekirse, söz konusu işgücü sahip oldukları görevle çok verimli olacak kadar yetenekli değildir. Bu nedenle ya 1) görevi kolaylaştırabilirsiniz 2) işgücünün becerisini artırmaya çalışabilirsiniz.

Benzer bir sorun, her zaman yeni bir kişi bir takıma katıldığında ve deneyimi olmayan bir kod tabanı üzerinde çalışmaya başladığında (bir dereceye kadar) olur. Araçlar ve metodolojiler bilinmiyorsa, bu daha çok sorun haline gelir. Kişiyi araçlara ve metodolojilere daha aşina hale getirmek için eğiterek sorun daha hızlı bir şekilde giderilebilir.

Bununla birlikte, böyle bir sorunu çözmek zaman alır - başkalarının sadece her şeyi bilmesini veya her şeyi tek bir anda öğrenmesini bekleyemezsiniz. Belki de eşzamanlılık, yazılım optimizasyonu ve gerekli genel metodolojiler hakkında bazı kitaplar tanıtmak iyi bir başlangıç ​​olacaktır.


3

İşe alma kararının bir parçası olmadığınız anlaşılıyor. Mevcut görevleri yerine getirme yetenekleri konusunda adil bir değerlendirme yapın. Bir öneri içeren bir rapor yazın (harici eğitim ve teslimat sürenizi etkilemediği sürece bu tür görevler), raporu yöneticinizle bu kişileri işe alanlarla konuşmaya başlayabilecek yöneticinize gönderin. Bir takımda yeni bir kişi emilebilir, ancak aynı anda 5 yeni insan, rahat bir mağazanız yoksa iyi görünmüyor. Ne yaparsanız yapın, planda açıklanmadığı sürece proje sürenizde onlara öğretmeye çalışmayın.

Düzenleme: Bu durumda Brook Yasası'ndan bahsetmek uygun olabilir .


2

Belki de zarar görmeden zorlu sorunların üstesinden gelmek için onları atabileceğiniz bir sanal alan oluşturmak için biraz zaman harcayabilirsiniz. Çözümlerini olabildiğince kapsamlı bir şekilde test ettirin. Aynı soruna 1'den fazla koyun.

Bütün bunlar onlara faydalı olacak kadar yetenekli olma imkanı verir, ayrıca daha az zamanınızı gerektirir. Tabii eğer onları (çoğunlukla) batmak ya da yüzmek ve hemen hemen batarsanız o zaman bir şeyler yeniden düşünmek zorunda.

Programlama mesleğinde, çoğunlukla kendi başlarına öğrenemeyen insanlar muhtemelen onlara öğretmek için harcanacak çabaya değmezler. Ama bence yardımdan vazgeçtiğinizde ne kadar iyi olduklarına sizi şaşırtacaklar.


Kum havuzu ortamı zaten yoksa, zaman kaybı gibi görünüyor.
Ramhound
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.