Yeni üst düzey geliştirici görevleri


21

11.000 kodlu kod uygulaması üzerinde çalışmak için yarın başlayan sekiz yıllık .NET deneyimine sahip kıdemli bir geliştiricim var. Takımda kendim ve başka bir programcı var. İkimizde üç yıllık tecrübemiz var.

Bu benim bir yönetici olarak ilk projem (aynı zamanda projenin bir geliştiricisiyim) ve bu, daha önce kurulmuş bir kod tabanına birini ilk kez tanıtmak zorunda kaldım. Açıkçası her bir modüle, dağıtım işlemine vs. gidiyorum ve kaynak kontrol deposunun yerini, dokümantasyonunu (en iyisi değil) vb. Teslim edeceğim.

Yeni özellikler yazmaya ve hataları gidermeye hazır olmadan önce ne kadar süre vermeliyim?


1
Gerçekten de, karmaşık 11.000 kod satırının ne kadar karmaşık olduğuna bağlı. 8 yıl olan birisinin (2003'te kullanmaya başladıkları anlamına gelir) bir hafta içinde tam hızda çalışabilmelerini beklerdim.
Ramhound

Birkaç hafta önce bir veri noktası olarak, 13.700 satırlık JavaScript koduna sahip bir projeye bir geliştirici atadık ve bir sprintte (bir hafta) gerçekten düşünmeden üretken olacağını varsaydık.
Robotu

@StevenBurnap: Beğendim :) Ayaklarını ateşe yakıp, evi yakıp yakmadığına bakın.
Joel Etherton

Gerçekten de 11k çizgisinin fazla olmadığını düşünen tek kişi ben miyim? Kalbimin saf iyiliğinden bir gün geçirirdim.
Louis Kottmann

Atama seçiminizin bir kısmı, projenizin ne kadar geç kalacağına da bağlı olabilir. Yeni personelin mevcut personel üzerindeki etkisinin nasıl sınırlandırılacağına ilişkin bazı fikirler için, programmers.stackexchange.com/questions/164781/…
DeveloperDon

Yanıtlar:


38

İlk gün birkaç düşük öncelikli hata atayım, bu şekilde yeni geliştiriciye kod tabanına aşina olmaları için biraz zaman tanımazsa kimse çığlık atmaz.

