Bir iş arkadaşına daha iyi kodlama uygulamalarını benimseme konusunda ilham vermek mi istiyorsunuz?


24

In Taşıma benim eskimiş iş arkadaşınız sorusuna, çeşitli insanlar arkadaşları ile başa çıkmak için stratejiler tartışıldı isteksiz takımın onların iş akışını entegre etmek.

Mümkünse, sadece modern teknikler ve araçlar hakkında bilgisiz olan ve muhtemelen biraz kayıtsız olan bir iş arkadaşınıza "öğretmek" için bazı stratejiler öğrenmek isterim .

Yakın zamana kadar firmanın farklı bir bölümünde göreceli olarak yalıtılmış bir programcı ile çalışmaya başladım. Kapsamlı bir alan bilgisine sahip ve en önemlisi , birçok adayın eksik gibi göründüğü bir problem çözme becerisi olduğunu gösterdi .

Ancak, gördüğüm asıl (C #) kod VB6 günleri için bir gerileme. Prosedürel yapı, Macarca notasyonu, global değişkenler (kötüye kullanımı static), arayüz yok, test yok, Jeneriklerin kullanılmaması, atma System.Exception... fikrine kapılıyorsunuz.

Bu programcı benden biraz daha yaşlı ve en azından ilk izlenimlerle aktif olarak olumlu bir değişim aramıyor . Değişime karşı dirençli demeyeceğim , çünkü bunun büyük ölçüde konunun nasıl işlendiğiyle ilgili bir konu olduğunu düşünüyorum ve hazırlıklı olmak istiyorum.

Programcılar inatçı insanlar olma eğilimindedirler ve rip-it-to-shred kodunu yakıp söndüren silahlarla içeri girerler ve kesinlikle uygulanan politikalar kesinlikle istediğim sonucu vermeyecektir . Eğer bu yeni bir işe alım, küçük bir programcı olsaydı, iki kez "mentor" duruşu almayı düşünmezdim, ama deneyimli bir işçiye, ipucu olmayan bir acemi gibi davranmaya son derece ihtiyatlıyım (ki öyle değil - o henüz yapmadı). alanındaki bazı ilerlemelere ayak uydurdu).

Nazik ikna ve maddi olmayan teşvikler yoluyla bu geliştiricinin kod kalite standardını Dale Carnegie yolunda nasıl yükseltebilirim? Zorlu bir durum yaratmadan , ince ve aşamalı değişiklikleri etkilemek için en iyi strateji hangisidir?

Diğer insanlar - özellikle öncü geliştiriciler - bu tür bir durumda daha önce bulundular mı? İlgi uyandırmada ve pozitif bir grup dinamiği yaratmada hangi stratejiler başarılı olmuştur? Hangi stratejiler başarılı değildi ve kaçınılması daha iyi olurdu?


Açıklamalar:

Sorunun tüm ayrıntılarını okumadan birkaç kişinin kişisel duygulara dayanarak cevap verdiğini hissediyorum. Lütfen ima edilmesi gereken aşağıdakilere dikkat edin: ama şimdi açık yapıyorum:

  • Bu iş arkadaşı, yaş nedeniyle sadece benim "kıdemli". Asla onun unvanının, etki alanının veya kuruluştaki yılların benimkimi geçmediğini ve aslında bunların hiçbirinin doğru olmadığını söylemedim. Ana geliştirme mağazasına alınmış bir LOB programcısı. Bu kadar.

  • Şirketi bir gecede dönüştürmek için yeni bir işe alım, küçük programcı ya da büyük naif aptal değilim. Temelde yazılım sürecinin sorumlusuyum, ancak “liderler” olarak çalışan birçok kişinin bileceği gibi, sorumluluklar her zaman kesin olarak org şeması ile ilişkili değildir.

  • Ben değilim değil nasıl insanlara sorarak , yolumu olsun cehennem veya yüksek su geliyor . İsteseydim, net sonucu bu kişinin kırgın ve / veya istifa etmesi ile yapabilirdim. Lütfen , sosyal , işbirliğine dayalı bir sürüş değişikliği yöntemi aradığımı anlamaya çalışın .

  • "... global değişkenler ... test yok ... fırlatma System.Exception" lafı , sorunların sadece yüzeysel ya da estetik olmadığını göstermek için yapıldı . Nispeten küçük CRUD uygulamaları için çalışabilecek uygulamalar, büyük ölçekli kurumsal uygulamalar için zorunlu olarak çalışmaz ve aslında, şu ana kadar hiçbir kod aslında entegrasyon testlerinden geçmedi.

