SVN'in kavramsal temellerini öğrenmeye kendini kıdemli olarak gören bir takım arkadaşını nasıl ikna edersiniz? [kapalı]


40

Bazı geçmişe başlamak için, bu yaz yeni bir geliştirici pozisyonu aldım ve takımın en yeni üyesi oldum, ancak çoğu kemerin altındaydı.

Şimdiye kadar düşük kabul maliyetlerinden (zaman ve çaba açısından) akıl sağlığı girişimlerini yeterince kolay bir şekilde zorlamayı başardım. Ancak işler biraz yükseldi.

Takım arkadaşlarımdan biri, deneyimli olmasına rağmen, SVN'yi gerçekten anlamıyor. Doğal olarak, zihinsel haritasında SVN okyanuslarını betimleyen boş alanlar onun oldukça garip kullanım biçimlerini benimsemesine neden oluyor.

Örneğin, "geliştirici başına günde 1 SVN işleme kararlılığı" politikası ilan etti çünkü aksi halde "sunucu yakında disk alanı tükenecekti". SVN’nin taahhütlerinin tam kopya olmadığını, delta olduğunu açıkladığımda, şüphe ile cevap verdi ve bugün bile ne anlama geldiğini anlayabildiğinden emin değilim.

Ayrıca, Ecnse .projectkonfigürasyonunun SVN'ye dahil edilip edilmeyeceği konusunda da ateşli bir tartışma yaptık . Takım arkadaşım, çok sayıda anlamsız çatışmaya neden olmasına rağmen, ısrar etmemiz konusunda ısrar etti. Bireysel geliştirici yapılandırma dosyalarını SVN'de tutmamaya karşıydım. Sonunda, takım arkadaşımın “kaynak havuzuna işlenen kodun” sadece yapıldığından emin olmak için her kaynak ağacın tamamını yeniden kontrol etme uygulaması olduğu ortaya çıktı. Proje konfigürasyonunu SVN'de tutmakta bu kadar kararlı olmasının sebebi buydu - bu yüzden projeyi yeniden almak kolay olurdu. Teslim etmenin çalışma kopyasını tekrar kontrol etmeyi gereksiz kılan uzak bayt bayt ile senkronize ettiğini açıkladığımda, ekip arkadaşım tekrar şüpheyle cevap verdi ve sonunda tüm konuyu önemsiz olarak salladı.

Bence ekibimiz, yalnızca SCM ile paylaşılması gerekmeyen geliştiriciye özgü ayarları içeren proje yapılandırma dosyalarındaki SVN çakışmalarını çözerek zaman harcıyor. Tüm bu karışıklık, çünkü birileri süreci yanlış varsayımlara göre uyarladı.

SVN'nin temellerini daha iyi anlaması için kendini kıdemli olarak gören bir takım arkadaşını nasıl ikna edebilirim?


5
Sürüş Teknik Değişikliğini okudunuz mu? İlgili olabilecek Pragmatik bir Programcılar kitabı. Bu belirli insan gruplarının üstesinden gelmek için değişikliklere ve tekniklere karşı çıkan insan kalıplarını sunar. Hala okuyorum ve şimdi yanımda yok, bu yüzden alıntı yapamıyorum, ama bu senin probleminle alakalı.
Thomas Owens

@MarkTrapp - Yukarıdaki yorumların çoğu gerçekten soru konusu ile ilgili değil. Çatışmaların nasıl ortaya çıktığını ve bir tür savaş olarak ortaya çıktığını açıklayan bir gizliliğe cevap olarak başladı. Biraz aşırı olduğu konusunda hemfikirim ama yine de tartışmalarımızı henüz tamamlamadık.
Cesur Anonim Korku,

@CourageousAnonymousCoward Tamam, bu yorumları daha sonra temizleyeceğim: tartışmaya sohbete devam edebilirsiniz . Dediğim gibi, sorular hakkındaki yorumlar, konuyu geliştirmekle ilgili olmayan konu dışı veya somut konuşmalar için değil, sorunun kendisi hakkında açıklama ve geri bildirim içindir. Teşekkürler ve programcılara hoş geldiniz!

4
Git ile tanıştır. "Hey, gelecek nesil SCM'ye bak". Git kavramlarını öğrendikten sonra SVN'yi anlamakta hiç zorlanmayacaktır. Bu (muhtemelen) zaten git kullanmadığı için daha az rahatsız edici gelebilir.
kizzx2

1
@CourageousAnonymousCoward, aynı şey üzerinde kontrol sahibi insanlar aynı fikirde olmadıklarında her zaman hayal kırıklığı yaratıyor. Bu tam olarak, daha fazla kontrol etme yetkisi olan bir liderin müdahale etmesi gerektiği durumdur. Sorun şu ki, ilgili kişilerin yardım istemesi zor. Takımın iyiliği için birileri sormalı.
GuyR

Yanıtlar:


30

IMO , projeye doğrudan sorun / zarar veren sorunları yalnızca bu geliştiriciyi etkileyenlerden ayırmak en iyisidir . Örneğin, her şeyi günde birkaç kez kontrol etmeyi tercih ederse, onu yavaşlatır, ancak başkalarını etkilemez. Böylece, bunu yapmasına izin verebilirsiniz (çalışmalarında gözle görülür bir performans düşmesi olana kadar) ve kendinizi tartışmanın zorluğundan kurtarın.

