Sürüm kontrolünün benimsenmesini nasıl teşvik edersiniz


21

Kısa süre önce versiyon kontrolü olmayan bir takımda çalışmaya başladım. Ekip üyelerinin çoğu, herhangi bir sürüm kontrolüne alışık değildir. İşimi izlemek için mercurial'ı özel olarak kullanıyorum. Başkalarını benimsemeye teşvik etmek istiyorum ve en azından değişiklik yaptıkça kodlarını değiştirmeye başlıyorum. Biri bana mercurial gibi dağıtılmış bir sürüm kontrolünün benimsenmesini nasıl teşvik edebileceğim konusunda tavsiyede bulunabilir. DVCS yöneticileri de dahil olmak üzere insanları nasıl kazanacağınıza dair herhangi bir tavsiye çok takdir edilecektir.


4
Bir cevap eklerdim ama yapamam. Ben suskunum (daha doğrusu tipsiz). SCCS'nin ilk ortaya çıkışından bu yana neredeyse 40 yıl geçti. Hala en basit projeler dışında hiçbir şey için sürüm kontrolünü kullanmayan kuruluşlar var mı? (Günümüzde diğer ucunda; bazı insanlar ev dizinlerini git depo olarak kullanıyorlar.)
David Hammen

11
Teşvik etmeyin; talep et.
Steven Evers

1
Şu an bulunduğum şirket bizden çok daha büyük şirketlere danışıyor ve kaynak kontrolü kullanan bir şirkete henüz girmedim ... Bu ifadeyi düşündükten sonra, aniden neden problemlerini çözmek için bir başkasına ihtiyaç duyduklarını anlayabiliyorum. Genelde yaptığımız ilk şey, ayarlamalarını talep etmeleridir, böylece değişikliklerini ve bizimkine entegre etmek ve yönetmek için kullanabiliriz. @SnOrfus'un belirttiği gibi, talep edin. En iyi uygulama olarak kaydettiği tüm belgeleri de işaretleyebilirsiniz.
Joshua Dale,

7
SnOrfus ile beraberim. Burada bazı iyi cevaplar var, ama sonuçta, hemen olumlu bir tepki alamazsanız , gitme zamanı. David Hammen gibi, 2011'de herhangi bir geliştiricinin böyle bir sorunla başa çıkmaları gereken bir durumda olduğu söylenemez. Sürüm kontrolü eksikliği, sadece kabul edilemez bir işlevdir.
Carson63000,

2
Bir gece gizlice sızın ve sabit disklerini silin. Hayır özür dilerim. Orada profesyonellik geçici atlamalı.
DJClayworth

Yanıtlar:


7

Sürüm kontrolünün kullanımı için bir dava açmanız ve ilk önce iş arkadaşlarınıza satmaya çalışmanız gerekir, ve bu başarısız olursa, liderliği ve daha fazlasını projelendirmek için zinciri yükseltir.

Yazılım mühendisleri dostu olmak için, durumunuz uzun vadede zamandan ve baş ağrılarından nasıl tasarruf edileceğine odaklanmalıdır. Sürüm kontrolünün kullanımının hayatınızı nasıl kolaylaştırdığına dair kendi geçmişinizden veya yayınlanmış hikayelerden (bloglar, dergilerdeki makaleler, beyaz sayfalar) bulun. Sürüm kontrolü olmadan yakıldıysanız, kişiselleştirin. Eğer geliştirici arkadaşlarınız aynı durumdaysa, ışığı ve bu araçların onlara nasıl yardımcı olabileceğini görmelidirler.

Bu senin en iyi seçeneğin. Şu anda kaynakları bulamamama rağmen, işlem için en etkili değişikliklerin değişikliklerle uğraşmak zorunda olan geliştiricilerden geldiğini (birkaç yerde) okudum. Geliştiricileri uçağa alabilirseniz, iki şey elde edersiniz. Birincisi, süreç değişimlerinden etkilenecek olan kişilerden zaten bir katılım sağladınız. İkincisi, yönetimi bu işe değer bir çaba olduğuna ve ürün ve projeyi geliştireceğine ikna edecek bir grup insan var.

Bununla birlikte, geliştirme ekibinin desteğini alamıyorsanız ve sürüm kontrolünü dağıtma konusunda hala güçlü bir şekilde hissediyorsanız, yönetime geçebilirsiniz. Ancak yalnız gidecekseniz daha riskli hale gelir, çünkü yalnızca gelişmeyi satmak konusunda endişelenmekle kalmaz, aynı zamanda meslektaşlarınızdan gelen tepkilerle ilgilenmek zorunda kalırsınız.

