Teknik uzmanlık olmadan bir geliştirme projesi nasıl yönetilir


17

Tüm kariyerim ve kodla çalışmayı sevdiğim için uygulamalı bir geliştirici oldum. Belirli bir teknoloji konusunda uzmanlığı çok az olan veya hiç olmayan ama yine de belirli bir uygulamada ısrar eden takım liderine her zaman kızdım.

Şimdi kendimi ayna camının diğer tarafında buluyorum. Ben C # uygulanacak şişman bir istemci lider geliştirici, ancak benim uzmanlık Java web uygulamaları oluşturma. Tasarım dillerini ve OO paradigmalarını herhangi bir dilde kullanabileceğimi bilsem de, kodlama standartları, proje yaşam döngüsü araçları ve serbest bırakma / dağıtım prosedürleri söz konusu olduğunda kayboluyorum. Temelleri bir ya da iki ay içinde alabileceğime şüphe yok, ancak birinin sadece zamanla toplayabileceği belirli deneyimler var.

Ne yapmalıyım ve gelişirken nefret ettiğim proje lideri olmaktan nasıl kaçınırım?


12
böyle nefret edilmekten kaçınmak için ekip üyelerinizle konuşun. Düzenli olarak konuşun, sık konuşun, 1: 1 konuşun "... Sağlıklı 1: 1'lerin kültürü için ödülünüz belirgin bir drama eksikliği."
gnat

1
Bu portal için unvanınız ve sorumluluğunuz tam olarak nedir? PM, Kıdemli Geliştirici, ... misiniz?
NoChance

En
iyiden

1
Ama cidden, bu makaleleri bir süre önce yararlı bulabileceğinizi yazdım
jfrankcarr

Yanıtlar:


19

Dürüst olmak gerekirse, bir teknolojiyle ilgili ne kadar deneyime sahip olduğunuz önemli değil, tavsiyem aynı: Yönetimle meşgulken onlarla yaşamak zorunda kalacaklar hakkında teknoloji kararlarını zorlamayın.

Kendine karşı dürüst ol. Bahse girerim ki önceki yöneticilerden nefret etmenizin nedeni, karar verecekleri bilgi tabanına sahip olmadıkları değil, kararları uyguladıkları ve sonuçlarla asla uğraşmadıkları için değil.

Bu, daha önce hiç .NET'e dokunmamış olmanız ya da takımdaki en uzman geliştirici olmanız için geçerlidir. İşiniz artık teknik kararlar vermek değil yönetmek.

Yönetmek, geliştiricilerinizin beceri düzeyine bağlı olarak, istediklerinde onlara tavsiyede bulunmak anlamına gelebilir. "Spring.NET'e baktın mı?" (orada talimat eksikliği dikkat) söylemek mükemmel bir şeydir. Ayrıca, "Google, dünyanın geri kalanının ne yaptığını görün, bu sorunla ilk karşılaşan biz değiliz."

Bazı açılardan, deneyimli bir Java geliştiricisi olarak, bunun için çoğundan daha iyi bir konumda olabilirsiniz. Çoğu Java çerçevesi ve teknolojisinin .NET'te benzer bir eşdeğeri vardır. Yani "İşte kullanmak için en iyi şey" demek zorunda değilsiniz, "Bunu Java'da kullandım, bir .NET eşdeğeri biliyor musunuz?"

Ayrıca ekip içinde çok fazla konuşmayı teşvik edin. Haftalık teknik tartışma toplantıları düzenleyin. İhtiyacınız olan tek şey sonunda bilgi; hangi kararları verdiklerini ve nedenini bilmeniz gerekir. Ekip için bu kararları vermenize gerek yok.


2
Sağ. Önemli olan, teknik "yıldızlarınızın" verdiğinizden farklı kararlar almasına izin vermeye istekli olmaktır. Bunu yapabilirseniz, herkes (elbette, üst yönetim hariç) mutlu ve üretken olacaktır.
Daniel R Hicks

