Yetenek takımlar aracılığıyla nasıl dağıtılmalıdır?


9

Okuduktan sonra bu, Çevik takımların farklı yeteneklere sahip bir grup geliştirici içinde nasıl yapılandırılması gerektiğine dair pek çok anlaşmazlık olduğunu gördüm (neredeyse tüm takımlar). Tüm en iyi geliştiriciler kendi takımlarına konmalı ve en yüksek öncelikli çalışma verilmeli mi? Bu, en önemli görevlerin gerçekleştirilmesini hemen hemen sağlayacaktır. Aynı zamanda, sadece düşük öncelikli görevlerde bile olsa, başka bir yerde teknik borcu tıkayan "mükemmelden az" ekiplere bırakılırsınız. Öte yandan, eşit olarak dağıtılmış takımlar, gecikmeli geliştiricilerinizi biraz daha iyi hale getirme avantajına sahip olabilir, ancak en ağır vuruşlarınızı motive etme potansiyeline sahiptir. Ayrıca, bir grup iyi tasarım desenini bir sürü korkunç anti-desenle karıştırırsanız, bir grup anti-desen olabileceği gibi bir şeyle sonuçlanabilir.



@Lott Benzer, ancak doğru hatırlamıyorsam aşırı baskın bir geliştiriciyi kontrol altında tutmak anlamına geliyor.
Morgan Herlocker

2
En iyi karakter sistemleri, yetenek noktalarını periyodik olarak yeniden dağıtmanıza izin verir.
Sinirli

1
Üzgünüz, bu günlerde çok fazla Mass Effect 2 (ve diğer oyunlar). : P
SinirliWithFormsDesigner

Yanıtlar:


11

A-Teams ile bilinen bazı riskler var, ancak dinamikler doğruysa, evet diye düşünüyorum, en güçlü insanlarıma en potansiyel projeleri olan genç geliştirici (ler) ile birlikte en önemli projelere koyardım. Düşük öncelikli projeleriniz için, rayların çok uzağına düşmelerini önlemek için mümkünse iyi bir takım liderine ihtiyacınız vardır. Teknik borç ne olursa olsun gerçekleşecek. Tüm teknik borçlar eşit değildir; teknik borcun maliyeti / yükümlülüğü ilk etapta projenin iş değeri ile orantılıdır, bu nedenle düşük öncelikli projeleriniz daha fazla siğile sahip olsa da, bunların maliyeti muhtemelen yüksek öncelikli projelerinizdeki önemli sorunlardan çok daha azdır. olmak.


7

Profesörlerimizden birinin bize takım yapıları hakkında bir fıkra anlattığımı hatırlıyorum (şimdi konuştuğu kağıda bir göz attım ama bulamıyorum).

Temel olarak, hikaye aşağıdaki gibi gitti:

Bir grup programcı yeteneğe göre gruplara ayrıldı, en kötü x programcıları birlikte gruplandı, bir sonraki x birlikte gruplandı, vb. Ve en iyileri birlikte gruplandı.

Hepsi aynı göreve atandı ve tamamlanmaları için belirli bir zaman aralığı verildi.

Zaman aralığının sonunda organizatörler görevlerin çözümlerine baktılar ve sürprizlerine göre en iyi performans gösteren çözümün ortalama insanlardan oluşan ekipten geldiğini keşfettiler. Buna karşılık, A * programcılarından oluşan ekip en kötü çözümlerden birini yaptı çünkü tüm zamanlarını en iyi çözümün ne olduğunu tartışarak geçirdiler .

İşleri yapacak bir takıma ihtiyacınız varsa, bir grup ortalama adam ve liderlik edebilecek baskın bir adam alın, çalışmanın sonucuydu (doğru hatırlarsam), aksi takdirde daha baskın üyeler savaşmaktan daha fazla zaman harcayacak şeyler bitti!


1
Evet, bu birincil A-Team sorunlarından biridir, ancak bu çalışmaya dayanan tüm ekipler için evrensel olarak geçerli olduğu sonucuna varmak bir hata olacaktır.
Jeremy

Kabul edildi: Herkes aynı değil, eşdeğer gruplar aynı dinamiğe sahip olmayacak, ancak yine de iyi bir fıkra!
Ed James

1
Peki, tüm yol bulma algoritmaları yazmak ve bir araya gelerek devs bir araya koymak ...
Steven Evers

lol - kağıdı büyük olasılıkla bulamıyorsunuz çünkü profesör hikayeyi yerinde oluşturdu. ;-)
Steven A. Lowe

Bu beni şaşırtmaz: D
Ed James

3

Deneyimsiz geliştiricilerin büyük çoğunluğu kendi başlarına sağlam ve zarif tasarımlar bulamayabilir, ancak bir tanesini gördüklerinde bunu anlayabilir ve anlayabilirler. Eğer yapamazlarsa, genellikle ilk etapta işe alınma yeteneğinden veya hazırlıktan yoksundurlar.