Projeyi, programı ve örgütsel yönetimi yansıtmak için durum, sürüm kontrolünün dağıtılmasının organizasyonun zamandan ve paradan nasıl tasarruf edebileceği konusunda olmalı. Bu seviyedeki insanlar, projenin ne kadar paraya mal olduğu, tahminlere göre nerede durduğu vb. İle ilgileniyor. Beyaz kitaplara, kitaplara, makalelere ve sürüm kontrolünün dağıtılmasının uzun vadede diğer kuruluşlara zaman ve para kazandırdığını açıklayan diğer profesyonel belgeler ve yayınlara bakın. Kuruluşunuz yazılım kalitesiyle ilgileniyorsa, burada ayrıca bir kalite perspektifi sunabilirsiniz.

Özellikle dağıtılmış bir sürüm kontrol sistemi kullanmak istediğinizi söylediniz. Bunu ekibin veya örgütün boğazından aşağıya zorlamayın. Onları sürüm kontrolü ve seçenekleriyle tanıştırın. Şahsen bir DVCS (Mercurial gibi) kullanmayı tercih etseniz de, ekibiniz ve organizasyonunuz için en uygun olmayabilir. Yanlış uygun bir alet kullanmak, işleri sadece parçalara ayrılma konusunda daha da kötüleştirir.

Ayrıca, geç süreci başlatma risklerinin farkında olun . Sürüm kontrolünün kullanımı yaygın olarak kabul edilen en iyi uygulama olsa da, projenin tamamlanması için büyük bir risk olmadan mevcut projeye etkin bir şekilde giriş yapmak için çok geç olabilir. Bunun yerine, gelecekteki projeler ve ekipler için statükoyu iyileştirmeye odaklanmayı tavsiye ederim.

Ayrıca, bu, herhangi bir işlem veya teknoloji iyileştirmesi gerçekleştirmek için izleyebileceğiniz genel bir yaklaşımdır.


5

İlk soru şudur: Şu anda ne yapıyorlar? Şüphesiz, her geliştiricinin istediği şekilde değiştirdiği kaynak kodunun kendi kutusunda kalması söz konusu değildir. Şu anda takip ettikleri sürece sahip olduktan sonra, bu süreci geliştiren bazı araçlar önerebilirsiniz - genellikle bir SCM farklı bir süreci takip etmekten çok, bu konuda onlara yardımcı olmak için idealdir.

Buradaki ana nokta, eğer sözde bir SCM çalışma biçimine sahiplerse, belki de mevcut sürümü bir sunucuda saklıyorsa, bir DVCS veya CVS'nin daha uygun olup olmadığını belirlemeniz gerekir, Mercurial'ı satmaya çalışmayın. eğer SVN daha uygunsa.


3

En hızlı yol, yönetimi gerekli olduğu konusunda ikna etmektir.

Bazı hesaplamalar yapın:

Sürüm kontrol yazılımı maliyeti - ücretsiz.
Depoyu desteklemek için donanım maliyeti - bir sunucu.
Yazılım uygulamasının maliyeti - küçük ekip için birkaç gün, daha büyük ekipler için yükseliyor.

Sürüm kontrolü yapmama maliyeti:

En iyi durum - düzenlemelerin kaybolması nedeniyle kaybedilen günler, birbirlerinin üzerine yazdıkları değişiklikler vb.
En kötü durum - ancak ekibinizin bugüne kadar harcadığı birçok erkek yıllık çaba.

Bu son rakam, sunucu arızası vb. Nedeniyle tüm çalışmalarınızı kaybettiğinizin en kötü senaryosudur, ancak “en iyi durum” senaryoları bile, neden gerekli olduğunu onlara getirmelidir. Tekrarlayan hataların maliyeti, müşterilerin kaybedilmesine yol açabileceğinden daha yüksek olabilir.

Geliştirme ekibi de bu maliyetleri anlamalı ve çoğu (hepsi olmasa da) sürüm kontrol yazılımının IDE'lerle sorunsuz bir şekilde bütünleştiğini göz önüne alarak, çoğu zaman orada olduğunu bile farketmeyeceklerini belirtti.