"Yani" Kullanmak için en iyi şey "demek zorunda değilsiniz," Bunu Java'da kullandım, bir .NET eşdeğerini biliyor musunuz? " Çoğu durumda, eşdeğer bir araç varsa, ona bir 'N' öneki eklenir; böylece bunları genellikle kendiniz bulabilirsiniz
Dan Firelight tarafından Fiddling

Kendini "Proje Yöneticisi" olarak değil "Baş Geliştirici" olarak etiketlediğini unutmayın. Benim tecrübelerime göre, bunlar çok farklı iki şey.
Wone the Sane

@WonkotheSane: OP'nin Proje Lideri, Takım Lideri ve Baş Geliştirici'yi sanki hepsi aynı şeymiş gibi ifade ettiği doğrudur ve bu kafa karıştırıcıdır. Ama ipucumu kullanıldıkları bağlamdan aldım.
pdr

@pdr - neredeyse kabul etti. "Tasarım desenlerinden ve OO paradigmalarından yararlanabiliyorum" bölümü biraz merak etmemi sağlıyor.
Wone the Sane

6

Teknoloji hakkında çok az şey bilen çok iyi menajerler / takım liderlerim vardı ve en kötü yöneticilerimden bazıları her şeyi bildiğini düşünenler oldu.

Lider olmak için, eğer makul derecede yetkin insanlara sahipseniz, asıl mesele, yetkinliklerini ve yargılarını yargılayabilmek ve her birine, "yaban ördeklerini" görevde ve "zar zor" "güvenli" ancak üretken faaliyetlerle "yetkin" kişiler. Herkesin aynı davulcuya yürüdüğünden emin olun.

En büyük zorluğunuz üst yönetimi uzak tutmaktır. Raporları, programları ve onay işaretlerini isteyecekler ve ne istediklerini ve bunları nasıl makul bir şekilde taklit edeceklerini anlamanız gerekiyor. (Eh, tam olarak "sahte" değil, zamanınızı veya ekibinizin zamanını yemeden onları tatmin eden belgeler üretin.)


4

C # kodlama becerileriniz için seçilmediniz ve başlangıçtan itibaren kod yazmayacaksanız, C #'ı bilmeniz veya bilmemeniz önemli değildir. Daha yüksek bir seviyede düşünmeye başlamanız gerekir:

  • Ekibinizdeki her kişi masaya hangi becerileri getiriyor?
  • Projenin başarısı için hangi bileşenler kritik öneme sahiptir?
  • Gerçek koda ek olarak ne üretmeniz gerekiyor? (Testler? Dokümantasyon?)
  • Henüz yapmadıysanız gereksinimleri nasıl toplayacaksınız?
  • Siz ve ekibiniz tasarım sürecine nasıl yaklaşacaksınız?
  • Bir kodlama standardına sahip olmanın önemli olduğunu biliyorsunuz , ancak tam olarak hangi standardı takip etmek istediklerini anlamak için ekibinize güvenebilirsiniz.
  • Sorunları erken nasıl tespit edebilirsiniz?

Bunlardan bazıları proje yönetimi bölgesine geçebilir, ancak baş geliştirici olarak bu ve diğer konularda proje yöneticisi ile yakın bir şekilde çalışacaksınız.

Elbette, C # 'da olabildiğince çabuk çalışmayı öğrenin. Rolünüzün sözdizimini ve çerçeve ayrıntılarını geçmiş ve daha büyük resme bakmak olduğunu unutmayın.


2

Yaklaşın. Kendinize basit bir C # astarı alıp bir kod yazarak başlayın. Başka bir dilde gözü kapalı yapmayı bileceğiniz birkaç temel şeyi deneyin.

Programlama tarzı ve kurallarını okuyun. Bunu kısmen astarınızda bulmanız gerekir, ancak bilmediğiniz stil kurallarını uygulamak için StyleCop ve Resharper gibi ürünleri de kullanabilirsiniz. Bu, yazılımınızı derlerken sorunlardan kaçınmak için işleri yaygın olarak kabul edilen bir şekilde yapmak için çok hızlı bir şekilde eğitecektir.