Lütfen, soruyu yüz değerinden almaya çalışın, gerçekte ne hakkında konuştuğumu bildiğimi kabul edin ve ya gerçekten sorduğum veya devam ettiğim soruyu yanıtlayın .

PS Öncül ile tartışmak yerine yapıcı tavsiye verenlere içten şükranlarımı sunuyorum. Gerçek dünyadaki deneyimler hakkında daha fazla şey duymayı umduğumdan, bir süre daha açık bırakacağım.


9
Bu durumda oldum ve gerçekten başarılı bir şekilde çözüldüğünü hiç görmedim. Sizin tanımladığınız gibi birçok insan yıllar önce programlama yapmayı düşünmeyi bıraktı; Bu noktada sadece iş alanlarına yönelik çözümlerle ilgileniyorlar. Bu tür insanları mahk peoplem eden bu sitedeki bant vagonlarına katılmayacağım; gerçekten onların dünyanın tuzu olduğunu düşünüyorum. Kodunuzda çalışıyorlarsa, en azından sözleşmelerinize bağlı kalmanız gerekir. Bir projeye katkıda bulunmaları durumunda, insanların mevcut sözleşmeleri takip etmeleri gerektiğini satmakta zorlanmamıştım.
Jeremy

1
Patronun bu endişeyi dile getirdiğinde ne dedi?

2
@Aaron, kodunun işe yaradığından beri, bu teknik değil, politik bir sorun ve eğer bir şeyi değiştirmek istiyorsanız muhtemelen yukarıdan getirilmesi gereken bir sorun. Başka bir deyişle patronundan. İyi tartışmalar hazır olsun!

2
@Thor: Yani tarzının sadece düşük beklentilerin, akran incelemelerinin ve kişisel zamanlarında bağımsız öğrenmeye kendini iyi bir şekilde ödünç vermeyen yoğun bir yaşamın ürünü olmasının kesinlikle imkansız olduğunu mu düşünüyorsun? Bakım yapmamak, kablolu bir kişilik özelliği değildir, kişinin çevresinin bir ürünüdür ve değiştirilebilir. Değil bilerek değişime daha kolaydır, ama yine de diplomasinin bazı düzeyde yaklaşılması gerekmektedir.
Aarona

1
@Aaronaught, ya bir ilham kaynağı olmak için sefilce başarısız oldun (dışlanamaz) ya da ilham almak istemiyor. Size şu anki işinizden çok daha akıllı olduğunu söyleyen daha genç bir meslektaşı olsaydı, ünite testlerinizi Lisp veya Haskell'de kodlamayı düşünür müsünüz?

Yanıtlar:


10

Başlangıç ​​noktası kitlenizi tanıyor . Bunu zaten anlamış görünüyorsunuz, çünkü küçük bir iş arkadaşına mentorluk yapmakla kıdemli bir iş arkadaşını etkilemek arasındaki farkı biliyorsunuz.

Bu kişiyi neyin motive edeceğini bulmanız gerekiyor. Eski bir farede (benim gibi) çalışan şey, eski fareniz için çalışmayabilir.

Başkalarına rehberlik etmeyi / öğretmeyi seviyorsa, "neden bu şekilde yapıyorsunuz?" Gibi sorular sorarak bir konuya yaklaşabilirsiniz. Bu, ondan daha yeni yaklaşımları değerlendirmesini ve fikrini vermesini isteyebileceğiniz bir diyaloga girebilir.

Bu işe yaramazsa, benimsemesini istediğiniz uygulamaları veya stilleri kullanarak önlenebilecek hataları işaret edebilirsiniz. Bu çok daha fazla iş gerektiriyor, çünkü hataları bulmanız ve teşvik etmek istediğiniz davranışların nasıl yardımcı olacağını göstermeniz gerekiyor.

Başkalarına yardım etmeye istekli görünüyorsa , yeni başlayanlara yardım etme arzusuna itiraz edebilirsiniz . “Bugün çocukların” kodlama tarzını görmeye alışık olmadıklarını ve bundan dolayı kodlarını kırma ihtimallerinin daha yüksek olacağını açıklayın.

Bazen onun yüzüne girip sorunu zorlamanız gerekebilir . Bu savaşları dikkatlice seçmelisin. Ona daha iyi bir yolun olduğunu kanıtlayabileceğini bildiğin bir konuyla başladığından emin ol.