Bahsettiğiniz diğer konular, Eclipse .projectdosyalarını depoda tutmak veya günde 1 işlemek gibi, ekibin mümkün olduğunca sorunsuz ilerlemesini sağlamak için odaklanmanız gereken yerlerdir. Her şeyden önce, diğer takım üyelerinden geri bildirim istemelisiniz / toplamanız gerekir , bunun da onlar için de sorunlara yol açıp açmadığı. Başkaları varsa, birlikte daha fazla baskı uygulayabilir ve gerekirse yönetime yönelik bir sorunu daha kolay artırabilirsiniz.

"SVN disk alanı biterse" ile ilgili olarak, bir deney yaparak (potansiyel olarak ayrı bir test deposunda) inancını çürütmek kolaydır . Tek bir büyük metin dosyasında değişiklik yapmadan önce ve sonra fiziksel repo dosyası hiyerarşisinin boyutunu izlemeniz gerekir, hatta çok sayıda dosya. Bu onu ikna etmezse, hiçbir şey yapamaz.

Bu durumda, ne yazık ki, muhtemelen diğerinin onurunu yitirmiş bir kişi olarak "rütbede daha düşük olan" birinden tavsiyeyi kabul ettiğini gördüğü bir yetki probleminiz vardır. Bu tür çatışmalar mantıksal argüman ile çözülemez. Yönetime doğru yükseltmeniz gerekir, ancak bunu yapmadan önce (takım arkadaşlarından ve / veya yönetimden) yeterince destek aldığınızdan emin olun. Böyle bir hareket diğer adam tarafından açık bir saldırı olarak algılanabilir, bu nedenle sorunlu sonuçları olabilir (ikinize de ve / veya tüm takımın huzuru). Üç kere düşünün ve bu hareketi yapmadan önce destek arkadaşlarınızla tartışın.


2
Benim izlenimim, takım arkadaşımın bugüne dek yaptığı gibi devam etmek istediği ve rasyonel tartışma veya gerçeklerle gerçekten ilgilenmediği yönünde. Bununla birlikte, olumlu bir motivasyon kullanmak istiyorum, bir şekilde SVN'yi doğru kullanma konusundaki ilgisini arttırıyor gibi. Bununla ilgili bir tavsiyen var mı?
Cesur Anonim Korkak

5
@Anonymous, başkasının yeni şeyler öğrenmeye ilgisini arttırmak genellikle imkansızdır. IMO'ya doğru çaba gösterebileceğiniz en iyi şey, ekibin geri kalanını yeni bir şekilde benimsemek, bu adamın yol açtığı engelleri kaldırmak / etkisiz hale getirmek ve akran baskısı çalışmasına izin vermektir. diğerleri ile yukarı (en son diğerleri onun eski yolları hakkında şakalar yapmaya başladığında ;-)
Péter Török 11:11

4
@maple_shaft - Er .. Sanırım beni geçmişinden gelen birisiyle karıştırıyorsun. Buradaki sorun o, ben ve tüm ekibin, yalnızca paylaşılması gerekmeyen geliştiriciye özel ayarları içeren proje yapılandırma dosyalarındaki SVN çakışmalarını çözerek zaman harcıyor olmasıdır.
Cesur Anonim Korku

3
@AnonymousCoward svn yoksaymak her zaman bir seçenektir.
Christian P

3
@maple_shaft - Aynı sebepten dolayı eski takımınızın bir üyesinin Emacs kullanmasına izin verildi. Yaratıcı özgürlük bir şeydir.
Cesur Anonim Korku,

9

Şirketiniz wiki kullanıyorsa, SVN ile ilgili bazı kaliteli yazılar yazın:

  • Neden kullanmalısın?
  • Ne zaman kullanmalısın?
  • Hangi sorunları çözer?

vb.

CTO'nun dikkatini çekecek ve kullanmayı reddeden herkes kullanmak zorunda kalacak :)


5

Bir lider, yönetici ve ekip üyesi olarak, birçok düzeyde profesyonel ve kişilik çatışmalarını çözmekle uğraşmak zorunda kaldım. Hangi rolde olursam çalışayım, rol istemesem bile genellikle lider olarak kabul edilirim. Bunun nedeni bu çatışmalarla uğraşmam.

Buradaki insanların çoğundan farklı olarak, bu durumla başa çıkmanın "vazgeçme" veya "ona yeni bir araç göster" veya "poposuna veya hayal kırıklığına düşmesini bekle" olduğu konusunda hemfikir değilim. En önemlisi, roller daha kesin bir şekilde tanımlanana kadar beklemek asla iyi bir fikir değildir . Bu roller, beklemeyen insanlar, inançları, ahlakları ve insanları da dahil etmeseler de kritik durumlarla başa çıkma yetenekleriyle tanımlanır.

Bu durumlarda tanımladığınız kişi türüyle ilgilenmenin birkaç yöntemi vardır. İlk ve en önemli adım, neden olduğu gibi davrandığını araştırmaktır . Bildiği veya bilmediği şeyle ilgisi yok. Bu bilgiyi daha önce kolayca öğrenebiliyordu, bu yüzden soru gerçekten iki şeyden biriydi: "Neden olmasın?" veya "Neden sağladığı bilgiyi reddediyor?" Bu, tam olarak neyin ele alınması gerektiğini bulmada size yardımcı olacaktır.