Ayrıca, çok karmaşık yazılım tasarımlarını anlayabilen, ancak daha basit bir şeyin ne zaman daha iyi olacağını bilmeye karar verme yetkisine sahip olmayan daha deneyimli geliştiriciler de vardır.

Deneyimlerime göre, karışık ekiplerle genellikle hazırlıksız üyeler, gereksiz derecede karmaşık üyeler veya her ikisini de içeriyorsa kalıcı sorunlarınız olur. Aksi takdirde, ekibinizin sorunları varsa, genellikle daha iyi iletişim veya uygun roller atayarak düzeltilebilirler.


Sadece ilk paragrafınızdan geliştiricilere olan talebin arzı aştığı bir ortamda çalışmadığınızı varsayabilirim. Birçoğumuz yapıyoruz. :-)
Carson63000

3

En iyi insanları tek bir takıma gruplamak harika bir kısa vadeli çözüm gibi görünebilir, ancak uzun vadede başarısızlıktır ve ek maliyetleri vardır. Örneğin benim şirketim insanlar eğitim için para ödemek yerine daha yetenekli meslektaşlarından öğrenmeyi tercih ediyor. En iyi insanları ayırırsanız, bilgiyi daha az yetenekli insanlara aktaramazlar. Kısa vadede en iyi takımlarınız iyi performans gösterebilir ancak bilgi aktarımından yoksun olduğu için yetenekli kişilerin sayısı artmaz. Başlangıçta daha az performans gösteren takımlara sahip olmak ve insanlar daha yetenekli hale geldikçe tüm takımlara göre performansı artırmak çok daha iyidir.

Dahası, yetenekli insanlar ayrılmaya karar verirse ne olur? Projelerini kim alacak?

Başka bir nokta, takımın farklı beceri setlerine sahip insanlardan oluşması gerektiğidir. Her zaman en üst düzey geliştiriciler tarafından yapılması çok pahalı olan kolay görevlere (ve sıkıcı görevlere) sahip olacaksınız.


3

Öğretemeyenler, yapamazlar ...

Düşünülmesi gereken daha fazla faktör olduğunu düşünüyorum.

Takım lideri olarak öğretebilecek olanları dağıtarak en yüksek değeri elde edersiniz. Ekibin diğer üyelerini öğretebilir ve çalışmalarının kalitesini yükseltmeye yardımcı olabilirler.

Tüm kıdemli programcılar iyi sonuçlar elde edemez. Bilgi aktarma yeteneği kendi başına bir beceridir. Bu beceri programlama deneyimi ile gelişen bir şey değildir. Öğreterek ve açıklayarak gelişir.


Katılıyorum ama aynı zamanda diğer geliştiriciler tarafından yazılan koddan öğrenebilirsiniz. Üst düzey geliştiriciler ekibinizin bir parçası değilse, onlardan bu şekilde öğrenemezsiniz.
Ladislav Mrnka

@Ladislav Mrnka: Üst düzey geliştiricileri farklı ekiplere dağıtmamanız gerektiğini söylemiyorum. Koddan öğrenme yeteneği değişecektir. Bu aynı zamanda devs, çoğu olmayan koddan öğrenmek için zaman alacaktır varsayar.
dietbuddha

2

Bir 'A' takımı atamanın iki önemli sorunu vardır. Birincisi uyumluluk. İyi geçinen ve birlikte iyi çalışan ekiplere sahip olmaları "yeteneklerinden" çok daha önemlidir. Şimdi bu iki "yüksek" beceri programcısı, iki "düşük" beceri programcısı veya bir karışım olabilir. Birlikte iyi çalışabilecekleri gerçeği, daha üretken olacakları anlamına gelir.

İkinci konu büyüme ile ilgilidir. İki "düşük" beceri programcısı kötü alışkanlıkların yanı sıra birbirlerinden çok fazla şey öğrenmeyeceklerdir. Aynı şekilde, iki "yüksek" yetenekli programcı birbirlerinden çok şey öğrenmeyecektir. Bununla birlikte, "düşük" ve yüksek "beceri seviyelerinin karıştırılması," düşük "becerinin yeteneklerini geliştirmeye yardımcı olur, aynı zamanda" yüksek "yetenekli yeteneklerini de geliştirir. Başka birine öğretene kadar "usta" bir beceri olarak düşünmüyorum.


1

Madalyonun diğer tarafından, birbirine "ayak uydurabilecek" takımları tutmak mantıklı. A-Team tipi programcılarınız, bitlerini tamamlamak için B-Team tiplerini beklemek istemiyorlar. B-Team tipleriniz A-Team tarzı iş akışı ile intibaklanmış olabilir.

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.