Bunlar iyi genel stratejiler gibi gözüküyor. Bunun sadece VB6 yaşında, COBOL yaşında olmadığı konusunda net olmalıyım. Belki 20-30 yıl değil, 5-7 yıl geride. Yani bir moruk / dinozor değil.
Aarona

1
"Neden böyle yapıyorsun?" Diye sormuyorum. Bunun olumsuz bir etkisi olabilir - onu hemen savunmaya sokmak. İş arkadaşı basitçe bilmiyor olabilir ve onun cahil hissetmesini istemiyor olabilirsiniz. Bunun yerine, "Bu yöntemi düşündünüz mü?"
IAbstract

@IAbstract Öğretmeyi seviyorsa, savunmaya girmez, öğretme fırsatından yararlanır. Ton ve tutum büyük bir fark yaratacaktır. Sorunun sonuna kolayca "Idiot" ekleyebiliyor gibi görünüyorsanız, doğru yapmıyor musunuz? :-) Deneyimlerime göre, çoğu insan samimi soruları yanıtlamaya hazır.
jimreed

@IAbstract: "Burada bağımlılık enjeksiyonunu düşündünüz mü?" Cevap "ha?" olurdu. Elbette hoş bir şekilde şaşırmış olma ihtimalim var, ama Jim'in haklı olduğunu düşünüyorum, " FooBurada dünya çapında bir nesneyi kullanmaya nasıl karar verdiniz ?" Diye sormak daha iyi bir konuşma başlatıcı. Bir saldırı olarak yorumlandığını öngörmüyorum; Mevcut tasarımı anlamaya çalışıyorum.
Aarona

@Aaronaught: yeterince adil;) DI'ye verilen tepki "huh" olabilirken, "peki, bunu duydum ama ..." gibi ilginç bir sohbete yol açabilir. (jimreed'in işaret ettiği gibi) Kesinlikle, jimreed'in dediği gibi, savaşlarınızı seçmek zorundasınız - bazen büyük bir sopa taşımak, bazen kum havuzunda birlikte oynamak demektir.
IAbstract

4

Bence doğru davranışa sahipsin. Sadece söylediğiniz tüm güzel şeyleri söylediğinizden emin olun - Büyük problem çözme becerileri, işi suberb gibi kavrayın, ve ondan grubun mevcut standartlarını göstermek için zamanının birazını isteyin kullanmak ve ona bazı sorular sorma şansı vermek.

Bir araya geldiğinde ona bir kahve getir ya da bir şeyler getirin ve standartlara göre çalışmanın mevcut kodunuzu desteklemesini kolaylaştırarak ve aynı zamanda birinin yardım etmesini kolaylaştırarak, onun için daha kolay hale getireceğini bilmesini sağlayın. iş yerindeyken (yalıtımlı çalışan biri için büyük bir artı) vb.

Nişanlandığından ve yaptığınız şeyleri neden yaptığınızla ilgili iyi açıklamalar aldığından ve neden yaptığı şeyleri yapmaması gerektiğine odaklanmadığınızdan emin olun, gerekiyorsa başkalarını da getirin ve size açıklamasını sağlayın. Herhangi bir sorunuz varsa ve standartlarınızdan örnekler için başvurabileceği birkaç yerden devam ederse, kendinizi daha sonra kullanıma sunun.

Bundan sonra ilgilenmiyorsa, bağladığınız ilk soruya başvurabilirsiniz.


4

Bu gerçekten senin yöneticinin işi.

  1. Şirketin bir kodlama standardına sahip olması gerektiğinin farkına varın . Her ne kadar profesyonel olursa olsun, şirket büyüklüğü ne olursa olsun buna sahiptir.
  2. Herkesin bir arada oturmasını sağlayın ve standart bir çalışmaya başlayın. Bu şekilde, herkes kendi sözünü alabilir ve standardı takip etmek için daha fazla motive olurlar.

Yöneticiniz bunu kendi başına anlamazsa, işleri için nitelikli değillerdir. Ve eğer öyleyse, onlara yukarıdaki ikisinin üzerinde biraz dürtme vermelisin. Bir kodlama standardına sahip olmanın avantajları çok fazla, bir tanesine karşı hiçbir argüman yok. (Bazı programcılar “sanatçı” olduklarını düşünüyorlar ve profesyonelliğin sınırları ile sınırlandırılmamalılarsa, bunun yerine güzel sanatlar yapan bir iş bulmalılar.)