Tecrübelerime göre, programcılar (kendim dahil) iyi uygulamaları veya yeni araçları birkaç nedenden dolayı reddediyorlar:

  • Kaynak güvenilir değil. Her geçen gün “Mac kültü” ile “MS tapanları” arasında kutuplaşmaya başlayan bir endüstride; "Açık Kaynak İdeolojisi" ve "Özel Pratiklik" ... vb. Arasında vb. güvenilir olarak doğrulandı.
  • Uzun Süreli Kötü Deneyimler ... benzer hatta aynı teknoloji veya uygulama ile. Başladığı zaman hiçbir şey mükemmel değildir ve birçoğu, sonuçlarının 1 / 4'ünden daha azıyla başlar. Kötü uygulanmış bir aşamada aşağı bir ürünle veya aynı ürünle çalışırken saatlerce, günlerce hatta haftalarca çalışması mümkün.
  • Bir "Güvenilir" Kaynak ... sunduğu bilgiyle çelişir. "İnanılmaz" derken, güvendiği bir kişi ya da varlık demek istiyorum. Birçok insan, güvendiğimiz insanları gerçeği temsil etmeyen seviyelere yükseltir. Bu kaynağın bile bu inancı empoze etmesi gerekmiyor. Çoğu zaman kendimiz yapıyoruz. Genellikle bize, en azından bir yönüyle benzemek istediği bir şey verir.
  • Güvenlik eksikliği Bu, önceki bir poster tarafından vurgulandı. Programlarımız üzerinde çalışmaya başladığımız andan itibaren varlık olur. Sadece çalıştığımız firmalara değil, birlikte çalıştığımız insanlara da. Bu sadece bir kontrol konusu değil. Bazılarımız, değer verdiğimiz şeyleri önemsediğimiz insanlara gösterebilmek istiyoruz. Bazılarımız dışardan bir kişi veya ürün tarafından zarar görmediğinden emin olmak istiyoruz. Bazıları için, düşündüğümüz ve hissettiğimiz şeyin bir uzantısı bile. Bazı felsefe ve ideolojilerimizi barındırıyor ve entelektüel çekirdeklerimizi ortaya koyuyor. Birçokları için, bir sınıf, işveren ya da müşteri için geleceğimizdir. Bazıları için hepsi bu. "Güvenlik" bu anlamda mutlaka veri veya kod için geçerli değildir.

Faktörün hangisi olduğunu bulmak oldukça kolaydır. Kişiyi nötr bir ortama sokun. Genel olarak, gözlemlediğiniz kişiye açıklayın. Dürüstçe bu davranışa neyin yol açtığını sorun. Şimdi, her zaman iyi gitmiyor, ancak çoğu yetişkin mantıksız davranıyor gibi görünen birine yardım etmek istiyor gibi göründüğünde oldukça iyi tepki veriyor. Olasılıklar mantıksız davranmıyor, ama gerçekte neler olup bittiğini kimse anlayamayacağının farkında değil.

Sorunun gerçekte ne olduğunu öğrendikten sonra, kendinizi bu sorunla başa çıkmak için uygun araçlarla donatabilirsiniz. Eğer 1 numaralı senaryo ise, araştırmasını güvendiği kaynaklardan yapması için teşvik edin ve (bu önemlidir)kendi bulgularıyla size geri dönelim. Bu ona kendi bilgisinin seninle değerli olduğunu söyleyecektir. 2. senaryoda, şimdi eskisinden farklı olanlarla doğru karşılaştırmalar yapın. Onu denemeye teşvik edin, ancak ters giderse bir yedekleme planı yapın. Senaryo # 3 için, kaynağını SİZİN bilginizle talep etmesini söyleyin. Muhtemelen kaynağı, onun düşündüğünü düşündüğü görüşü değil, bir zamanlar yaptığıdır. Çoğumuz zaman içinde adapte oluruz, bu yüzden bakış açısı muhtemelen değişmiştir. İstekli değilse, sizi kaynağına tanıtması için teşvik edin. Ve son olarak, 4. senaryo için, endişelerinin kendinize ait olduğundan emin olun. (Bir seviyede olmalılar) Bu "yeni" aracın çıkarlarını nasıl koruyabildiğini ve güvenliğini nasıl artırabileceğini gösterin. Ve yapamazsa,

Tüm bu sesleri çalışmak için çok basit biliyorum, ama bazen de öyle. Aslında, ne kadar samimi olursanız o kadar sık ​​yapar. İhtiyaçlarını ele alarak, takımın bir “kıdemli” olup olmadığına, çünkü ekibin bir parçası olduğu için ekibin ihtiyaçlarını ele alıyorsunuz. Ona, onunla aynı sayfada olmak istediğinizi göstermek, ancak basitçe değildir, onu sizinle birlikte çalışmaya başlaması için cesaretlendirebilir. Bunların hepsini yaptıysanız ve hala bir çözüme ulaşmadıysanız, o zaman takım lideri ile konuşamadığınız her şeyi yaptınız.

FuzzicalLogic


4

Kaynak kontrolü konusunda çok fazla batıl inanç var. Karşı sezgiseldir, matematik gizlidir ve bir yazılım şirketinin sahip olduğu en önemli varlığa sahiptir. İtiraf etmeliyim ki, hala güvenmeyen bir parçam var. Ama bir dakika onsuz yapmam.

