Projede yeni olduğunuzda temel bir tasarım hatasıyla başa çıkmak [kapalı]


13

İçinde yaklaşık 30 geliştirici bulunan açık kaynaklı bir proje üzerinde çalışmaya başladım. Bazı döngü "döngü" almak ve projeye düzenli bir sapık haline bir yol olarak düzeltmek için çalışıyorum. Sorun şu ki, üzerinde çalıştığım hatalardan birine neden olan temel bir tasarım kusuru buldum. Ama bunu posta listesinde patlatırsam, kibirli olarak çıkacağım gibi hissediyorum ve bu konu hakkında yaptığım tartışmaların bazıları bazı insanlarla kafa karıştırıyor. Bunu nasıl yapmalıyım?

Yanıtlar:


20

Bunun "temel bir tasarım hatası" olduğundan emin olsanız bile, dışarıda olduğunuzu unutmayın. Orada iyi bir sebep olabilir. Ya da, projenin kaç yaşında olduğuna bağlı olarak, o zamanlar iyi bir nedenden ötürü oraya konmuş olabilirdi ve şimdi hala tarihsel nedenlerle varlığını sürdürüyor.

"Bunu posta listesinde patlatmak" yerine bir soru sormayı deneyin. Gibi bir şey:

"Hey, ben sadece X ile karşılaştım ve bu benim için bir anlam ifade etmiyor. Bunu uygulamak için doğru yol Y gibi olurdu, ama sonra tekrar burada yeni olduğumu biliyorum ve istemiyorum Herhangi bir sonuca atlayın. Bu tasarımda bir hata mı yoksa eksik olduğum bir şey mi var? Biri beni doldurabilir mi? Teşekkürler. "

Mühendislik, alçakgönüllülüğün hâlâ gerçek bir erdem olduğu düşünülen birkaç yerden biridir ve "bariz problemler" hakkında soru sormak, iyi yanıtlar almak ve yeni şeyler öğrenmek için gerçekten iyi bir yoldur.


2
Bu kesinlikle doğru yönde. Sadece "yanlýţýný biliyorum ve haklýyým" olarak ortaya çýkmayacak ţekilde yapmak istiyorum.
Matt Phillips

@Matt: O zaman bunu "Haklı olduğumu bilmiyorum" olarak ifade edin ve kulağa alaycı veya suçlayıcı gelmesini önlemek için elinizden gelenin en iyisini yapın.
Mason Wheeler

"Neden bu şekilde yapıldığını anlamıyorum. Bunu başka şekilde yapmak daha iyi / daha kolay / daha soğuk olmaz mıydı? Ben de hata XX ile de yardımcı olacağını düşünüyorum"
Javier

2
Sanırım doğrudan "bunu uygulamanın doğru yolu Y olur" demek yerine ifadelerle oynamak isteyebilirsiniz. Saf bir soruya çevirmek, "Y'nin kullanılmamasının herhangi bir nedeni var mı?" Herkes kendi kodları hakkında sorgulandığında ve uzmanlıklarına itiraz ederek (neden Y yerine X'i seçtiniz) biraz kırılgan bir egoya sahip olacak (Y, X'ten daha iyi / daha serin / daha serin / daha kolay) daha olumlu bir yanıt verebilir.
Steven

6

Biri Gücü 48 Kanunlar :

İşlemlerinizle Kazanın, Asla Tartışma ile

Argüman yoluyla kazanıldığını düşündüğünüz herhangi bir anlık zafer gerçekten Pyrrhic bir zaferdir: Karıştırdığınız kızgınlık ve rahatsızlık, herhangi bir anlık görüş değişikliğinden daha güçlü ve daha uzun sürer. Tek bir kelime bile etmeden başkalarının eylemlerinizde sizinle anlaşmasını sağlamak çok daha güçlüdür. Gösterin, açıklamayın.

Bu anlamsız tartışmalardan sonra zor yoldan öğrendim.

Bu özel durumda, çalışması gereken ancak bu tasarım hatası nedeniyle olmayacak çok basit ve belirli bir kod parçası ile gelmenizi tavsiye ederim. Eski deyişe göre, "Derleyici / tercümanla tartışamazsın".

Diğer bir şey, bir grup üzerinde etkili olabilmek için grubun bir üyesi olarak algılanmanızdır . Şirkete katılmış olsanız bile, insanlar sizi henüz grubun bir üyesi olarak algılamıyor. Böylece, sizi bunlardan biri olarak algılamayı öğreninceye kadar yerleşik grupla birlikte gitmek daha iyi olabilir.


5

Belirli bir tasarımın neden kullanıldığını sorabilir misiniz? Bu şekilde arka hikayeden daha fazlasını elde edebilirsiniz, çünkü bilmediğiniz bir şeyin seçilmesinin bazı iyi nedenleri olabilir. Tasarımı ayırabilecek uzman değilsiniz, ancak daha fazla bilgi edinmenin bir yolu olabilir, böylece sonunda bu mesajın görülmemesi için bulduğunuz kusur hakkında soru sorabilirsiniz. alev yemi veya trolling olarak.


