Yeni kodla yeni bir takımı yönetmek için ipuçları / püf noktaları [kapalı]


9

Kendinizi en üst düzey geliştirici olduğunuz ve takımdaki diğer birçok kişinin birkaç yıl boyunca size göre yeni olduğu yeni bir takımda nasıl ele alıyorsunuz? Takımın önündeki görev, sizden başka hiç kimsenin kariyerinde daha önce başaramadığı bir şeydir.

Yönetim tüm ekibin daha yüksek verimliliğinde ısrar ediyor ve üst düzey geliştirici olarak siz sorumlusunuz.

Böyle bir durumda ortaya çıkmak için herhangi bir ipucu var mı? Açıkçası, tüm ekibin öğrenmek için zamana ihtiyacı var ve ekibin yenisini unutmayalım. Ancak, son teslim tarihleri ​​de yaklaştı ...


Pm.stackexchange.com adresinde olmalıdır
JBRWilkinson

5
@JBRWilkinson Kabul etmiyorum. Bu, sıkı bir son teslim tarihine sahip genç geliştiricilerin teknoloji lideri olmakla ilgilidir. Genç geliştiricilerin bir projesinin nasıl yönetileceği konusunda hemfikirim, ancak teknoloji lideri olmak bir PM'den farklı.
maple_shaft

Yanıtlar:


13

Sıkı bir süre veya projenin yeniliklerinin iyi mühendislik uygulamalarına müdahale etmesine izin vermeyin. Bir yazılım deposu oluşturun, bir kodlama stilini kabul edin, bir test takımı ile gelin, vb. sıkı çalışın ve önlerindeki görevi öğrenin.

Ya da başka bir şekilde söylemek gerekirse: Yönetim sizin sorumluluğunuzdadır, çünkü yönetim geçmişinizin ve deneyiminizin size kaliteli yazılım oluşturmak için gereken araçları verdiğine inanır. Bu görev şu anda göz korkutucu göründüğü için becerilerinizi aniden unutmayın.


Takımdaki herkesin atanacakları tüm görevleri tahmin etme fırsatına sahip olduklarından emin olun, böylece son teslim tarihlerine bir miktar katılımları olur. Ekibiniz hala ipleri öğrendiğinden, tahminleri geçen süreye dönüştürdüğünüzde kimseyi günde beş saatten fazla tutmayın. Son teslim tarihlerine uyulamıyorsa, Yönetimin bunu en kısa sürede bildiğinden emin olun.
Dawood ibn Kareem

1
@David - 5 saat nasıl çalıştınız (Aslında kullanmak kötü bir rakam değil, nasıl biliyoruz)? Sadece böyle bir projeyi tahmin etmenin bir saçmalık olduğunu kabul et ve yönetimi anlat.
mattnz

3
Çoğu insanın günde yaklaşık 6 ila 6,5 ​​saat üretken olduğunu düşünüyorum. Birkaç tanesi bundan daha fazlasını yönetiyor, ama bence bu iyi bir ortalama. Ancak ekip yeni olduğu için günde en az bir saat öğrenmeye harcanacak. Ve kestirime inanıyorum - herkes bu konuda iyi olmasa da, bir görevin ne kadar süreceğini bilmeden sadece içeri girmek ve programlamaktan daha iyi olmalı.
Dawood ibn Kareem

Ekip üyelerinin planlanan zamanı görmeden tahminlerini geliştirmelerini sağlarsanız ve planı önemli ölçüde aşmazlarsa, satın almalarına yardımcı olur. Diğer tahminleri görmeden tahmin etmeleri de tahminin önyargılı olmasını önleyecektir.
BillThor

@BillThor: Şüphesiz işi tahmin etmek için işi yapan adamı alırsınız ve figürlerini başlangıç ​​noktası olarak kullanırsınız. Bir işi tahmin ettim ve "Biz bunun 1 / 3'ü olsa da" dedik. Neden bana ne kadar süreceğini bilip bilmediğini sordular bile.
mattnz

7

İlk olarak, ilk kod satırından bir kaynak kodu kontrol sistemi kullanmaya başlayın . Kodu erken ve sık sık kontrol etme alışkanlığı edinin.

İkincisi, bir test stratejisine karar verin . Tabii ki bu birim testleri anlamına gelmelidir, ancak kabul testlerini nasıl otomatikleştireceğinizi de düşünmelisiniz.

Üçüncü olarak, kodunuzun düzenli olarak oluşturulması ve düzenli olarak test edilmesi için sürekli bir entegrasyon sunucusu oluşturun .

Bunu elde ettikten sonra, bir takım olarak bazı basit kodlama standartları belirleyin . Kodunuzun herkes tarafından kolayca okunmasını istiyorsunuz. Standartların ne olduğu gerçekten önemli değil. Sekmelerle girintili, boşluklu girintili, aynı satırda süslü ayraç. Ne oldukları önemli değil, sadece herkesin sürekli olarak uyguladığı.

Ekip çoğunlukla genç geliştiriciler olduğundan, sisteminize çok fazla teknik borç eklemediklerinden emin olmak için kodu sık sık gözden geçirmeyi planlayın .