Bir çözüm, repo ile ilgilenmek için sorumluluk almayı teklif etmek olabilir. Tabii ki, "sizin için çok fazla iş ve bu sadece bazı deneyimlerime sahip olduğum bir alan" olarak ortaya çıkarsa, sahip olacak "ne yaptığınızı bilmiyorsunuz" çalışmak için daha iyi bir şans.

Eğer "kendini kıdemli olarak görüyor" demek, benim düşündüğüm şey anlamına gelirse, bunu bir otorite ve kontrol kaynağı olarak gördüğü için bırakmayacaktır. Bu nedenle, sizin için geçici çözüm, mantıklı taahhüt birimlerini ve şubelerini yönetmek için Git'i yerel olarak kullanmak olabilir, ardından istediği gibi svn günde bir kez basabilirsiniz. Git, eşler arası bir sistem olarak tasarlandı ve her yerel makinede tam bir repo kopyası alacak şekilde tasarlandı. Bu şekilde yapmayı tercih eden diğer geliştiricilere git önerebilir ve bireysel çalışma gruplarının (bir veya daha fazla geliştirici, resmi veya geçici) dahili olarak kullanması SVN'nin bir eki olarak kalabilir. Ve gün geldiğinde, yaşlı adam konuşur, başka bir bölüme veya şirkete taşınır ya da SVN politikalarıyla kurtarılamaz bir köşeye boyarsa, hepsini temizlemeye başlayabilirsiniz.


Bu harika bir geçici çözüm!
Jay Godse,

Teşekkürler, @JayGodse. Git bunun için mükemmel, çünkü repolar bir sunucuya ihtiyaç duymadan gruplar tarafından paylaşılabiliyor. Ancak git forumlarda tartışılan bu tipik soruna tipik bir çözüm olarak kredi alamam.
kylben

3

Sadece onlarla konuş. Bak, ben kıdemli bir geliştiriciyim ama bilmediğim şeyler var. İşin niteliği budur. Savunma ya da saldırganlık kazanmaları durumunda, geliştirici ile kişilik problemi ortaya çıkar ve takım lideri ya da takım lideri ise patronları tarafından ele alınması gerekir.


Aslında onunla konuştum. Onun cevabı "5 yıl boyunca bu şekilde yaptık. Neden farklı yapalım?" İdi. Belli ki tehdit altında olduğunu hissediyor ama tam olarak neden korktuğunu ve nedenini anlamıyorum.
Cesur Anonim Korku,

1
@AnonymousCoward, sorusunu tatmin edici bir şekilde cevaplayamazsanız, bir anlamı vardır.

@ ThorbjørnRavnAndersen - Benim cevabım, ekibimizin yalnızca paylaşılması gerekmeyen geliştiriciye özel ayarları içeren proje yapılandırma dosyalarındaki SVN çakışmalarını çözerek zaman harcadığıydı.
Cesur Anonim Korku,

@AnonymousCoward ama bu soruyu cevaplayan cevap değil. SVN kullanmanın yararlarına dikkat edin. SVN ile ilgili bilgi eksikliği muhtemelen onu tehdit ediyor / güvensiz yapıyor.
Christian P

3
Daha iyi bir yol kullanmamalısın, çünkü hiç ihtiyacın olmadı demek IMO, bir programcının verebileceği en kötü bahane. Öyle olsaydı, hepimiz hala Meclis veya C yazardık çünkü "Neden farklı yapalım?" Bu bir bahane, geçerli bir nokta değil. Açık bir cevap, 5 yıl boyunca yaptıkları yolun açık bir şekilde verimsiz, etkisiz ve profesyonel olarak kabul edilen iş yapma yöntemlerinin aksine olmasıdır.
Wayne Molina

3

Kahverengi bir çanta inisiyatifi başlat, birkaç hafta sonra birisi öğle yemeği saatinde bir şeyler hakkında konuşur ve diğerlerine sunar.

Bunu SVN'yi ayrıntılı olarak sunmak ve belki bazı alternatiflerin arkasındaki düşüncenin bir kısmını sunmak için bahane olarak kullanıyorsunuz.

Birkaç hafta sonra başka biri gidebilir.


3

Size kişisel tecrübelerimin desteklediği bazı ipuçları vermeye çalışacağım.

Takım arkadaşlarımdan biri, deneyimli olmasına rağmen, SVN'yi gerçekten anlamıyor. Doğal olarak, zihinsel haritasında SVN okyanuslarını betimleyen boş alanlar onun oldukça garip kullanım biçimlerini benimsemesine neden oluyor.

Örneğin, "geliştirici başına günde 1 SVN işleme kararlılığı" politikası ilan etti çünkü aksi halde "sunucu yakında disk alanı tükenecekti". SVN’nin taahhütlerinin tam kopya olmadığını, delta olduğunu açıkladığımda, şüpheyle cevap verdi ve bugün bile ne anlama geldiğini anlayabildiğinden emin değilim.