Kodlama standardı kendi içinde, her şeyden önce tehlikeli uygulamaları ve tehlikeli kütüphane işlevlerini yasaklamaya odaklanmalıdır. Kullanmakta olduğunuz dilin daha güvenli ve daha saf bir alt kümesine doğru çalışın. Kodlama standardını "kodlama stilinden" uzak tutun, çünkü kodlama stilinin kararlaştırması çok daha zor ve neredeyse hiç önemli değil. Bir şirketin bir kodlama standardı oluşturmaya karar vermesi oldukça klasik bir şey ve hemen ardından {} ayraçlarını nereye yerleştireceğine dair hararetli bir saçma tartışmada sıkışıp kalıyor.

Başvuru için, MISRA-C / C ++ ve CERT C / C ++ / Java standartlarının nasıl yazıldığını kontrol edin.


Bu, dikey yapıya sahip bir yazılım yayıncısı için çalıştığım (yanlış) varsayımı yapıyor. Geliştiricilerin% 10'undan daha azı yazılım yayıncıları için çalışmak ve öyle değil mutlaka micromanage bir yönetici veya orta yöneticisinin sorumluluğu geliştiricileri.
Aaron

2
@Aaronaught Peki, o zaman problemin gerçek kaynağı budur. Diğerlerine liderlik etmek ve rehberlik etmek için bir kodlama standardı ve en az bir deneyimli programcıya sahip bir takım değilseniz, bu kötü bir organizasyondur. Herkes, "sanatçılar" olduğunu düşünerek, sıradan, dengesiz, elde edilemez sonuçlarla ortaya çıkacak ve nasıl geliştirileceğini öğrenmeyecek şekilde rasgele kod yazacak.

2

Öncelikle bu kişileri çalışma şeklini değiştirmek istediğinizi NEDEN açıklığa kavuşturmanız gerekir. Eğer sadece estetik nedenlerden ibaretse, yeniden düşünmelisin, çünkü bu kişi çalışma şeklinin gerçekten işe yaradığını gösterdi.

Bununla birlikte, bunun teknik bir nedeni varsa, adı geçen kişiye şöyle bir şeyle yaklaşmayı düşünmelisiniz:

Sizin için sıkıcı zamandan ve şirket için paradan nasıl tasarruf edebileceğinize dair bir önerim var. İlgileniyor musun

Bunun düşük asılı meyveler olması gerektiğine dikkat edin çünkü büyük olasılıkla her zaman ekstra çaba gerektiren mevcut alışkanlıkların değiştirilmesini gerektirir.

Milyarlarca öneriniz olsa bile, bir veya iki tanesini seçin ve bunun daha iyi bir değişiklik olacağını gösterin .

Bu ya işe yarayacak ve size daha fazla öneriniz olup olmadığı sorulacak ya da olmayacak ve hasar bir ya da iki öneriyle sınırlı olacak.

Bunun başarılı olmasının çok önemli olduğunu ve çabucak yaptığını unutmayın.

Ayrıca dikkatli olmalısın. Bir şeyleri olduğu gibi yapmak için çok iyi nedenler olabilir , ancak nedenini görememek için çok yeni olmanız gerekir. Bu nedenle, yaşlılara saygılı olun ve önerinizin daha iyi olduğunu varsaymadan önce sorun. Bir iki şey öğrenebilirsin.


Yapıcı cevap için teşekkürler - ilk paragraf olmadan yapabileceğini düşünüyorum rağmen.
Aarona

@aaronaught, üzgünüm, ama aslında oldukça önemlidir.

Hayır, gerçekten önemli değil. Tamamen farklı bir soruya cevap veriyor ve ben bunun konuyla ilgili olmadığını gösteren birkaç açıklayıcı yorum ve düzenleme yaptım. Bu sitede bulunan kullanıcıların yetersizlik (ve çoğunlukla sadece bu site) sorusunu ayırmak için "Meli I" den "Ben nasıl" olduğu aktif zararlı burada söylem genel kalitesini ve uyumunu. Uyarınız geçerli, fakat konu dışı ve biraz rahatsız edici. Bu konuda oldukça yüksek oy verilmiş bir meta soru bile var .
Aaron

1
@aaronaught, bu kişileri kodlama stilini değiştirmek istemeniz için tek neden, takımın geri kalanından farklı olması ve ardından tarzını kendinizin daha iyi olduğunu belirten bir şekilde belirtmeniz. Bu yüzden benim yorumum. Geçerli kodlama stilini kod üssünüzde kabul edemiyorsanız, onunla kişisel bir toplantı yapın ve bunu söyleyin ve kodunun nasıl olması gerektiğini öğrenmesine yardımcı olmak için büyük bir çaba göstermeye istekli olun.

