Önde gelen geliştiricinin çevik bir takımdaki rolü nedir?


42

Çevik olmayan bir geliştirme ekibinde genellikle lider bir geliştirici :

  • Standardı ayarlar (kodlama ve başka türlü)
  • Takım için yeni teknolojileri araştırıyor
  • Takımın teknik yönünü belirler
  • Son sözlerde meseleler var mı
  • Bir sistemin mimarisini tasarlar

Ancak çevik bir ekip farklı çalışır:

  • Çevik bir ekip ön plandan ziyade yeni ortaya çıkan tasarıma güvenecek
  • Çevik bir ekip, tek bir kişi tarafından dikte edilen tasarımdan ziyade birlikte tasarlar.
  • Çevik bir ekip, bir projeyi teslim etmek için en iyi yol olan kendi teknik yönüne karar verir.

Bu, çevik bir ekipte lider geliştiriciyi nerede bırakır? Çevik bir ekipte lider bir geliştiriciye sahip olmak mümkün mü? Çevik bir ekip liderden farklı sorumluluklar ister mi?


Cevapları Cevaplama Matters son yorum Lider geliştiricinin sistemin birçok bileşenini etkileyen kilit mimari kararları alan olması gerektiğini ekleyeceğim. Ayrıca, bu sorumluluğu taşıyan kişidir ve işler ters giderse fikrini değiştirmelidir.
user2236631

Yanıtlar:


46

Çevik hiçbir şey, lider geliştiricinin işlevini değiştirmez. Hangi geliştirme modeli takip edilirse yapılsın ekibin geri kalanını sistem mimarisi kararları ve teknik yönlendirme ile dahil etmelidirler.

Kararları yazılı olarak vermek, herhangi bir geliştirme ekibinin çalışması için çok kötü bir yoldur. Çevik, sadece ekibin geri kalanından alım yapmayı çok daha açık bir süreç haline getiriyor ve yine de lider bir geliştirici bunu yapmalıydı.

Sadece bir scrum metodolojisinde belli başlı lider geliştirici rolünün bulunmaması, daha deneyimli programcıların görüşlerinin en saygın olmadığı anlamına gelmez. Çevik, herkesin kendi şeyleriyle çılgına dönmelerine izin vermek ve daha sonra hepsini birbirine yapıştırmaya çalışmak değildir, hala ayarlanması gereken birleşik bir vizyon ve yön vardır.


"Herhangi bir geliştirme ekibinin çalıştırması için korkunç bir yoldur" kararlarını düzenlemeyle dağıtmak "derken ne demek istediğinizi açıklayabilir misiniz? Gönderinizin geri kalanıyla aynı fikirdeyim, ancak yalnızca belirtilen ifadeyi belirli şekillerde kabul ediyorum, ancak diğerleri hariç. Örneğin, SOA'yı bir veritabanı katmanı üzerinde kullanmaya nasıl karar verilir? Bu bir ferman olmaz mıydı ya da birinin son sözünü vermek zorunda kalmayacak mıydı? Soruyorum çünkü ben bir takım lideriyim ve bu duruma girdim. İş ihtiyacına göre SOA kullanmamak için bir çağrı yaptım. Tüm geliştiricilerin her konuyu tartışmasına / tartışmasına izin vermek için yeterli zaman yoktur.
Brian,

@Brian mimarlık kararları, bir sprint içerisindeki bir hikaye olabilir, muhtemelen biri belirli bir üyeye ayrılmış, ancak başka bir hikaye ile aynı. Başka bir hikaye gibi meslektaş incelemesine tabi tutulmalıdır. Zaman argümanı saçmalık, eğer X'i kaçırdıysanız ya da Z'yi denemeye karar verirseniz, takımdaki herkesin size aşina olmadığı, sonuç olarak gelişmek için daha fazla zaman harcayacak, hatta tasarım hakkında tam bir tartışma gününün karşılaştırmalı olarak önemsiz olacağını . “A'yı seçtim çünkü X, Y, Z” gibi basit bir toplantı / inceleme. muhtemelen bir saat sürecek ve işbirlikçi bir çaba gösterecek.
Ryathal

30

Çevik bir takımda herkesin egolarını kenara koyması gerekir.

Çevik bir ekibin bir üyesi diğerlerinden daha fazla deneyime sahipse, muhtemel olan şey, deneyimli üyenin çoğu kod incelemesinde yer alacağı ve insanların ekip kararları alırken sık sık o kişinin deneyimini erteleyeceğidir.

Dolayısıyla, bir "lider" geliştirici "lider" olmaya devam edecek, ancak deneyimlerinin doğal bir sonucu olarak ve unvanlarının zorunlu bir işlevi olarak görülmeyecektir.

Bu, insanların egolarını bir kenara bırakabileceği ideal bir dünyada. İyi şanslar!


Katılmayacaksın. Bir geliştiricinin tek başına kötü sonuçlara yol açtığı, ancak liderin orada olmadığı ve geliştiricinin böyle bir durumla alıştığı için aldatıcı bir karar aldığını çok sık gördüm. Kedi sürüsü, sana söylüyorum.
andrew.fox