Son olarak, SCRUM'u kullanmayı düşünün . Bunu yaparsanız, bir koç kiralayın veya bir eğitim alın. Hepiniz daha önce hiç yapmadığınız bir şey yaptığınızdan, gerçekçi son tarihler oluşturmak imkansızdır. SCRUM ile, yönetiminiz günlük olarak ne yaptığınıza ilişkin görünürlüğe sahip olur, böylece hangi ilerlemenin yapıldığını (veya yapılmadığını) görebilirler. Ve son teslim tarihleriniz size verildiği için, SCRUM en azından son teslim tarihini karşılayamıyorsanız, en azından tamamlanmış hikayeleri artımlı bir şekilde teslim ettiğinizi garanti eder, ki bu muhtemelen bir dev ile sona gelmekten daha iyidir hiç çalışmıyor.


2
Sürüm kontrolü ve kod gözden geçirmesi için +1 ve erken ve sık sık.
jmq

2
Kaynak kontrolünün, ekip makyajından bağımsız olarak, herhangi bir şeyden bağımsız olarak yapılması gereken bir süreç olduğuna inanıyorum.
maple_shaft

6

@Chrisaycock'un cevabına ek olarak ... Mentorluk / eğitim vb. İçin ayırmanız gereken zamanı hafife almayın. Öncü olarak, detayı bırakmayı ve ekibinize güvenmeyi öğrenmeniz gerekecektir. İşiniz, kolaylaştırıcı, yol bloğu sökücü olmak ve yönetim oraya girdiğinde müdahale çalıştırmaktır. "Normal" bir ekipte, yaklaşık 7 veya 8'de, kurşun artık programlamaz, Sizin durumunuzda, bu 3'e düşer veya 4 (Belki daha da az), proje için bir programlama kaynağı değilsiniz.


Mentorluk ve eğitim için zaman ayırmada +1. Etkili bir teknoloji lideri, genç geliştiricileri verimli hale getirir.
maple_shaft

"Proje için bir programlama kaynağı değilsiniz". Yönetiminin de aynı şekilde hissedip hissetmediğini merak ediyorum, heh. Umarım proje için "kahraman" programcısı olmazsınız.
jmq

OP'nin en üst düzey geliştirici olduğu ve özel bir unvanı veya görevi olmadığı izlenimindeydim (yani, bir "teknik lider" veya "mimar" değil). Bu durumda, kesinlikle bir geliştirme kaynağıdır ve muhtemelen en verimli kaynak olması beklenmektedir.
TMN

@TMN: Yetenekli / deneyimli bir adamla bir takımda olanların gerçekliğini ve diğerlerinin daha az yetenekli olduğunu yansıtıyordum. Şüphesiz deneyimli adam, eğer kodlarsa, en üretken olacak ve kodlaması bekleniyor. TAKIM, yapmazsa en verimli olacak. Aydınlanmamış bir organizasyonda, yöneticiler bireysel performansları ölçer, bu yüzden en iyi adam en iyi olanı yapmak için kötü görünüyor - TAKIM'ı gerçekleştirir ve bunun için çok az ödül alır. Gençleri kuru olarak asmak ve kendini harika göstermek için daha iyidir.
mattnz

1

İki alanda iletişime odaklanın.

Bunu yapmak kolay değil ve bu işin zor olmasının bir nedeni de bu. Son teslim tarihini karşılamak kesme özellikleri demekse, bunun üzerine gelin. Tüm bunlardan kaçınmaya çalıştığınız bir şey, bir son tarih yapmak için hızlı kod. Bu, uzun sürmeyecek bir kod tabanının sonunun başlangıcı ve boğulan teknik borcun başlangıcıdır.

2) Takımlar arası iletişim. Bryan ve diğerlerinin önerdiği gibi resmi uygulamalar oluşturun. Düzenli olarak bir ekip olarak, örneğin günlük scrumlara ek olarak haftada bir kez bir araya geldiğinizden emin olun . En önemli aracınız dinleyerek saygı ve güven kazanın . Yardıma odaklandığınızdan emin olun. Her ne pahasına olursa olsun olumsuz eleştiriden kaçının. Gerektiğinde olumlu eleştiri ve cesaret kullanın, örneğin "bu harika, düşünmek isteyebileceğiniz bir şey X" bitti ", ihtiyacımız olan şey bu değil, bunun yerine X yapmanız gerekir"


0

Yaptığım şey yetenekli olanları tanımlamak ve bölmek ve fethetmektir. İlk 2 veya 3'ü alıp kaptanlar yapıyorum. Diğerleri daha sonra kaptanları kendi küçük takımlarına kadar eşit olarak takımlara ayrılır.

Bir programa kaptan parçalarını veya modüllerini veriyorum.

Kaptanlar, yenilere daha küçük programlama veya araştırma görevleri verirken, kendilerine ne yaptıklarını açıklarlar, böylece mentörlük yaparken olur.

Odayı herkes aynı açık alanda olacak şekilde ayarlamaya çalışıyorum ama her takımın kendi bilgisayar dairesi var. Herkese uzaktan bağırmaktan hoşlanıyorum, bu yüzden işler hızla ilerliyor.

Bu, şimdiye kadar yaklaşık 10-20 programcı için iyi çalışıyor. Küçük gruplar bir grupta olmaktan daha iyidir ve henüz daha büyük bir şeyle çalışmadım.


Divide & Conquer tuzakları vardır. Her takımın tüm takımın karşılaştığı benzer problemler için tekerleği (kötü) yeniden icat etmesiyle sonuçlandığını gördüm.
NWS

Evet, özellikle ayrı binalardaysanız, herkesi açık bir alanda tutmaya ve düzenli olarak dolaşmaya çalışıyorum. Yaptığım şey, temel API imzaları oluşturmak ve ekipleri, hepsi birbirine bağlanacak şekilde oluşturmaktır.
Jason Sebring
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.