1
@Aaronaught, ilk paragraf olmadan yapabilecek biri için, şaşırtıcı bir şekilde ifade edici ifadeler tercihinizi buluyorum. Başkalarına acınası demenin takip etmek için bir örnek olduğunu düşünüyor musunuz?

1

Durumun çok daha hızlı bir şekilde kötüye gitmesine neden olacağı için , yüzünüze girmenizi ciddiye almanızı şiddetle tavsiye ediyorum. Bunun son çare önlemi türü olarak ortaya çıktığını anlıyorum, ancak deneyimlerime göre, geliştiricinin işlevselliği katılmaktan vazgeçti.

Konuyu zorlamak, bireyi her hareketinizde savaş ettikleri bir düşmana dönüştürebilir. Bu gerçekten olumsuz bir takım etkisine sahip olacak ve biri istifa etmeden veya kovulana kadar bitmeyecek.

Eğer bu kişi gerçekten ihtiyaç duyduğunuz / istediğiniz alan bilgisine sahipse, bu bilgileri belgelemelerini isteyin.


1
-1 Soru halihazırda OP'nin buna karşı bir şekilde yaklaşma niyetinde olmadığını belirtmektedir. Lütfen OP'nin sorusunu baştan sona okuyun ve konuyu genel olarak tartışmak yerine, bu soruyu yanıtlayın .
HedgeMage

1

Ona nazikçe kırmakla başlamak: Ne kadar deneyimli ve ne kadar iyi tecrübeli ve geri bildirimde bulunduğunuzu bilmiyorum. Bunları zaten biliyor olabilir, istihdam edebilir veya hatta reddettiniz, ama yine de devam ediyor. Birinin davranışını değiştirmek istediğinizde geri bildirimde bulunma konusunda bazı yönergeler vardır. Düşündüğüm konuşma yapısı ve hala geri bildirim vermek istediğim durumlarda da çalışmaya çalışıyorlar (çalıştıkları için):

  1. Gördüğünüz davranışı tanımlayın. Bu somut davranış olmalı. Örnek: "Kodunuzda çok fazla statik değişken kullandığınızı görüyorum"
  2. Bunun sizi / ekibinizi nasıl etkilediğini açıklayın. Örnek: "Böyle bir kodu bakımı zor buluyorum"
  3. Bir Teklif makul bir çözüm. (olası çözümler diğer cevaplarda belirtilmiştir ve bu cevabı daha sonra kendime dayacağım.)
  4. Ona çözümü tartışması için fırsat verin. Ona çözüm hakkında ne düşündüğünü sor. Cevabını yüz değerinden al. Ona fikrini verdin, ve kabul edip etmemekte özgür. *

Örneğin, geri bildirim ile ilgili hızlı bir kaynak, http://managementhelp.org/communicationsskills/feedback.htm adresinde bulunabilir (web üzerinde bu tür şeylerin bir kısmı olmasına rağmen)

Şimdi çözüm bölümünde, cevabınızda okuduklarımdan itibaren çok zeki ve doğru zihniyetine sahip olduğumu biliyorum, ancak modern iyi uygulamaların hemen arkasında. Bunlar, kendileri hakkındaki asıl öğrenmelerden ayrı olarak, ilk başlarda ustalaşmak için zaman ve çaba gerektirir, bu yüzden ona bunu yapma fırsatı vermek zorunda kalacaksınız. Bu muhtemelen, öğrenme kaynaklarını (web, dergi, kitaplar, her neyse) bir başlangıç ​​noktası olarak toplamak ve ona araştırması için boş zaman kazandırmak demektir. Her cuma öğleden sonra, ufkunu programlama tarzında genişletmek için verdiğini hayal edebiliyorum, bu hedeflere ne kadar inanırsa yapsın. İnsanlar doğal olarak kendilerini geliştirmek isterler. Materyalleri ve zamanı sağlayın, bundan faydalanacaklar.

Muhtemelen en önemlisi, bir gecede değişiklik beklemeyin. Uzun zamandır yoluna devam etti ve muhtemelen bu konuda oldukça başarılı oldu. İşlerin yeni bir şekilde yapılması iyi bir zaman alacaktır ve bir süre yeni muhtemelen çok fazla değer görmeyecektir, çünkü başlangıçta hiçbiri yoktur. Eski yolu muhtemelen bir süreliğine daha etkili olacak.