20

Ryathal'ın cevabına ek olarak :

Ortaya çıkan tasarım ve takımın yönünden, takımdan mükemmel bir uyum ve uyum içinde akıyormuş gibi konuştunuz. İnsan grupları, programcı grupları özellikle çelişkilidir . Takım lideri olarak, çevik bir takımdaki işiniz şelaleden çok hakem veya katalizördür. Ekip, hangi tasarımın kullanılacağı konusunda çelişki duyduğunda, insanların eşit sözde olduklarından ve esasa ilişkin tartışmalara sadık kaldıklarından emin olursunuz. Ve sonunda, yol net olmadığı zaman, ekibin birlikte önereceği çözümü öneren hakem olursunuz.

Bu, liderin en önemli sorumluluklarından biridir, ancak bir grup insanı bir takıma dönüştürmek için birçok başka şeye ihtiyaç vardır. İyi bir kodlamanın mümkün olduğu kadarıyla bir örnek belirlemeniz ve bunu sık sık uygulamanız gerekir (doğrudan veya bunu yapmak için bir kültür oluşturarak). Tüm ekip üyeleriniz arasındaki iletişimi kolaylaştırmanız gerekiyor, çünkü standup'ta günde bir kez bunu kesmeyecek.

Göz ardı ettiğiniz diğer önemli şey toplantılardır. Ekibin iş adamları, diğer teknik ekipler vb. İle etkileşime girmesi gereken her toplantıya tüm takımı getirmesi pratik değildir. Takım lideri olarak, takımın temsilcisi sizsiniz. Toplantılara gidersiniz, böylece masalarında kalabilirler ve işleri halledebilirler. Temas noktası sizsiniz, böylece doğrudan uğrayan insanlar tarafından engellenmesinler. Ve dış dünyadan bilgi almak için çalışıyorsunuz (diğer takımlar üzerinde çalışıyorlar, çevik takımlar bir sonraki koşuya benziyor, bu açık durumun durumu nedir, vb.), Onlar için kaynatın ve iletişim kurun.

Kısacası, sorunsuz çalışabilmelerini sağlamak için kayganlaştırıcısınız.


1
Bu, özellikle toplantı veya özel tartışmaların X dakikadan uzun sürmeyeceği anlamına gelen "Zaman Kutulu" toplantılarda önemlidir. Zamanın sonunda, birisi kararı verir ve süreci devam ettirir. Bu, sistem mimarisi ve ilgili tartışmalar için bir Lider Geliştirici olabilir.
Chris

1
Peki. Bir lider geliştirici, içinde bulundukları ekibin deneyimini ve anlayışını da geliştirmeye yönelik olmalıdır; uzun vadeli plan sadece bir 'lider' olmakla kalmayıp, aynı zamanda bir akran ekibinin bir üyesi olmaktır.
David 'kel zencefil'

Tanımladığınız şey bir Scrum Ustası.
DBedrenko

6

Çevik olmayan tanımınız çevik tanımınızı geçersiz kılmaz.

Çevik bir ekip ön plandan ziyade ortaya çıkan tasarıma güvenecektir.

Bir öncü geliştirici tanımınızla ilgili hiçbir şey tasarımın ön plana çıkması gerektiğini söylemez. Yönü belirleyebilir ve hala bir ilk tasarım düzenleyebilir. Bu tasarım kesinlikle ortaya çıkıyor.

Çevik bir ekip, tek bir kişi tarafından dikte edilen tasarımdan ziyade birlikte tasarlar.

Bir kurşun geliştirici tanımına dair hiçbir şey o söylüyor dikte tasarım. O halde olabilir son söz, sadece fakir bir kurşun tam onun çoğunluk takım arkadaşlarının düşüncelerini ihmal olur. Kapak tarafında, sadece fakir bir takım lider geliştiricinin düşüncelerini tamamen göz ardı edecektir.

Çevik bir ekip, bir projeyi teslim etmek için en iyi yol olan kendi teknik yönüne karar verir.

Yine, bu, önceliğin başlangıçta bu yönü belirlemediği anlamına gelmez . Liderlik bu çevik ekibin bir parçası. Çevik olmayan bir ortamda bile, yalnızca kötü bir lider, bir takımı bilerek uygulanabilir olmadığı veya bu yönü geçersiz kılmak için yeni bilgiler sunulduğunda söz konusu yönde ilerlemeye devam edecektir.


6

Soru birkaç başka soruya neden olur. Sizce, bir yazılım mühendis ekibine ne yapacağınızı söyleyebilecek niteliktedir? Bu senin tecrüben mi? Patronunun sana verdiği küçük komik başlık mı? Senin egonun mu? Şirketteki görev süreniz? "Panache" mi? Senin stilin?" "Liderlik yeteneklerin"?