Yapılması gereken en kritik şey, ilk birkaç hafta içinde tüm çalışmaları hakkında bir kod incelemesinin yapılmasıdır. Bu adamın yanlış yöne gittiğini veya şirketin aylarca standartlara girmesini takip etmek istemiyorsunuz. Baştan ne beklendiğini bildiğinden emin olmak daha iyidir ve kod incelemeleri bunu sağlar. Elbette kod incelemelerinin tüm çalışanlar için iyi olduğunu düşünüyorum (dağıtımdan önce kodumuzun% 100'ünü gözden geçiriyoruz), ancak yeni çalışanlar için kritik öneme sahipler ve soruları cevaplayabilecekleri ve bunları sahip olamayacakları belgelere yönlendirebilecekleri şahsen yapılmalı Gerekirse henüz gördüm.

İstemediğin şey gelip, hepinizden farklı bir stil kullanan yeni bir adam. İnsanlar, diğer geliştiricilerin tarafında kafa karışıklığı ve rahatsızlık yaratabilen yeni yerde kullanılan kod stiliyle çakıştığında bile, genellikle önceki işlerinin kod stilini kullanmaya çalışır.

Tecrübeli geliştiricilerle bile fark ettiğim bir şey, bazılarının röportajda göründüğü kadar iyi olmadıkları, kod incelemesinin bunu hızlı bir şekilde bulmanıza yardımcı olacağı, böylece düzeltebilirsiniz. Ayrıca, onların gerçekten bir şeyler yapmalarını teşvik edecek, kod incelemesi yapılmayan yeni çalışanların, kimseye ne yaptıklarını göstermeden bir projeyi sürüklediklerini ve sonra da vurmayacaklarını bildikleri son tarihten bir hafta önce ayrıldıklarını gördüm. başlarının üstündeydiler ve aslında projenin hiçbir bölümünü tamamlamadılar. Çalışmakta olduklarından emin olana kadar erken ve sıklıkla yeni insanlarla kontrol etmek daha iyidir.

Ayrıca, yeni adamın eski projenizde dehşete düşmesi normaldir. Olması gerektiğini düşündüğü şekilde tasarlanmadı. Bunu bekle, duy onu ve otomatik olarak söylediği her şeyi reddetme. Özellikle, bu kişi sizden veya diğer geliştiricilerden daha fazla deneyime sahip görünüyor, dikkate almadığınız şeyleri görebilir. Bununla birlikte, bir yönetici olarak, önerilen değişiklikleri mevcut iş yüküne ve son teslim tarihlerine göre dengelemeniz gerekir. Hepiniz, mevcut kodu nasıl yeniden düzenleyeceğinizi öğrenmek için biraz zaman harcamak ve özellikle de yeni birinin bazı geçerli kaygıları varsa, bunu yapmak için zaman tahminlerine birkaç saat yatırım yapmak isteyebilirsiniz. Muhtemelen toplam bir yeniden yazmayı destekleyemezsiniz (yeni gelen birçok insan baştan başlamalıyız ve daha iyisini yapmalıyız),

Tamamen katkıda bulunmasının beklenmeyeceği bir zamanınız varsa (ve müşteri tarafından zamanını tam olarak hesaba katabilirseniz), yapmak istemediğiniz ancak yapmak istemediklerinizden bazılarını yeniden başlatabilecekleri bir zaman olabilir. yapacak zamanı yoktu. Bazen, yeni insan eğitim sürecini proje planında olmayan bazı şeyleri ele almak için kullanmak iyi bir şeydir. Kod tabanını öğrenebilirler ve eğer yapmak istedikleri işe yaramazsa, mevcut programları etkilemediniz, çünkü onları henüz mevcut programa dahil etmediniz. İşe yararsa, gelecekteki bakımı daha kolay veya daha iyi veya sorun ne olursa olsun güvenliği kolaylaştıran büyük bir kazancınız olabilir.


Bu harika bir cevap, özellikle de kod incelemeleri ve projenin şu anki durumuyla ilgili devs görüşü. Neyse ki bu eski bir proje değil, aslında çok yeni ve çok hızlı bir şekilde hareket ediyor.
MrBliz

1
+1 - Birçok iyi nokta, ancak tüm çalışmalarını gözden geçirmenin kesinlikle gerekli olduğunu yinelemek isterim, böylece yetenek düzeylerini değerlendirebilir ve ekiple aynı sayfada olmalarını sağlayabilirsiniz. Ne yazık ki, bu ilk birkaç haftadan çok daha uzun sürüyor. Röportajdaki kadar iyi olmayan bir +1. Röportaj ile gösterdikleri gün arasında birçok insanın başına gelenler benim için bir gizemdir. Lobotomi gerçekten göründüğü kadar yaygın mı? Buraya gelebileceğim tek açıklama bu.
Dunk

Evet, yerleşik standartlardan sapmadıklarından emin olmak için çalışmalarını gözden geçirin. Ama eğer sekiz yıllık deneyime sahiplerse ve üçünüz varsa, muhtemelen sizden daha fazla şey biliyorlar . Onları işleri yoluna koymaya zorlamadığından emin ol.
DJClayworth

2
@DJClayworth, yeni insanın daha fazla bilgiye sahip olabileceği ve OP'nin farklı yapmak istediği şeye dikkat etmesi gerektiği konusunda hemfikirken, sistem hakkındaki bilgilerinizin ve gereksinimlerinizin daha iyi genel bilgilerini kullanabileceği zamanlar vardır ve sistem tarihine ve gereksinimlerine dayanan nedenlerden dolayı onu en uygun yoldan daha azına gitmesi için yönlendirmeniz gerekebilir. Bazen, henüz farkında olmadıkları nedenlerden dolayı, işleri yolunda yaptıkları konusunda ısrar etmeniz gerekir. Tabii ki yaptığınız zaman, nedenini açıklamanız gerekir, sadece her zaman böyle yapmayız.
HLGEM

@ Smaç: Deneyimlerime göre, bir iş için umutsuz olduklarında, dünyanın en kötü insanları bile bir görüşme sırasında birkaç saat boyunca davranışta bulunabilirler. Bu yüzden işe alınacak sözleşmeler, staj ve kod örnekleri yeni işe alımlarda çok önemlidir.
Ürdün

18

Onları hemen küçük işlerde başlatın - daha büyük resmi gerektirmeyen şeyler.

Kod tabanına daha fazla güven duyup aşina olduklarından, daha büyük ve daha büyük görevler için mezun olun. Bunun ne kadar hızlı gerçekleştiği çoğunlukla onlara bağlıdır.


Bu benim düşündüğüm şey.
MrBliz

+1, bu, özellikle kod tabanı küçük olduğu için daha akıllı değildir.
Louis Kottmann

8

Ben her zaman yarasa hakkımdaki görevleri almaktan hoşlanırım, kodun üstesinden gelmenin daha uzun süreceği ve ilk birkaç gün / hafta boyunca birçok soru sorulacak.

Başımı bir projenin etrafına sararak, bir şeyleri tamir edip değiştirmek zorunda kalana kadar tamamen başaramadığımı görüyorum.

Ayrıca ... Bir projenin nasıl yürüdüğünü ne kadar iyi açıkladığınızı düşünüyorsanız, her zaman 'ah evet, sana söylemeyi unuttum', 'bu soruna düştük, bu yüzden bunu yaptık' şu ana kadar anlaşılmayan anlar aslında işe başlıyorsun.


+1 Yeni işe alım ne kadar erken başlarsa proje boyunca elemeye başlayabilir, yeni işe alım ne kadar erken yapılacağı konusunda rahat eder (sahip olma / hesap verme sorumluluğunu almaya).
Chad Harrison,

3

Ne kadar?

Bir ip ne kadardır?

Rahat olduğu zaman: ilk hatasını düzelttiğinde -> hazırdır .


3

Açık kaynak topluluğunda, projeye katılmak isteyen herkes önce küçük problemlerle ilgilenir. Sorunu çok iyi halledebiliyorsa, daha önemli görev kendisine verilecektir. Bu şekilde, projenin temel geliştiricisi olurlar.

Bu üst düzey geliştiricinin sekiz yıllık .NET deneyimi var, bu yüzden düzeltmesi için ona basit bazı hatalar atayabilirsiniz. Onlarla başa çıkması kolaysa, ona bütün uygulamayı bilmesi için karmaşık problemler atayabilirsiniz. Bundan sonra, yeni özellikler yazmaya ve garip sorunları analiz etmeye başlayabilir. Sadece yap, kurulum zamanı yok!


2

8 yıllık deneyim. Sadece onu içeri atardım. Yüzebilmeli. Diğerlerinin de belirttiği gibi küçük kolay görevlerle başlayın. Bu kod giriş / çıkış işlemi ve sahip olduğunuz diğer geliştirme işlemleriyle uğraşmasına izin verecektir.

İşleri defalarca değiştirdim ve ilk hafta içinde hepsine katkıda bulundum. En zoru, kodu derlemem için bir hafta sürdü (en az 100k + kod satırı). Tam bir inşaat bu proje için 8 saat sürdü.

İlk hafta 80 saat gibi bir şey çalıştım (proje ciddi bir şekilde geride kaldı).


Herkesin bir erkek olduğunu farz ediyor olması ilginç ... :)
MrBliz