* Not: Sohbetlerle ilgili komik olan şey, modellemesi çok zor olmasıdır. Kendilerine ait bir yaşamları var, bu yüzden kağıda hoş görünmesine rağmen, biraz çamurlanma eğiliminde.


0

İşlerin nasıl yapılmasını istediğinizi açıklayın ve projenin başlangıcında proje üzerinde yaptığınız tasarım ve mimari seçimlerle nasıl çalıştığını gösterin. Bire bir (ve özel olarak) oturun ve önceki kodlamasında gördüğünüz sorunları ve neden bu proje için bir sorun olduğunu açıklayın. Ona daha iyi olması için neye ihtiyaç duyduğunu sorun, ancak iyileşmemenin bir seçenek olmadığını açıkça belirtin.

Ardından, çalışma yöntemlerini ayarlamasını sağlamak için kod incelemesini bir araç olarak kullanın. İlki için iyi bir uzun zaman planlayın ve bunu neden tercih ettiğiniz hakkında gerçekten konuşun ve nedenini açıklamasını sağlayın. Onu gerçekten duyduğunuzdan emin olun, insanlar endişelerinin giderildiğini düşündüklerinde değişime daha açık hale gelir. Planlamanızda (ancak ona bunu söyleme) ilk görevde tekrar çalışmasını bekleyin ve ekibinizin standartlarını karşılayana kadar kabul etmeyin. Ne beklediğinizi ve zamanın çıkarlarına kaymasına izin vermeyeceğinizi bildikten sonra, muhtemelen çalışma biçiminize dönecektir. Ancak, kod gözden geçirmeyi birkaç yinelemede eğitim aracı olarak kullanabilirsiniz. Çalışmaları sizin standartlarınıza uygun hale getirinceye kadar kabul etmemek konusunda kötü olmanıza gerek yoktur, ancak bu konuda kararlı ve tutarlı olmanız gerekir. Don'


-1

64.000 dolarlık soru, projelerini zamanında teslim edip işlevsellik gereksinimlerini karşılayıp karşılamadığıdır. Eğer öyleyse, doğru yapıyor. Yazılım geliştirmede nesnel bir doğru veya yanlış yol yoktur. Nihayetinde sorunların çözümü hakkında. Ve eğer problemler müşterinin / müşterinin memnuniyetine göre çözülürse, tanım gereği yazılım geliştirme doğru şekilde yapılır.

Onun projeler eğer tabii tamamen farklı bir sorun haline öyle tamamlanırken. Bu noktada, denetçileriniz tarafından, belki de girişinizle ilgili değişiklikler yapmanız gerekir. Ancak kişisel kodlama estetiği duyunuzu ihlal etmesi ya da günümüzün geleneksel bilgeliği, yaptığı şeyin 'yanlış' olduğu anlamına gelmez. Sen 'iyi kod' tanımının hakemi değilsin. Sonuçta, kodunuz hakkında düşük fikir sahibi olabilir.

Yani ... aslında onun çalışmalarıyla ilgili bir sorun olmadığı sürece (ki bunun olmadığını belirtmişsinizdir), bir şey yapmayın. Başarılı bir geliştirici olmanın bir kısmı, kodunuzu diğer geliştiricinin stilleriyle birleştirmeyi öğreniyor.

Ne de olsa buraya gelebilir ve projeleri bitirmekten ziyade hevesle ilgilenen daha az deneyimli bir geliştiriciyle başa çıkma konusunda benzer bir soru yayınlayabilir. Her şey bakış açısı ile ilgili.


2
Bu nedenle, şirketin farklı bir bölümünden geldiğine işaret ettim. O toplantı hiçbir sorun vardı onların ihtiyaçlarını, ancak onların gereksinimleri değil bizim gereksinimleri. Spesifik olarak, onların gereksinimleri CRUD'dan daha gelişmiş değildi. Ve evet, orada olan koduyla ilgili bir sorun; izolasyon açısından iyi çalışabilir ancak entegrasyon, performans veya güvenilirlik testlerini geçemez. XP ya da TDD gibi katı metodolojilere ya da her şeye inanmıyorum, ancak bu bir estetik ya da geleneksel bilgelik meselesi değil, bu bir bakım gereksinimi sorunudur.
Aaron,