Disk alanı bir sorun olsa bile, bir kerede çok fazla dosya işleyebilirdiniz, bu yüzden önerdiği şeyin yanlış bir çözüm olduğunu düşünüyorum. Ayrıca, büyük ikili dosyaları kontrol ederek çok fazla alan israf etmek mümkündür, çünkü SVN ikili dosyalar için deltaları saklamaz. Günde bir check-in yapmak da kötüdür çünkü sizi bir araya gelmeyen değişiklikler yapmaya zorlar; örneğin, günde birden fazla hata düzeltmeniz durumunda.

Şirketimizde benimsediğimiz çözüm, ikili dosyalar içeren tüm taahhütleri reddeden bir filtre olmasıdır. Giriş yorumunda özel bir anahtar kelime kullanarak taahhüdü zorlayabiliriz (SVN'ye ne yaptığımızı bildiğimizi göstermeliyiz). Bir veya iki yılda bir proje yöneticisi eski şubeleri arşivler ve bunları depodan kaldırır. Bu stratejiyle bildiğim uzay sorunlarımız yok (havuzumuz birkaç farklı projeyi destekliyor ve 100000'den fazla revizyona sahip).

Özetle, ona disk alanının önemli bir sorun olduğu konusunda hemfikir olduğunuzu söyleyebilirsiniz, ancak diğer taraftan, işaret edin

  1. monolitik günlük check-in yerine özellik ile ilgili check-in'lerin önemi;
  2. Günde bir büyük ikili dosyayı kontrol ederek, birinin yine de diski doldurabileceği gerçeği.

Ardından, disk alanı kullanımını kontrol altında tutma stratejilerini (örneğin ikili dosya filtreleri, düzenli yedekleme ve eski kullanılmayan dalların temizlenmesi gibi) tartışmak için bir toplantıya (muhtemelen diğer geliştiricilere veya sistem yöneticilerine de sahip olabilirsiniz) önerebilirsiniz.

Ayrıca Eclipse .project yapılandırmasının SVN'ye dahil edilip edilmeyeceği konusunda da ateşli bir tartışma yaptık. Takım arkadaşım, çok sayıda anlamsız çatışmaya neden olmasına rağmen, ısrar etmemiz konusunda ısrar etti. Bireysel geliştirici yapılandırma dosyalarını SVN'de tutmamaya karşıydım. Sonunda, takım arkadaşımın “kaynak havuzuna işlenen kodun” sadece yapıldığından emin olmak için her kaynak ağacın tamamını yeniden kontrol etme uygulaması olduğu ortaya çıktı. Proje konfigürasyonunu SVN'de tutmakta bu kadar kararlı olmasının sebebi buydu - bu yüzden projeyi yeniden almak kolay olurdu. Teslim etmenin çalışma kopyasını tekrar kontrol etmeyi gereksiz kılan uzak bayt baytla senkronize ettiğimi açıkladığımda, ekip arkadaşım tekrar şüpheyle cevap verdi ve sonunda tüm konuyu önemsiz olarak salladı.

Bence ekibimiz, yalnızca SCM ile paylaşılması gerekmeyen geliştiriciye özgü ayarları içeren proje yapılandırma dosyalarındaki SVN çakışmalarını çözerek zaman harcıyor. Tüm bu karışıklık, çünkü birileri süreci yanlış varsayımlara göre uyarladı.

Bir yapı sunucusu kullanıyor musunuz? Projenin tamamını kontrol eden ve her gece derleyen bir derleme sunucumuz var. Ertesi sabah, test ediciler ürünün teste hazır bir kurulumcısına sahiptir (eğer usta yapı doğru çalıştıysa) ve biz (geliştiriciler) tüm uyarıları içeren bir derleme raporuna sahibiz (ve varsa, varsa). Tabii ki, her geliştirici sonra projenin geri kalanı ile birlikte onları kontrol edebilirsiniz. Derleme sunucusu için standart konfigürasyon dosyalarını kurmak ve onları kontrol etmek gerekir, ancak kontrol etmek için izin verilmez herhangi yerel değişiklikler.

Bu senaryoda, tüm projeyi kontrol edebilme ve istediği zaman inşa edebilme ihtiyacını ele alıyorsunuz. Ayrıca, kontrol edilmemesi gereken değişiklikleri birleştirmek için zaman harcamaktan da kaçınırsınız, çünkü bunlar ürünün bir parçası değildir: ürün ana yapıdır ve temiz tutulması gerekir. Birisi ana yapıyı kırarsa (örn. Kendi .project dosyasında denetleme) değişiklikleri geri alabilir veya bu geliştiriciyi sorunu çözmeye zorlayabilirsiniz.

Belki konuyu tekrar gündeme getirirse, yine bir toplantı yapmayı önerebilir (muhtemelen diğer geliştiricilerle) ve birlikte ortak bir strateji bulabilirsiniz.

SVN'nin temellerini daha iyi anlaması için kendini kıdemli olarak gören bir takım arkadaşını nasıl ikna edebilirim?