4

Muhtemelen bundan hoşlanmayacaksınız ... ama işte gidiyor ...

Bazı döngü "döngü" almak ve projeye düzenli bir sapık haline bir yol olarak düzeltmek için çalışıyorum. Sorun şu ki, üzerinde çalıştığım hatalardan birine neden olan temel bir tasarım kusuru buldum.

Hayır, hayır. Eğer yapsaydın, bu kadar tereddüt etmeyeceksin. Kendinizin "temel tasarım hatası" ndan emin olmadığınız gerçeği, bir tanesini keşfetmediğiniz anlamına gelir. Başkasının hatasını belirtmeye çalışırken, üstünlük belirtenleri ("temel" gibi) kullanmanız için arkadaş satın almaz.

Keşfetmiş olabileceğiniz şey, yaşadığınız sorun için biraz daha iyi bir tasarımdır. Muhtemelen iyice test etmelisiniz - projede yeni olduğunuz için, neden bahsettiğiniz hakkında hiçbir fikriniz olmadığı için şanstan bile daha iyi.

Ama bunu posta listesinde patlarsam küstah olarak çıkacağımı hissediyorum

Buna "temel tasarım kusuru" diyoruz, kesinlikle kibirli görünecektir. Bu nedenle , bunun bir hata olabileceğine işaret etmek bile en iyi fikir değildir. Bunun bir sorun olduğunu bilmiyorsanız (ve destekleyebiliyorsanız), tamamen anlayana kadar alçakgönüllü sorular sormanız ve araştırma yapmanız gerekir . İkna etmeye çalıştığınız kişiden daha iyi.

... ve bu konu hakkında yaptığım bazı tartışmalar bazı insanlarla kafa karıştırıyor. Bunu nasıl yapmalıyım?

Dur. Bu ahlaki bir mesele değil ve kimseyi öldürmüyor (sanırım). Projenin uzun vadeli bir üyesi olmak istiyorsanız, bunları sorgulamadan önce güven kazanmalısınız. Hataları düzeltin, inanılmaz bir iş yapın (grup değerlerine göre ölçütlere göre), birkaç özellik tasarlayın ve masaya oturun.

Daha sonra, parmakları işaret etmeden veya kırılmış bir şey çağırmadan, gruba tasarım geliştirmek için alçakgönüllü bir öneri getirin. Ve tüm sonuçları ve bunların çözümlerini düşünmüş olsanız iyi olur, yoksa "saf" olduğunuz için vurulursunuz. Tasarımınızın neden daha iyi olduğu konusunda tartışmaya hazır olun. Kaybetmeye ve incelikle kaybetmeye hazır olun.

Fikriniz gerçekten daha iyi ise, ya grup tarafından kabul edilir (belki de orijinal tasarımcı tarafından olmasa da), grup umursamaz ya da grup aptaldır. Her iki durumda da, neden grubun bir parçası olmak istesin ki?

...

Eğer yetenekli iseniz, alternatif sadece lanet şeyi o kadar parlak bir şekilde kodlamaktır ki, kodlama becerinizde şaşkınlıkla titreyecekler ve tasarımınızın zarif sadeliğini ve ebedi gerçeğini kabul etmekten başka seçeneği yok. Geliştiriciler yapmak saygı yetkinlik, ama dikkatli olmak zorunda - beceriksizlik (veya yersiz kibir) için ceza yerine şiddetlidir. Bu soruyu sorduğunuz için, parlak ve utanmaz kibir yolunun gerçekten bir seçenek olmadığını tahmin ediyorum. ;)


2
"Merhaba, beni evine davet ettiğin için teşekkürler. Kapıdan geçerken, ailedeki herkesin bebeklerinin çirkin olduğunu ve birinin onu komik giydirdiğini bilmesini istiyorum."

Bir böcek bir hatadır ve buna böyle bir şey diyebiliriz. Bunun bir "tasarım kusuru" ndan kaynaklandığını söylemek, önünüzdeki adama bir parmak işaret ediyor (en çok "baba" dan hoşlanıyor) ve ona aptal olduğunu söylüyor.

Gereksiz ve verimsiz. Öneririm:

Diyerek şöyle devam etti: "#blah sorunuyla ilgili olarak, XY ve Z yaparak düzeltebilirim, ancak bunun projenin geri kalanını nasıl etkileyeceğinden emin değilim. Bu iyi olur mu?"

Burada XY ve Z sorunu düzeltir. Size bir tasarım hatası olduğunu söylesinler; alternatif bir çözüm olabilir. Ya da 'kusurun' arkasındaki varsayımlar, proje boyunca o kadar derine inebilir ki, onu değiştirmek hatayı düzeltir, ancak her şeyi kırar!

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.