Sadece kendiniz olun ve sahip olduğunuz tasarım bilgisini uygulayın. Dilden bağımsız olarak temel bilgiler aynıdır. Farklılıkların olacağı yerlerde, yapı bakımından dillerin nasıl farklılık göstereceği oldukça az olacaktır ve bir veya iki test uygulamasını bir araya getirdiğinizde bunların çoğu çok hızlı bir şekilde görünecektir.

Bilmediğiniz aşikar şeyler varsa, yakında olun. Ekibiniz dürüstlüğe sadece bir ipucu olmadan takılmaktan daha fazla saygı duyacaktır. İyi bilgilendirilmiş ve gerekçeli kararlar verin ve yanıtınızı dikkate almak için her zaman birkaç dakika ayırın. Hükmetmeye çalışmadan iddialı olmanız gerekecek ve bir alandaki bilgi eksikliğinizin takıma liderlik etme yeteneğinizin bir yansıması gibi görünmesine izin veremezsiniz. Liderlik, mentorluk anlamına gelir, ancak mentorluk, yeni bir şey öğrenmek için isteklilik gösteremeyeceğiniz anlamına gelmez.


3
Bu bir yönetici olarak ne yapmak tam tersi olduğunu söyleyebilirim. İçeri girmek ve bazı kodları atmak cazip gelebilir, ancak bu artık sizin işiniz değil ... işiniz, ekibinizin onları işe aldığınız şeyi yapmasını sağlamak ve deneyimlerine ve yargısına güvenmektir. Farklı bir platformda hızlanmaya çalışmak karşı üretken.
Michael Brown

@MikeBrown Bu yalnızca konum bir yönetim konumuysa geçerlidir. Sahip olduğum tüm ekip liderliği pozisyonları, bu pozisyondan bekleyebileceğiniz proje yönetimi, planlama ve diğer sorumluluklara ek olarak önemli miktarda zaman kodlaması gerektirdi. OP bir yönetici olacağını söylemiş olsaydı, cevabım çok farklı olurdu.
S.Robins

Haklısın. Tecrübesi olmayan bir teknoloji için müdür olduğunu varsayıyordum. Bir düzenleme yapın ve downvote'umu geri alacağım :)
Michael Brown

@MikeBrown Düzenlemem gerektiğini düşündüğünüzden emin değilim. OP'nin sorusunu, proje lideri olacağına dair kendi ifadesine dayanarak yanıtladım ... ancak, cevabı biraz uzatacağım. :)
S.Robins