Bence en iyi strateji, çatışmayı kişisel bir düzeye çıkarmaktan ve eldeki sorunları ve olası çözümleri tartışmaktan kaçınmak olacağını düşünüyorum. Kişisel bir yüzleşme arayışı içinde olduğu izlenimini yaşıyorsanız, bazı öneriler (yine kişisel deneyimlerden):

  • Takım dinamikleri nasıl? Diğer meslektaşlarınız bu takım arkadaşı ile benzer bir deneyime sahip mi? Bir ekibin belirli davranışlardan vazgeçmesi (küçük şakalar veya gözlemler) bir üyeye üyelerine verebileceği ve yapıcı yüzleşmeyi teşvik etmesi (bir toplantı önermesi veya bir kahve molası sırasında gayri resmi bir konu açması) konusunda çok sayıda küçük, çok açık olmayan ipuçları vardır. ). Bazen iyi bir ekip, rahatsız edici bir öğeyi hızla izole edebilir ve işleri normale döndürür.
  • Personel yönetiminiz ne kadar iyi? Şirketimizde bir ihtilaf vakası vardı ve durumu düzeltmek için personel başkanı müdahale etmek zorunda kaldı. Güzel değildi, ama bazen çalışma ortamı o kadar kötüleşiyor ki kendi başına iyileşmeyecek. Umarım bu sizin durumunuz değildir (henüz o kadar etkilendim olduğu izlenimine sahip değilim), ancak iyi bir personel idaresine sahip olup olmadığınızı veya çatışmaları kendi başınıza çözmek zorunda olup olmadığınızı bilmek her zaman iyidir.

Bunu neden yazıyorum? “SVN temellerini daha iyi anlaması için kendini kıdemli olarak gören bir takım arkadaşını ikna etmek istediğini” söylüyorsunuz. Bana göre çatışma çok kişiselleşiyor gibi geliyor. Bazı psikologlar, iletişimimizin% 70'inin duygusal düzeyde olduğunu, eğer bu seviye işe yaramazsa, insanlar gerçekler hakkında konuşmayı bıraktığını, çünkü duygularla uğraşmak için çok meşgul olduklarını savunuyorlar.

Böylece, puanlarınızı açıklamanın yanı sıra, iletişimi geliştirmek için bir şeyler yapmayı da deneyebilirsiniz. Bir kahve içmek ya da öğle yemeği molası vermek, işle ilgili olmayan bir konu hakkında kısa bir konuşma yapmak, iletişimi geliştirebilir ve meslektaşınızın dikkatini onun anlamasını istediğiniz önemli gerçeklere geri getirebilir . Bu tür bir iletişimi kabul ederse, belki de şu ana kadar sahip olduğunuz çatışmalar, birbirinizi iyi tanımadığınız ve bazı yanlış anlaşılmaların olduğu gerçeğiyle ilişkiliydi, ancak muhtemelen yapıcı bir işbirliği kurmaya açık. Reddederse, tarafında daha derin bir düşmanlık olabilir.

Bu durumda, rolleriniz netleşene kadar beklemelisiniz. Takım arkadaşınız resmi olarak sizinkinden daha yüksek bir seviyeye sahip değilse, işleri iyileştirme girişimlerinizde tahriş etme noktası yoktur. Zamanla, daha iyi bildiğini göstermeye çalışırsa sürekli kabul etmek veya aptallık etmek zorunda kalacak. O takdirde var daha yüksek bir rütbe, onu bu tartışma altında olmadığını anlatmak için bir yol bulmak gerekir: Gözlemleriniz verimliliği iyileştirme amaçlı olduğunu ve tutumunu da bozmayı, bu% 100 net olmalıdır. Roller netleştiğinde, yine de yapıcı öneri veya eleştiriyi kabul edemiyorsa, gerçekten özgüven ya da onun gibi bir şeyle ilgili bir problemi olması gerekir.

Eğer yukarıdaki tüm stratejiler başarısız olursa ve (çok) sinirli hissetmeye devam ederseniz, korkarım ki yapılacak tek şey şeylerinizi toplayıp daha iyi bir yer aramak olacaktır. Bu deneyimi üç yıl önce yaptım ve şu anda çok memnun olduğum çok daha iyi bir şirket buldum. Belki bu sizin durumunuz değildir (umarım elbette değil) ama bu noktayı da anlamaya çalışın.

Sadece 2 sentim.


2

Onu SVN'nin nasıl çalıştığı ve SVN kullanırken en iyi uygulamaların neler olduğu hakkında bir şeyler öğrenin.

@Peter'in dediği gibi - savaşlarınızı dikkatlice seçin ve temellerini anlamayan birisiyle savaşmak için enerjinizi boşa harcamayın. SVN son teknolojiyi tam olarak kullanmıyor ve bir süredir burada. Bu konuda yeterince bilgi var.


2

'SVN zamanını boşa harcıyor' günlüğünü tutmaya çalışın. Çözülmesi gereken bir çatışma / ödeme / sürüm sorunu olduğu her zaman, sizi / ekibi çözmenin ne kadar sürdüğünü not edin. Her hafta kayda değer miktarda zaman harcıyorsanız, onu ve yönetimini artırın. Eminim yönetim yakında, iş sürecindeki basit değişikliklerle verimliliğin iyileştirilebileceğini fark ederlerse çözümler isteyecektir.

Veya meslektaşınızı, ekibin kontrol sisteminizi kullandığı bir deneme haftası için ikna etmeye çalışın (eğer mevcut projeleriniz ve kod temeli ile kolayca ulaşılabilirse). İşe yaramazsa, hafta bittikten sonra eski sisteme geri dönebileceğinize söz verin. Ama kendisi denedikten sonra gelebilir.


2