Çevik ekipler, "Tebrikler, sen süper dehasımızsın - süper gizli çifte dahi çalışmasına izin verilen tek kişi sensin" diyen rozet veya şapka dağıtmaz. Aksine, odak EL ÇALIŞMASI. Eğer gerçekten daha tecrübeli iseniz, bu deneyim tasarımlarınızın çalışmayı tamamlamaya doğru ne kadar ileri ilerlediğini göstermelidir. Kendi seçtiğiniz ödevleriniz (kartlar) en uzman olduğunuz bölgeleri yansıtmalıdır. Öte yandan, kolej dışındaki bir çocuğun daha iyi bir fikri varsa ve bu bağlamda 40 yıllık emektarların ortaya çıkmasından daha iyi bir duruma uyarsa ile neden dünyadaki fakir tasarıma geçelim ki? İş yerlerimiz terapi ofisleri değil - harika şeyler inşa etmeye geldiklerimiz.

Bu başka bir soruyu akla getiriyor: kim "daha iyi" nin ne anlama geldiğine karar verecek? Cevap: paydaşların takımı. Bu, söz konusu olanın yapıcıları ve kullanıcıları olan geliştiriciler, ihtiyaçlar, test edenler, iş adamları vb. Anlamına gelir. İyi bir fikriniz varsa, bunun neden daha iyi olduğunu gösterebilmelisiniz. Bunu yapamıyorsanız, ekibin fikrinizin daha iyi olduğuna inanması için hiçbir sebep yoktur. Çevik, meritokrasiyi teşvik eder.

Peki, "geliştirme ekibi lideri" ne olur? çevik mi? Hiçbir şey - onlar sadece bu isimde daha iyi yaşarlar - daha iyi GERÇEKTEN takımdaki diğer insanlardan daha iyi bir yazılım üretebilecekler. Aksi takdirde, onlara "ipucu" demenin bir nedeni yoktur - bu sadece küçük bir rozet veya komik şapka ve anlamsızdır. Birçok insan bu tehdidi bulur. Bir rozet veya komik şapka için "çalışıyor" gibi hissediyorlar. İyi geliştiriciler komik şapkalar için işe yaramaz. Harika bir yazılım oluşturmak için çalışıyorlar ve titreyene kadar bunu yapmayı planlıyorlar - hedefleri her gün yazılım oluşturmada daha iyi olmak. Eğer siz değilseniz, belki proje yönetimine bakmak isteyebilirsiniz. Muhtemelen daha mutlu olacaksın.


"EL ÇALIŞMASI" için +1. Şimdi teslim etmeniz gerekenler için en iyi çözüme odaklanmayı kabul ediyorum. Bu fikir kimin ortaya çıktığı ile ilgili değil.
Kwebble

Eğer bir develompent liderinin size göre bir SCRUM ekibinde yaptığı her şey "ekipteki diğer insanlardan daha iyi bir yazılım üretmek" ise, o zaman tek oldukları kesin bir sorumluluğu olmayan bir geliştiricidir. Cevabınız tarafından önerilen nokta bu mu? Aksi halde bu gerçekten bir dev liderin bir SCRUM ekibine nasıl uyduğu sorusuna cevap vermez.
DBedrenko

Evet öyle. Onlar iyi bir mühendis, bu yüzden bir mühendis olarak bir rolleri var (teknik olarak, "takım üyesi"). Ne başka onlar olurdu?
Calphool

3

Çevik deneyimlerime göre, geliştirme ekibinin bir bütün olarak örneklerinden daha az sorumluluk alması, öncü geliştirici ve mimarın üst düzey tasarım seçimlerini koordine etmesine, ancak daha düşük seviyeli tasarımı bir bütün olarak çevik ekibine bırakmasına izin veriyor.

Bu nedenle, lider geliştirici sistem mimarisi ve teknoloji seçimlerinden sorumlu olmaya devam eder. Bu çok önemlidir: çevik yeni ortaya çıkan tasarımı teşvik etse de, bunun yeniden düzenlemesi kod nesnesi düzeyinde gerçekleşmelidir. Bir bütün olarak sistemin daha yüksek seviyede ön tasarım ve sağlamlığa sahip olması gerekir, aksi halde projenin koordinasyonsuz bir karışıklık olma riski vardır.

Projemizde lider geliştirici teknoloji seçimlerini zorunlu kıldı ve sistem bileşenlerinin birbirleriyle nasıl etkileşime gireceğini tasarladı. Çevik planlama toplantıları, bu bileşenlerin üst düzey yetkileri dahilinde nasıl tasarlanacağına odaklandı. Hoş bir yanı olarak, aksi halde yorucu planlama toplantıları için bir kapsam sağlar.

Ayrıca son çare olarak görev yaptı. Bireysel programcılar düzeltemedikleri problemlerle karşılaştığında, liderliğe giderlerdi ve işleri düzeltmek için nihai sorumluluk onun oldu.


Bu benim deneyimlerime benzer, ancak aslında gereğinden fazla "rozet" ve "şapka" olduğunu düşünüyorum. İyi bir geliştiricinin bir tasarım hakkında ne düşündüğü ve bir mimarın bir tasarım hakkında ne düşündüğü arasında neredeyse hiçbir fark yoktur.
Calphool
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.