Oh, düzenlemek zorunda olduğumu hissetmiyorum ... sadece SO, bir düzenleme yapmadan oyumu değiştirmeme izin vermeyecekti :(
Michael Brown

1

Böyle düşünüyor ve gerçekten endişeleniyorsanız, bu tür bir proje lideri olma riskinden zaten kaçındınız. Doğru bilgi olmadan karar vermeye cesaret edebilecek tamamen farklı bir kişilik. İş arkadaşlarınızın size söylediklerine açık fikirli olun ve ekibinizde bir diyalog ve bilgi alışverişi kültürü oluşturun ve teşvik edin.


1

Görünüşe göre buradaki birkaç sorun var.

Yönlendirdiğiniz projede kullanılan teknoloji ve projenin gelişimini yöneten süreç.

Takım lideri veya lider bir geliştirici misiniz? Bir lider geliştirici de tasarım ve geliştirme çalışmalarının bir kısmını yapar. Dolayısıyla bunun tek yolu sadece aşağı inip yeni teknolojiyi öğrenmek .

Ekibe gerçekten liderlik yapıyorsanız , ekibe güvenmeniz ve projenin teknik yönünün çoğunu yönlendirmelerine izin vermeniz gerekir . Tabii ki, kavramsal olarak, o yönlendirmeyi doğru yönde tutabileceksiniz.

Projenin gelişimini yöneten süreçler çoğunlukla yerinde olmalıdır . Bu sadece onları okumak, anlamak ve yürütmek meselesidir.

Değilse, bazı geliştirme sürecini uygulamaya koymanıza yardımcı olacak bir danışman bulmak için patronunuzla görüşün. Bu oldukça önemli. Süreç yerinde değilse ve ad hoc ise oldukça hızlı bir şekilde başarısız olacaktır.

İyi şanslar!


0

Fırsat arada bir gelir .. Bunu yakala .. Ben söyleyebilirim, C # temellerini öğrenmeye çalışın. Çevrimiçi bazı öğretici alın, üzerinde çalışmayı deneyin. başlangıçta yeni konsepti öğrenmek zor olurdu, daha sonra ilk göreviniz bittiğinde ona biraz güveneceksiniz.

Olumlu düşünün, zor görevler almaya çalışın, kendi kodunuzu hata ayıklayın ve bu konuda uzmanlaşacağınızdan eminim.

Fırsatınızı kaybetmeyin.


0

Eğer iyi bir .Net geliştiricileri grubunuz varsa, takımda başlamak için belki de dokunmanız gereken çok fazla bilgi olduğunu düşünüyorum. Java ve .Net arasında zaten bildiğiniz şeylerin daha az doğrudan uygulayabileceği konusunda çok benzerlik vardır. Önemli olan, bu proje için neyin doğru olduğunu ve içerdiği riskleri bilmektir. Ekibinizle gerektiği sıklıkta iletişim kurun. Yazılım mühendisliği uygulaması bir proje boyunca gelişir, bu nedenle projenin çok erken saatlerinde "en iyi uygulama" sahibi olmak zor olabilir.

Yazılımla ilgili alanlardan olmayan çok yeşil bir ekip bana verildiğinde deneyiminizin tam tersini yaşadım. Ne yapmam gerektiğini öngörmek için tüm nedenlerim olsa da (işe alındım) bunun yerine bizi harekete geçirecek uygulamalar ve yazılım mühendisliği uygulamamızı geliştirmek için bol miktarda koçluk ve tartışma aradım. Ekipten yolda yığınları öğrendim ve bir yıldan fazla bir süre sonra işyerinde ilk projemizi teslim etmek için neredeyse oradayız!


-1

Kodlama standartları, proje yaşam döngüsü araçları ve sürüm / dağıtım prosedürleri söz konusu olduğunda kayboluyorum.

Kullanacağınız teknolojiyi kullanan açık kaynaklı bir ürün bulun.

Mümkünse, sorunlu etki alanına bir şekilde benzer olanı bulun. Bu, aynı teknolojiye ve aktif güncellemelere sahip bir proje bulmak kadar önemli değil.

Çalışma kodlarını indirin. Oku onu.

Hangi araçları kullandıklarını anlayın. Onları kullan.

Açık kaynak projesinin nasıl oluşturulacağını ve serbest bırakılacağını öğrenin. Oluşturun ve bırakın.

Açık kaynak kodlu bir proje (çok sayıda katılımcı ile birlikte) en iyi uygulamaları gösterecektir.

Temelleri bir ya da iki ay içinde alabileceğime şüphe yok, ancak birinin sadece zamanla toplayabileceği belirli deneyimler var.

Doğru.

Açık kaynak topluluğundan bilgi edinin.


2
Bazen açık kaynaklı projeler üzerinde çalışan insanlar, mevcut en iyi araçları kullanmazlar hatta standartlara uyarlar (iyi uygulamalar). Doğru araçları kullanmak ve hatta endüstri sözleşmelerini takip etmek açısından gerçekten kötü olan birkaç açık kaynak projesi (onları adlandırmak istemiyorum) biliyorum.
Christian P

@ChristianP: Yıldızlardan daha az açık kaynaklı projeler olsa da, oldukça iyi olan büyük projeleri bulmak kolaydır. Ve herhangi bir açık kaynak projesini örnek olarak bulmak hiç örnek olmamasından daha iyidir.
S.Lott

Herhangi bir örneğin hiç olmamasından daha iyi olduğunu kabul ediyorum. Ancak en iyi uygulamalar, araçlar vb. Ararken , proje aynı sorunu çözmese bile iyi bir açık kaynaklı projeden daha fazla bilgi edinebilirsiniz .
Christian P
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.