1. Subversion'un sorunu sizin için çözmesine izin verin. Söylemenizin yolu, iş arkadaşınız Subversion söz konusu olduğunda göreceli olarak karmaşık değil. Bu durumda, teknik bir çözüm iyi bir seçenek olabilir. Takımın geri kalanı kabul eder ve yöneticinizin desteğini almak ise, bir ekleme global-ignoresdepo alanını yapılandırma dosyası size böylece .project dosya ve diğerlerini dışlamak sürüm kontrolü altında istemediklerini.

2. Ona yardım et. Ona bir şeyler yapma şeklini empoze etmek yerine, başkaları için sorun çıkarmadan adama bir şeyler yapması için yardım etmeye çalış. İş arkadaşınız kendi şubesinde çalışıyorsa, ne işlediğini gerçekten umursamamanız gerekir . .Project dosyasını, tüm dizinin yeni bir kopyasını teslim alabilmesi için teslim etmek istiyorsa, bu sizin için sorun değildir. İlgilenmeniz gereken tek şey .project dosyasını ortak geliştirme alanına geri eklememesidir. Bu , geliştirme dalındaki ignore özelliğini .project dosyasını dışlayacak şekilde ayarlayarak yeniden yönetilmesi kolay olmalıdır .

3. Yukarıdan destek isteyin. Adamla “benim patronum değilsin” argümanına girmeyin, ancak onun davranışı sizin için bir soruna neden oluyorsa, yöneticinizin durumu bildiğinden emin olun. Yöneticinize nasıl yaklaşacağınızdan emin değilseniz, tavsiye almayı deneyin: "Mike, Larry ile konuşmaya çalışıyorum ama başaramıyorum. X, Y ve Z, ve geri kalanımız, ortaya çıkan sorunların etrafında çalışmak için gereksiz yere çok zaman harcıyor. Bana adamla nasıl başa çıkılacağına dair herhangi bir işaret verebilir misiniz? "

4. Görmezden gelin. Neden ekipten biri bu adamı dinliyor? Proje üzerinde gerçek bir yetkisi var mı ? Yürütme yetkisi yoksa, geliştirici başına bir taahhüt politikası ilan ederse kimin umrunda ? Kendisini daha iyi hissetmesini sağlarsa , Kaplumbağa Yertle olduğunu düşünmesine izin verin, sadece sizin için gerçek sorunlar yaratmasına izin vermeyin.


1

Adamın kovulmasını sağlayın ve topuklarını sürükleyerek ve yeni teknolojiye olan açık bariziyle bitirin. Ya da gerçekten aklını başımdan al ve GIT kullanmaya başla. SVn'yi anlayamıyorsa, o zaman kesinlikle GIT tarafından havaya uçurulur.


Git yıkımın yapamayacağı konusunda hangi ihtiyaçları giderdi?


1

Kaybeden bir savaşla savaşıyor görünüyorsun ama başarabilirsin. Prens'teki Machiavelli, statükoyu değiştirmenin ne kadar zor olduğunu anlattı. Bu bölümü tekrar okumanızı öneririm, sonra belki de önerdiği şeyi yapmamak - zor olabilir.

Endişelerinizi özel olarak kıdemli geliştiriciye iletmeli ve kendisinin veya diğer geliştiricilerin değil, işlerin yapılma şeklini yapıcı şekilde eleştirdiğinizden emin olmalısınız. O zaman bir konuşma yapmayı ve en iyi uygulama rehberini yazmayı öner. Onlara SVN'yi daha iyi anlamanın hayatlarını nasıl kolaylaştıracağını gösterin. Sonuçta, hepsi maliyet ve verimlilikle ilgili. Eğer yolunuzun ayak parmaklarına basmadan işleri iyileştirdiğini ispatlarsanız, bunu kazanabilirsiniz.

Üst düzey adamların neden depoyu olduğu gibi kullandığını anlamaya çalışın. Endişeleri neler? Neyi başarmaya çalışıyorlar? Daha üretken olmalarına nasıl yardımcı olabilirsiniz? Her şeyden önce, sakin ve profesyonel bir yaklaşım sürdürmeye çalışın. Sinirli olmak kolaydır. İddialı olun: İşteki Atılganlık: Ken Back ve Kate Back'in Garip Durumlarını Yönetmek İçin Pratik Bir Kılavuz iyi bir okumadır. Son olarak, "kendimi nasıl değiştirmeye ikna edeceğim?" Diye düşünün. Dürüst bir şeytan savunucusu olun ve bu size sorulacak iyi cevaplar ve sorular bulmanızda yardımcı olabilir.

Bir not olarak, mizah kullanmak için dikkatli olurdum. Harikalar yaratabilir veya sizi bir kulağa benzetebilir. Böylece ondan kaçınırdım.

Temel olarak, bu kazanamayacağınız için savaşlarınızı dikkatlice yapın. Bu durumda ya artık umursamayın ya da farklı bir iş arayın. Sert, biliyorum.


1

SVN'nin oldukça yeni teknolojiye sahip olduğu yaklaşık 8 yıl önce konumunuzun tam tersi bir zamanlardaydım. Ben kıdemli bir geliştiriciydim ve SVN'yi küçük bir geliştirici tarafından kurması istendi / rahatsız edildi (aslında bir geliştiriciden daha doğru bir şekilde BT desteği idi). Artan iş yükü, gereksiz karmaşıklık vb. İle ilgili ilk şüphelerime rağmen açık bir fikir aldım ve çok büyük bir hayranı oldum.