3
Ayrıca, yukarıdaki nedenlerden dolayı bunu reddediyorum, ancak birkaç hatalı varsayımda bulunduğunuz için. (a) Daha az deneyimli değilim, (b) Bahsettiğim şeylerin hiçbirine haklı olarak "heves" denmiyor ve (c) bu en açık saçma varsayım değil - o en üretken geliştirici değil Takım ve kesinlikle benden daha üretken değil.
Aarona

Ne ürettiği ile ilgili bir sorun varsa , dediğim gibi , bu sizin süpervizörünüz veya ortak süpervizörünüzün kim olduğu ile ilgili bir sorun. Ancak, müşteriye / müşteriye sunduğu şeylerle ilgili bir sorun olmadığını göstermediniz, yalnızca size sunduklarını beğenmediniz. Demek istediğim bu senin için bir yazılım yazmıyor. Bu yüzden, bir kargaşaya neden olmadan önce, senden daha az mahrum olmadığından emin olacağım
GrandmasterB

Bir süredir sektörde bir süre dolanıyorum ve evet, bugünün en iyi uygulamalarının yarın VB6 tarzı kötü uygulamaların olduğunu anlayacaksınız. Aşağı oylama gelince, çekinmeyin, çekinmeyin. Ben sadece yayınlanan soruya cevap veriyorum. Vermediğiniz detaylara cevap veremiyorum.
GrandmasterB

1
Özgeçmişini bilmiyorum, iş arkadaşlarının özgeçmişlerini de bilmiyorum. Sadece soruna ne koyduğunu biliyorum. Önemli bir bilgi olsaydı, eklemeliydin. Ve diğer cevaplara verdiğiniz cevaplara dayanarak, biraz dışarıda kaldığınızı düşünebilirsiniz, bu nedenle cevap verenler hakkında çok fazla varsayımlar gerektirir. Ancak bir cevap istiyorsanız, onun şefi, amiriniz veya ortak amirinizin sorununu karıştırıp karıştıramayacağınız konusunda endişelenmediğinizi varsayalım. Sınamada soruna neden olan kodu reddetmeniz ve sorunun iş arkadaşınıza ne olduğunu bildirmeniz yeterlidir.
GrandmasterB

-1

Üst düzey bir geliştiriciyle konuşurken küçük bir geliştirici olarak, ona kendisinden daha iyi fikirlerle yaklaşmayı denemek çok riskli.

Bununla başa çıkmanın en iyi yolu, patronunuzu daha iyi bir uygulama konusunda ikna etmeye çalışmak ve tüm kodun belirli standartlara uyması gerektiğine ve akran kod incelemeleriyle bu standartlara uygulanması gerektiğine dair bir karar verip getirmeyeceğini görmek.

İnsanların oldukça büyük bir kısmı (bilinçaltı seviyede olsa bile), kendi bilinçaltı hareketlerinden tamamen habersiz olsalar bile, hakaretçi, egoist ve savunucudur, değiştirmeye çalışırsanız ya da yanlış olduklarını ima ederseniz, hakaret ederler. herhangi bir şekilde.

Komuta Zinciri, gitmek için en güvenli yoldur çünkü patronunu dinlemek zorunda olduğu gibi, ondan da hoşlanmasına gerek yoktur. Patron kötü adam olsun, bunun için orada.

Patronu satamazsan ya da o da patrondur, o zaman onun böcekleriyle uğraşırsın ama SENİN kodunda örnek olarak yönlendir.


1
Bu istediğimden tamamen farklı bir soruya cevap veriyor. (a) Küçük bir geliştirici değilim, (b) patronum zaten önemli tasarım ve kod kararlarının çoğunu bana devrediyor, (c) kodunun arabası olduğu bilinmiyor, C # 'nun OOP'si için iyi yapılandırılmamış / işlevsel karma paradigma ve (d) sorumun özü, konuya, alınmayacak şekilde nasıl yaklaşılacağıydı .
Aaron

1
@Aaronaught, a) "Bu programcı benden biraz daha büyük" Bu ifadeden senin "küçük" olduğunu varsaydım. b) Teknolojinin başındaki ipucuna benziyorsa, soruna bu bilgiyi koymalısın, işleri önemli ölçüde değiştirirdi. c) En iyi uygulamaları takip etmiyorsa ve kodu buggy değilse, sorun ne? Neden ona bir şey hakkında yaklaşıyorsun? Kırılmayan şeyi düzeltmeyin. d) Yine kötü kalite koduna sahip hatalara neden olmazsa, ona yaklaşmayın. Asıl mesele, herkesin uyması gereken kodlama ve geliştirme standartlarına sahip olmamanız.
maple_shaft