1. Ben ingilizce olarak varsayılan zamir eril olduğunu söyleyebilirim, "o" yazarak her zaman uygun olur ama çoğu insanın ortaya koymak istediğinden daha fazla çaba harcar. 2. Programcıların yüzde kaçı kadındır? Bu durumda eril varsayılan olarak kendi tarafında istatistikler var ... Bu yüzden, sadece erkek ya da kadın olduklarını varsaymak yerine, rastgele bir bireye atıfta bulunmak için varsayılan basit yolu kullanarak daha fazlasını hayal ediyorum.
Timin

Ben bir erkeğim ve bu yüzden herkes de :-) olmalı. Sadece benim yazma biçimim, her zaman onu yazacak kadar disiplinli değilim.
Bill Leeper

1

Küçük bir uygulama ve deneyimli bir geliştirici için, bir günün temel hatalar için yeterli olduğunu düşünüyorum. İlgili hatalar veya bir haftaya daha yakın olan küçük özellikler (sorun alanı ve mimaride daha net olduklarında).


2
Sanırım standartlarım çok yüksek, ama sizin ... 1 gün ... ve 1 hafta gerçekten verimli olmak için? IME, bu çok gerçekçi değil.
Dunk

@Dunk: Göreve atanmak ve tamamen kaybolmadan onlara yaklaşabilmek mi? Onların tam hızda olacaklarını söylemiyorum, ama bu noktada kod tabanında arama yapabilmeleri, daha fazla bilgi almak isteyeceklerini bilmeleri, vb.
Telastyn

Evet cidden. 11k LoC çok büyük değil. Kurmasını sağlayın, böylece hata ayıklayıcıyı oluşturur ve çalışır ve sonra nasıl çalıştığını gösterin. O kadarı yeterli olacaktır.
gbjbaanb

1

Cevap, duruma bağlı. Bir şeydeki bir hatayı düzeltmesini veya bir GUI öğesinin rengini değiştirmesini istiyorsanız, o zaman yaklaşık 5 dakika (kodumuzu burada tuttuğumuz yer), uygulamanın tüm mimarisinin tamamen yeniden tasarlanmasını istiyorsanız biraz daha uzun gerektirir.

Bu, onun gerçekleştirmesini beklediğiniz göreve bağlı.

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.