Bana göre, bu sorunu tanımladığınız şeyden kesinlikle takım kişilikleri geliyor - inatçılığı bu konuda bir bütün olarak takıma bir engel teşkil ediyor. Sadece bu noktada geri adım atmakta ve ekibin geri kalanının baskısını doğal olarak inşa etmesine izin vererek elini zorlamanız daha iyi olabilir.


1

Bu hemen hemen bir "otorite eksikliği" durumu ve olayları "kontrol altında" tutmak için kendi korkusunun gücünü uygulayan bir kişi.

Bunu çözmek için, takım arkadaşınıza ilham veren ya da saygı duyduğu ve SVN gibi bir şey kullanmanın aciliyetini açıklayabilen birini bulun. Bu şekilde değişim korkusu ve temelde “otoriteyi kaybetme”, oyun sahası içerisinde olmadığı için ona ne yapması gerektiğini söyleyen bir ekip üyesi değildir. Bu adamla konuşmak için yönetici gibi birini kullanmaktan kaçınırdım çünkü bu sadece baskı yaratıyor ve hatta kendiniz için daha stresli bir durum yaratabiliyor.


1

Geçenlerde Sürüş Teknik Değişikliğini okudum : Takımınızdaki İnsanlar Neden İyi Fikirler Konusunda Hareket Etmiyorlar ve Pragmatik Programcılar tarafından yayınlanan Onları Nasıl İkna Etmeleri Gerekiyor ? Bu kitap, teknik değişimi tanıtmaya çalışmadan önce bilmeniz gereken arka planı, değişime karşı çıkan veya değiştirmeyi reddeden bir dizi modeli, değişiklikleri uygulama teknikleri ve daha sonra bu tekniklerin ve çevresindeki tüm insanların kullanımını en üst seviyeye çıkarma stratejileri sunar. sen.

Görevinize göre, takım arkadaşınızın muhtemelen Bilgisiz veya Cynic kalıba düştüğünü söyleyebilirim, ama o da Mantıksız bir durum olabilir. Bu tür insanlara karşı koymak için önerilen tekniklerden bazıları hedef ortamda deneyim kazanmaktır, böylece herhangi bir sorunu bulabilir ve diğer kişilerin meydana gelmeden önce karşılaşacakları sorunlara cevap verebilir, doğru sorunu çözebilir, mesajı tutkuyla iletebilirsiniz. kıskanç olmadan, yöntem ve araçlarınızın avantajlarını açıkça göstererek teknikleri gösterin ve bunları organik olarak satabilirsiniz (ancak bunları çözmek için sorun yaratmayın) ve ekibinizin geri kalanından tanıtım alın ve satın alın. Ancak, eğer Irrasyonel ise, orada '

Sonunda, bu teknikleri kullanmaya başlarsınız, genel bir stratejiye ihtiyacınız vardır. Aktif olarak düşmanca olan veya irrasyonel olanların sizi yavaşlatmasına izin vermemek önemlidir - onları görmezden gelin. Bunun yerine, daha iyi bir yolun olduğunu gösterip ikna edebileceğiniz insanları bulun ve bunlara dayanarak uygun teknikleri bir birey olarak uygulayın. Bir kez daha kişi bilginizin sunduğu gelişmeleri gördükten sonra, başkalarını ikna etmeye devam etmek için bunları kullanın. Son olarak, yönetimi daha iyi bir yol olduğuna ikna etmek için bu taban çabasını kullanın, ancak bunu anlayabilecekleri (zaman, para, kalite) açısından koyduğunuzdan emin olun.


1

Bu adamı hiçbir şeye "ikna" etmeye çalışmayın. İnsanlar (hatta programcılar) kendileri için küçük gördükleri birinden makul / mantıksal argümanlara cevap vermeyecek veya saygı göstermeyeceklerdir. O yüzden nefesini boşa harcama. Bunun yerine, bu kişiyle bir güven düzeyi oluşturmaya çalışın. Bu kişi, yalnızca açık olduğu zaman söyleyeceğiniz şeyleri dinleyecektir.

Bu arada, gerçek sorunlarınız var:

  1. Adam .project dosyasını depoya bakar: boşver. dosyayı değiştirmek zorunda değilsiniz, takımda daha iyisini bilen başka biri de yok. Bırak gitsin. Eğer "kıdemli üyenize" güvenlik battaniyesi gibi sıcak, mutlu bir his veriyorsa, o zaman öyle olsun.
  2. Disk alanı üzerinde algılanan bir bütçe var: Bu, Bay Senior'un günde 1 iş yapmasının emretmesinin nedenidir. Uzaydaki kıtlık gerçek mi yoksa algılanıyor mu? Sadece algılansa bile, belki de bu algıyı değiştirmek için yapabileceğin bir şey vardır. Bu hemen ele alınmalıdır - inisiyatif alırsanız, güven inşa etmeye de yardımcı olur.

Ayrıca, bu adamın kendi fikirleri olduğunu düşündüğü zaman daha iyi SVN uygulamaları benimseme konusunda istekli olacağını da ekleyebilirim. Bu sizin tarafınızdan biraz öngörülen alacak ve muhtemelen daha iyi uygulamalar oluşturmak için kredi alacaktır - ama bunun için sorun yok.

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.