(Açıkça) "silahla ateşleme ve paramparça kod incelemeleri yapma ve kesinlikle uygulamalı politikalar oluşturma" ya atıfta bulunmamın açıkça açıkça ima edildiğini düşündüm - neden bir çocukken bile ? Ve kim standartlarımız olmadığını söyledi? Daha önce ekibimizle daha önce hiç çalışmadı ve ben de bu konuda endişelenmeden standartları sunmaya çalışıyorum .
Aaron,

-1 Sorulan soruyu cevaplamadı.
HedgeMage

-1

Yapamazsın

Yazılım geliştirmede farkında olmadıkları şeyleri yapmak için insanlara ilham veremezsiniz. Bunu kariyerimde sık sık yapmaya çalıştığım için deneyimden bahsediyorum ve sonuçta her zaman kendi statümüm şirketin gözünde azalıyor; Hiçbir şey olmadığında, sadece çevremdeki gelişim kültürünü modern uygulamalara geliştirmeye çalışmaktan dolayı bile kovuldum ya da hayal kırıklığına uğradım.

Eğer meslektaşınız cahil olmasaydı onlara gösterebilirsiniz. Ancak, oldukları için, daha iyi kodlama uygulamalarını benimsemek için el işçiliği yapan yazılım konusunda yeterince yetenekli veya özenli olmadıkları için yapabileceğiniz hiçbir şey yoktur. Muhtemelen, denerseniz, ya görmezden gelirler ya da gerçekten anlamadan cüret ederler, hangi seslerden zaten yaptıklarını ("Deneme ve Hata Geliştirme" yani sadece hatalar duruncaya kadar kod çözme) .


4
Yanıtını takdir ediyorum, ancak bunu inanmak zor buluyorum, çünkü birkaç yıl önce tam da bu tür bir "sadece halletmek" programcısıydım. Kimse bana göstermedi - hepsini kendim keşfetmeliydim - ama yeterince ikna edici bir liderin (eğer biri varsa) aynı değişikliği yapabileceğine eminim. Sırf bazı insanlar tüm bu öğrenmek bağımsız mutlaka anlamına gelmez herkes başka bir kayıp nedenidir.
Aarona

2
Bu doğru, ancak deneyimlerime göre eğer insanlar gelişmeyi önemsiyorlarsa, ilham almak için çok az motivasyona ihtiyaç duyarlar, çünkü arzu zaten oradadır - bir dürtmeye veya tavsiyeye ihtiyaçları olabilir, ancak anlamak ve geliştirmek istiyorlar, sadece rehberliğe ihtiyaç duyuyorlar. Ben de aynıydım; Kötü şeyler yapmanın yollarını öğrendim ve “daha ​​iyi bir yol olmalı” diye düşündüm ve araştırmaya başladım. Düşündüğüm şey, iyileşmek istemeyen veya iyileştirmek isteyen insanlar , kaybedilen nedenlerdir, çünkü iyileştirmek istemezler. Bu, bana yanlış olduğunu kanıtlamakta bol şans :) dedi
Wayne Molina

1
Bence bunlar kanıtlanması gereken ifadelerdir. Bazı gerçek dünya deneyimlerini, başarısız bir şekilde denediğiniz şeylerle (ve neden başarısız olduğunu) duymakla (ve daha fazla istekli olmakla) kesinlikle ilgilenirim.
Aarona,

1
Bu bazen doğrudur, örneğin " eski köpek, yeni hileler " - tekniklerin veri alma verimliliğini% 800 oranında nasıl artırdığını ve iş arkadaşının omuzlarını silkiyor olduğunu açıklamaya çalışın.
IAbstract

2
Mesele şu ki, bunu yapabilirsin ve insanlar seni takip edecek, ama hiyerarşide daha üst sıralarda olman gerekecek. Çoğu takımda basit bir geliştirici olarak bunu yapamazsınız. Birçok meslektaşı yalnızca sıradüzeni daha yüksek olan birinden istenmeyen bir tavsiye alabilir. Aynı seviyedeyseniz, kendilerini incinmiş ve saldırıya uğramış hissederler. Unutmayın ki saygı kazanılmış. Onlara iyi davranır ve hoş ve hoş bir şekilde iletişim kurarsanız, aynı seviyedeyseniz de işe yarayabilir.
Şahin,
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.