Sürüm kontrol yazılımı maliyeti ücretsiz değildir. Yazılımın kendisi ücretsiz olabilir (seçiminize bağlı olarak), ancak hiçbir şeye sahip olmayan bir kuruluşta, mühendisler için eğitime ihtiyacınız var, depoların üzerinde durması için donanıma ihtiyacınız olabilir ve kuruluş herkese yayılırsa, Yeni donanım ve yazılım gereksinimlerini desteklemek için BT finansmanında bir artış. Bir projede gecikme sürecinin yüksek riskinden bahsetmiyorum bile.
Thomas Owens

@Thomas - bu yüzden uygulamanın maliyeti hakkındaki çizgim (muhtemelen
küçüktür

Düzenleme çok daha iyi hale getirir.
Thomas Owens

1

Yönetim genellikle para tasarrufu konusunda çok önemlidir. Sürüm kontrolünün takıma finansal olarak nasıl fayda sağlayabileceğini vurgulayın ve dikkatlerini hemen alacaksınız!


Yönetim yapar, ancak bir bireyden ziyade bir şeyler söyleyen bir grubunuz varsa, yönetimin dikkatini çekmek her zaman daha kolaydır.
Thomas Owens

@Thomas gerçekten, daha sesler daha muhtemel yönetimleri dikkat çekmek için daha gürültü ve böylece oluşturmak
rrazd

1

Buradaki diğer insanlara dokunmadığım bir yön var, köşenizde olduğunu düşünüyorum - dağınık sürüm kontrolü hakkında konuşuyorsunuz - doğası gereği bunu fiili bir uygulamaya sokabilirsiniz, bir geliştirici zamanında. Ofisimde (MS Visual SourceSafe) kullandığımız gibi, daha hassas bir sürüm kontrolü ile, küpün karşısındaki adama gidip onu tek tek satmanın zorluğunu yaşayabilirsin. sürüm kontrolü. Ancak, (herhangi bir) DVCS ile, "hey, şunu dene ve beğenip beğenmediğine bak." Halatları göstereceğim ve soruları cevaplamaktan, seni dolaştırmaktan mutlu olurum. filan". Bu şekilde, aşağıdan yukarıya bir "sürece" ihtiyacınız yoktur, her seferinde bir kişi olmak üzere bir taban görev emri oluşturabilirsiniz.


0

Gbjbaanb'ın cevabı üzerine inşa etmek.

Buradaki en önemli şey, sürüm kontrol sürecini var olan her şeye uyarlamanız ve ekip çalışmasının geri kalan kısmını nasıl kurtardığını göstermenizdir.

Ben şahsen Mercurial'ı da tercih ediyorum, ancak mutlaka sürüm kontrolüne alışkın olmayan insanlara çarpmak istemem, çünkü eski moda bir sunucu tabanlı kilitleme sürüm kontrol sisteminden daha zor anlamak biraz zor. Bu, gerçek bir greenfields bölgesiyse, bütün domuzlara gitmek, '80'ler ve 90'ları atlamak ve Mercurial'la gitmek en iyisi olabileceğini söyledi. Ayrıca Mercurial çevresinde oluşturulmuş bazı 3. parti yazılım yaşam döngüsü öğelerine de bakarım - Bir tanesinin var olduğuna eminim ama onun adı benden kaçıyor;)

Küçük bir şirket için çalıştığınızı ve takıma nispeten yeni olduğunuzu, bu nedenle satışın zor olabileceğini tahmin ediyorum - özellikle de ekibin geri kalanı sağlamsa ve yönetim güvenine sahipse. Kötü bir şey yapmalarına izin vermek en iyisi olabilir, sonra kurtarmaya gelirler. Bu sabotaj demek değildir, sadece kaçınılmaz olanları bekleyin.


Tüm cevaplarınız için teşekkürler, bu soru bir topluluk sorusu yapılabilir mi? Nasıl kullandığım konusunda 15mins hakkında kısa bir konuşma / demo vermeme izin veren güçler. Bir engel kim kullanıyor? İnternetten bazı shareware / bloatware mi? Mercurial'ı (herhangi bir DCVS) ticari olarak kullanan / destekleyen bazı tanınmış şirketlere işaret ederek korkuları yatıştırmak isterim. Birisi Hg'den faydalanan bazı şirketleri alıntı yapmama yardımcı olabilir mi? Veya onu kullanan diğer iyi bilinen ürün. Açık-kaynağa karşı direnç (söylenmemiş gözler parlıyor) var, bazı yöneticiler ödeme yapmadıkları yazılımlardan şüpheli görünüyorlar.
Man Wa kileleshwa
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.