Sürüm kontrolü ve sürekli entegrasyon kullanmayan ciddi şirketler var mı? Neden?


17

Bir meslektaşım, hem sürekli entegrasyona sahip bir yapı sunucusu hem de sürüm kontrol yazılımı kullandığımız için yazılım departmanımızın oldukça gelişmiş olduğu izlenimi altındaydı. Bu, benim bakış açımla uyuşmadı, çünkü ciddi bir yazılım yapan ve bunlardan birine sahip olmayan tek bir şirketi tanıyorum. Ancak tecrübelerim sadece bir avuç şirketle sınırlı.

Herkes yazılım işinde olan ve bu araçları kullanmayan gerçek bir şirketi (3 programcıdan daha büyük) biliyor mu ? Böyle bir şirket varsa, bunu yapmamaları için iyi bir neden var mı?


3
Bu sinir bozucu yazılım oyuncuları.
Monica ile Hafiflik Yarışları

1
aktörleri yazılım geliştiricilerinden farklı mıdır?
Aditya P

"Yazılım değilim ama televizyonda oynuyorum !!" --Yazılım oyuncuları.
FrustratedWithFormsDesigner

1
Jayne Seymour yoktur, :) o ciddi bir yazılım oyuncudur .... ya da en azından o Live'da Solitare oynanan ve Die Let
Kevin D

3
On yıl önce çalıştığım yerde, tüm desteklenen sistemlerde gece inşa ettik. Derlemeye hiç yakın bir yere varamadılar. Hiç.
David Thornley

Yanıtlar:


5

Onlara ciddi bir hareket diyeceğinizden emin değilim, ancak MySpace bu cephede oldukça zayıf: Bkz. Http://highscalability.com/blog/2011/3/25/did-the-microsoft-stack-kill- myspace.html .


1
+1 En az büyük ligde. Bunun mümkün olduğunu düşünmemiştim. Sürüm kontrolü olmayan böyle büyük bir şirket. Git şekil.
daramarak

Çılgın. Buna inanmazdım, ama bu blog ve makaledeki referanslar güvenilir.
Steve

Köpeği suçla.
JeffO

2
Bir garajda bir gruba başlayan gençler için bir web sitesi, garajlarından çalışan bir kodlayıcı tarzında yazılmıştır. Rakamlar.
quant_dev

13

Gerçekliğin sağduyu için neler yapabileceğini görünce şaşıracaksınız ;-)

Bence hala bir sürüm kontrol sistemi kullanmayan birkaç şirket var. İlginçtir ki, şimdiye kadar gördüğüm tüm durumlarda, bu tür sistemlerin kullanımına isteyerek karşı oldukları için değil, SVN gibi bir şeyin var olduğunu bilmedikleri için! Bana gelince: Size tamamen katılıyorum ve herhangi bir sürüm kontrolü kullanmak istemediğim bir durumu hayal edemiyorum. Cehennem, ev bilgisayarımdaki kendi kişisel dosyalarımı (kelime belgeleri vb.) Bir GIT veri havuzuna bile itiyorum.

Sürekli entegrasyon sistemi söz konusu olduğunda, bunları günlük operasyonlarda kullanmamak biraz daha yaygındır. Bazen insanlar böyle bir sistemin varlığını bilmedikleri için, fakat onları kullanmamaları için - çok tartışmalı - mazeretin “yeterince karmaşık değiliz” veya “sürekli entegrasyon olmadan çok iyi çalıştığı, Peki neden başka bir teknoloji eklemeye zahmet ediyorsunuz? Tabii gerçekçi bir değerlendirmesini durmazsa - ancak orijinal soruyu cevaplamak için: Her şey değil bu nadir.


11
Ortalama bir yazılım geliştiricisinin sürüm kontrol yazılımı hakkında bir şey duymamış olması mümkün müdür? Bu şirketler insanları nereden işe alıyor? Ayın Karanlık Yüzü?
daramarak

7
@daramarak: Çoğu (en olmasa da) yazılım geliştiricisi kitap okumuyor, geliştirme bloglarına göz atmıyor ve diğer geliştiricilerle (şirket dışında) hiç iletişim kurmuyor. Kendinize şu "21 günde görsel temeli öğrenin" kitaplarından birini öğreterek gelişmeye başlarsanız, sürüm kontrolü hakkında bilgi sahibi olmanız olası değildir. Aslında, sadece 10 yıl önce üniversitedeki sürüm kontrolü hakkında bir şeyler öğrendiğimi hatırlamıyorum.
Joeri Sebrechts

@joeri - Neyse ki nerede çalıştığım doğru değil, ama genel olarak inanabilirim.
Steve

@perdian - "oldukça az sayıda şirket" diyorsunuz ama herhangi bir ayrıntı vermiyorsunuz ... makale, blog vb. Ben (aslında ben sana inanmıyorum demiyorum do Sana inanıyorum), ancak veri ... her zaman iyidir
Steve

@Steve Haigh - Hayır, "sert" kanıtım yok. Kendimi CI oder sürüm kontrolü (isimleri kendime tutacağım g ) kullanmayan birkaç şirket gördüm ve biraz ekstrapolasyon ile çok daha fazla "dışarıda" olduğunu varsayıyorum. Ben şirketler bulmak için bir çok easiert olduğunu düşünüyorum yapmak basitçe örneğin Jenkins sayfasındaki referans listesinden bakarak, kullanım CI. Ama tam tersi? "Hey, X teknolojisini kullanmıyoruz " reklamını yapan pek çok insan yok ;-)
perdian

12

Sektörümdeki (bankacılık) hemen hemen her şirket şu anda sürüm kontrolünü kullanıyor. Ancak sürüm kontrolü olmadan başarılı bir şekilde yazılım geliştirmek kesinlikle mümkündür. 20-30 yıl önce. tam olarak bunu yaptık.

Birçok banka, hatta belki de çoğunluğu söyleyebilirim yok sürekli entegrasyonu ile bir yapı sunucu kullanmak. Sürekli entegrasyon olmadan yazılımı başarıyla teslim ediyorsanız, bu yolda devam etmek son derece mantıklıdır.


3
"Bu yolda devam etmenin" tamamen mantıklı olduğunu kabul etmiyorum. Evet, son X yılda yazılım dağıtmak, gelecek Y yılda hiçbir değişiklik yapmadan çalışmayacağı anlamına gelmez. Bununla birlikte, mevcut (ve oldukça olgun) yazılım ürünlerine CI'yi tanıttıktan sonra, bundan her zaman kazanacak bir şey vardır .
perdian

1
@perdian: Her zaman birçok girişimden kazanılacak bir şey vardır. Yani CI'yi diğer her şeyle dengelemek zorundasınız. CI'nin size her şeyden daha fazla fayda sağladığını iddia edemezsiniz. Ayrıca fırsat maliyetlerini de ölçmelisiniz.
RoadWarrior

1
@ SK-logic: RCS, İngiltere bankacılık endüstrisinde tam olarak bilinmiyordu. Herhangi bir kaynak kontrolü olmadan çok büyük ve sağlam sistemler geliştirdik.
RoadWarrior

1
-1: "Hemen hemen her şirket" yanlış olan çok geniş bir açıklama. Geçtiğimiz yıl, paylaşılan bir dizindeki sürüm kopyalarına dayanarak herhangi bir sürüm kontrol aracı kullanmayan bazı şirketler gördüm. Evet, bu beni ağlattı. Dediler ki "svn kullanmak çok zor". AMAN TANRIM. Ama yine de böyle bazı şirketler buluyorum. Genelleştirmeyin, endüstrideki herkes kaynak kontrol sisteminin ne olduğunu bilmiyor, çevrimiçi bir şey öğrenmiyor ya da sürekli bir entegrasyonun ne olduğunu bilmiyor. (Katılıyorum, bu cehennem. Artık orada olmadığım için mutluyum).
Klaim

1
@ SK-logic - ... burada denizcilik / enerji endüstrisi dışında RoadWarrior'ın söylediği şey. İsimler vermeyeceğim, ancak sektörlerinde baskın olan en azından iki şirketi (bazı özel yazılım geliştirme) bilmiyorum, çünkü hiçbir zaman VCS'yi hiçbir şekilde kullanmadığınıza inanıyorum. İyi kodları devam eden çalışma kodundan ayırt etme yollarına sahiptiler.
Kale

7

@ RoadWarrior'un cevabına bir karşı konu koymak için:

Banka için çalışıyorum. Son 3 yılı sürüm kontrolünü uygulayarak geçirdim ve şimdi kod tabanımızın yaklaşık% 20'sine ulaşmayı başardım (oldukça büyük, yaklaşık 20 geliştiricimiz var ve sistemlerimizi> 16 yıldır geliştirdik)

Sektördeki temaslarım (Bankacılık) sayesinde, aklı başında herhangi birinin sürüm kontrolü dediği şeylere sahip olmayan bir ton başka finans enstitüsünü biliyorum.

Evet, endüstrimiz (Yazılım Geliştirme) çoğu itiraf etmek istediğinden çok daha üzücü.


Başınız sağolsun. Endüstrinin en azından bazı bölümlerinde araçların ciddi şekilde eksik olduğu anlaşılıyor. Sanırım yine ayakkabıcıların çocuklarının hikayesi. Deli bir kişinin sürüm kontrolü olarak adlandırdığı şeyi sorabilir miyim?
daramarak

6
Kodu düzenlemeden önce manuel olarak bir kopyasını alarak. Örn, MyProg -> MyProd.old4
Dan McGrath

Ne yazık ki bu uygulama insanların düşündüğünden daha yaygın
Craig T

3

sürüm kontrolü: 25 yıl önce ilk işimde böyle bir sürüm kontrol sistemi yoktu, ancak bu PDP-11'lerde RSX11 idi. Bununla birlikte, tasarım ve kodun resmi incelemeleri ile çok yüksek bir kalite kontrolü seviyesi vardı (bu nükleer endüstride idi).

O zamandan beri her iş, SCCS, PVCS, clearcase, cvs ve performans dahil olmak üzere sürüm kontrol sistemlerini kullanmıştır.

Deneyimlerime göre, sürüm kontrolünün kullanımı ciddi yazılım geliştirmede hemen hemen evrenseldir.

sürekli entegrasyon: Bu, özellikle otomatik test yolunda çok fazla bir şeye sahip olmayan çok fazla eski koda sahip yerlerde daha çok bir sorundur. Mevcut kodu bir CI ortamına taşımak için çok büyük bir yatırım gerekiyor ve muhtemelen sonunda ödüyor olsa da, kısa vadeli bir kazanç olmadan böyle bir yatırım yapmayı yönetmek zor.

Bazı projeler için CI bulunan tek bir yerde (büyük bir banka) çalıştım ve projemize işleri çok daha kolaylaştıran, ancak yaklaşık 6 ay süren bir tür CI sistemi uyguladık.


Eski koda sahip yerler için otomatik inşalar mı yaptılar, yoksa manuel bir bina / dağıtım planı mı vardı?
daramarak

3

ÇOK şirketlerin bu şeyleri kullanmadığını hayal edebilirim, çünkü faydalarını anlamıyorlar ve geliştiricileri ya öğrenmek istemiyorlar ya da nasıl olduklarından farklı şeyler yaparak “potu karıştırmaktan” korkuyorlar daha önce yapıldı.


3
Kesinlikle! Cevabı duydum (ya da belki topal mazeret olarak adlandırmalıyız) "şimdiye kadar kullanmadık ve işe yaradığından beri (bir şekilde) buna ihtiyacımız yok". İnsanların araçlarını değiştirmeye karşı ne kadar dirençli olmaları utanç verici.
perdian

1
İnsanlara böyle dayanamıyorum; ne yazık ki bu kariyerimde çok sık karşılaştığım "geliştirici" türü ve sadece onların cehaletiyle başa çıkamıyorum ve her zaman bu tür geliştiricilerin yaygın olduğu bir şirketten ayrılmak istemiyorum. Düpedüz düşmanca davranma riski altında olan bu tür insanlar bu meslek üzerine kanserdir.
Wayne Molina

2

Şu anda bir çalışan olmama rağmen, eskiden veritabanı danışmanı olarak çalışıyordum. Bu uzun yıllar boyunca, anne ve pop seviyesinden Fortune 100'lere kadar 800 ila 1000 şirket arasında bir yerdeydim.

Sürekli entegrasyon yapan nispeten az yer gördüm, ancak sürüm kontrolü kullanmayan bir şirketi gördüğümü hatırlamıyorum. Sürüm kontrollü kod için merkezi bir depo bulunmayan birkaç tane gördüm. Bireysel programcılar sürüm kontrolünü kendi bilgisayarlarında kullandılar veya sürüm kontrollü kodu sunucudaki ana dizinin altında bir yerde tuttular.

Bu şirketlerin hiçbirinin yazılım işinde olduğunu sanmıyorum , ancak programcıları kesinlikle vardı.


1

Bir meslektaşım, hem sürekli entegrasyona sahip bir yapı sunucusu hem de bir sürüm kontrol yazılımı kullandığımız için yazılım departmanımızın oldukça gelişmiş olduğu izlenimi altındaydı.

Hayır, söylemekten nefret ediyorum, ama bu doğru. Çalıştığım son iki yer (bir bankanın bir bölümü ve bir finans şirketi), sürüm kontrol sistemini uygulayan bendim. Bazı yerler (özellikle yazılım dışı mağazalar) uzun vadeli gelişim için neden gerçekten gerekli olduğunu anlamıyor. Takım normalde bir veya iki kişi olarak başlar ve sonra acı verici de olsa oradan büyür. Bir veya iki kişi ile onsuz (iyi değil) alabilirsiniz çünkü birbirinizle neredeyse sürekli iletişimde olabilirsiniz.

Sürekli yapı tamamen farklı bir durumdur. Tahmin etmek zorunda kalsaydım, kalkınmanın yapıldığı yerlerin neredeyse% 90'ında bir CI çözümü bulunmuyor. Konferanslara gidiyorum ve çoğu insan MS veya Google dışında bir kuruluşun buna hayran kaldığını düşünüyor. Bulduğum şey, yönetimin çok fazla zaman kazanmasına rağmen, onu çalıştırmak ve çalıştırmak için küçük bir miktar para harcamak istememesi.

Bunun için bulduğum en büyük nedenler:

  1. Yönetimdeki insanlar aynı organizasyonun saflarında yükseldi. Hiç kullanmadılar ve ihtiyaç duymadılar, neden şimdi değişmeleri gerekiyor? Bulduğum bazıları değişimden korkuyor. Yeni bir şey korkutucu ve eski derleyicilerinin tozunu almasını engelleyecek ve ihtiyaç duyduklarında gençlere yardım edecek. Diğer zamanlarda (ve daha sık), her zaman sıkı olan bütçeleri vardır ve nerede para harcayacakları konusunda karar vermek zorundadırlar. Bunları uygulamak bizim için bariz bir ihtiyaç, ama daha önce kullandık. Yararlarını biliyoruz, bilmiyorlar.

  2. Yöneticiler BT üyesi olmayan kişilerdir ve burada tüm bunlar daha önce gerekli olmayan bir şeye para harcamak istemenizdir.

İnsanlardan duyduğum argümanların çoğu en iyi uygulamalar vb. Etrafında gerçekleşir ve bunlar doğrudur, ancak çoğu geliştiricinin anlamadığı şey, bu senaryoda bunu finansal durum açısından çerçevelemenizdir. Harcayacağınız bu parayla, X zamandan tasarruf edeceğiz ve onu yedeklemek için rakamlara ihtiyacınız olacak. Bu her zaman doğru değildir, ancak geçmişte yaşadığım deneyim oldu.


Bu gibi sorunların geliştiriciden zayıf iletişim ve yönetimde yukarı doğru ortaya çıktığını düşünebilirim. Neyse ki tüm şirketler böyle değil. Çalıştığım yerde (zorunlu değilse) yönetime bir şeyin bizi daha etkili hale getirip getiremeyeceğini söylememiz bekleniyor.
daramarak

1

Kendi başlarına kodlama yapabildikleri ve kod tabanını merkezi bir sunucuya veya USB sabit sürücüsüne periyodik olarak yedeklemek için kullanıldığından, birçok kişinin kaynak kontrolünü kullanmadığını söyleyebilirim. Yaklaşık bir yıl önce kendimi SVN kullanmaya başlamaya zorladım çünkü uzun vadede faydalı olacağını biliyordum. Buna alışmak biraz zaman aldı ama şimdi sürekli referans yapabileceğim tonlarca kod geçmişim var. Keşke dört yıl önce başladığımda bunu uygulamamış olsaydım.

Sürekli entegrasyon? Sadece ihtiyacınız olduğunda kullanın. Benim için sadece iki yazılım mühendisi var, bu yüzden sürekli entegrasyondan faydalanmayacağız çünkü kendi yazılımımız üzerinde kendimiz çalışıyoruz.


1
Sürekli entegrasyonun, hatalar oluştuğunda tanımlaması gerekir. İki geliştiricinin bile buna ihtiyacı var.
daramarak

1
@daramarak: İki mühendis bağımsız olarak entegre olmayan iki ayrı ürün üzerinde çalışıyorsa olmaz.
Brian

1
CI, onsuz yapmaya istekli olduğum şeylerden biri. Şahsen benim işimde olmasını isterdim, ama yakın zamanda gerçekleşmeyecek. Günde 1-2 kez otomatik yapılarımız var ve bu gerçekten ihtiyaçlarımız için yeterli.
Michael K

1
Otomatik bir yapı ile orada yarı yoldasınız.
Derlenen

1

Ha, SCM ve CI sisteminiz olduğu için gelişmiş olduğunuzu mu düşünüyorsunuz? Size bunun amatör saat olduğunu söyleyeyim.

Bir çok şirket gerekli olanı yapıyor, çünkü gerçekten ihtiyacı olan tek şey bu . Çalışırsa ve büyük çaba harcamadan iyi tekrarlanabilir sürümler alırsanız, düzeltilmesi gereken hiçbir şey yoktur. Bu gibi durumlarda yapmak istediğiniz son şey, özellikle yeni sunucularınızı kurmak ve yönetmek için yönetici kaynaklarını işlerinden uzaklaştırmaya geldiğinde, işleri düzeltmeye başlamaktır.

Bununla birlikte, bazı şirketler sadece bir kez daha inşa etmekle kalmaz, aynı zamanda test planları ve test sonuçları aracılığıyla devreye alma, kod gözden geçirme, iş akışı tarzı check-in prosedürleri ve ekip lideri belirlenmiş iş paketi yönetimi. Bu gerçek bir konfigürasyon yönetimi ve bu tür bir ortamda çalışmak zorunda olmadığınız için çok mutlu olun!

Birkaç şirkette çalıştım ve bir çeşit SCM'ye sahip olmayanları düşünemiyorum. Bazıları diğerlerinden daha kapsamlıydı, ancak hepsinde VSS kullananlarda bile iyi çalışan bir sistem vardı.


lol! imzalı: bir profesyonel.
deadalnix

Kabul ediyorum, SCM ve bir hata izci çalışmak için pantolon giymenin gelişim eşdeğeridir. CI, kritik bir işlevin temel otomasyonudur. Otomatik yedeklemeler gibi, ancak sürümler için. Ah, CCB toplantıları. Her hafta, saat gibi.
Tim Williscroft

1

İki programcı ile bile karmaşık uygulamalar ve görevlerin bir listesi üzerinde çalışırken birbirinizin değişikliklerini kırmamak zor olabilir.

Eski sürüm yönetim yazılımımız bile değişiklikleri yan yana gösterdi ve her iki yönde de uygulanmasına izin verdi. Değişiklikler onsuz birden fazla vesileyle gözden kaçardı.

CI'den gelen bir dizi fayda görüyorum, ancak herhangi bir şirketin neden sürüm kontrol yazılımını kullanamayacağını hayal edemiyorum.


1

Sürüm kontrolü olmadan çalıştığım son iş 2006 yılındaydı (Ben bir Web geliştiricisiyim, FWIW). Şirket beni işe almadan önce sadece 2 veya 3 geliştiriciye sahipti, ancak birkaç ay içinde işe alınan 10 kadar ilk geliştiriciydim. İşe alındığında yaptığım ilk şeylerden biri, sürüm kontrolünü (CVS, çünkü o zaman ne kadar kötü emdiğini bilmiyordum!) ortamlar, bu yüzden kullanmadım. Oh, uygulamanın yerel örneklerinin bile çalışmadığından bahsetmiş miydim? Sunucudaki kodu hacklediler. Ve elbette otomatik testler yok. Tekrar düşündüğümde küfrediyorum.

Bundan önce, sürüm kontrolü olmadan bazı AS / 400 programlama çalışmaları yaptım. Bu ortam için iyi bir VCS'nin mevcut olup olmadığını bilmiyorum.

Şimdi Git'i tüm tek kişilik projelerim için kullanıyorum ve son birkaç işim de bunu kullandı.

CI farklı bir konudur. Sahip olmak harika ve bunu teşvik ediyorum, ancak en azından yorumlanmış dillerdeki daha küçük projeler için sürüm kontrolünden daha az gerekli. Ancak son işlerimin çoğunda CI sunucuları vardı; diğer şeylerin yanı sıra, hiç kimse konuşlandırmadan önce tüm test paketini çalıştırmayı unutamayacağı anlamına gelir.


'CI farklı bir konudur. Sahip olmak harika ve bunu teşvik ediyorum, ancak en azından yorumlanmış dillerde küçük projeler için sürüm kontrolünden daha az gerekli. ' Kabul. CI gerçekten sadece sık ve / veya karmaşık yapılar yaparken gereklidir ve zamanınızın çoğunu almaya başlar veya bir test paketi çalıştırmak istiyorsanız veya birden çok dal, vb. Sahne almak istiyorsanız. bir düzine geliştirici, test paketi yok ve haftada bir kez üretime iten bir PHP projesi, muhtemelen CI hakkında endişelenmeye başlamadan önce iyi bir KG iş akışına odaklanmak isteyeceksiniz.
siliconrockstar

Ve muhtemelen KG veya başka bir şey hakkında endişelenmeye başlamadan önce iyi bir test odasına odaklanmak isteyeceksiniz.
Marnen Laibow-Koser

Belki teoride, ancak açık kaynaklı bir yazılım kullanıyorsanız, bir test paketi ile birlikte gelmedikçe, bu neredeyse imkansızdır. Bir keresinde uygun, tam test kapsamına sahip bir PHP projesinde çalışmadım, ancak üzerinde çalıştığım her projede bir miktar QA vardı.
siliconrockstar

@siliconrockstar Kendi kodunuz için iyi bir test takımına sahip olmaktan bahsediyordum; kütüphane kodu için uygun test seviyesi de başka bir konudur.
Marnen Laibow-Koser

@siliconrockstar Üzerinde çalıştığım Rails projelerinin çoğu mükemmel geliştirici testi kapsamına sahipti (istisnalar aktif olarak geliştirmeye çalışıyordu); hepsinin resmi KG'si yoktur. İyi testlerle resmi KG'ye sahip olmak çok daha az gerekli olsa da, yine de çok iyi bir fikir. Bununla birlikte, testler yapılmadan geliştirme inanılmaz derecede risklidir, bu yüzden iyileştirme testlerinin başka bir şeye göre önceliklendirilmesi gerektiğini söylüyorum.
Marnen Laibow-Koser

0

Kesinlikle burada ve orada birkaç tanıştım, ama çoğunlukla küçük şirketler. Daha sık gördüğüm sorun aslında SCM'ye sahip olan, ancak pek çok projeyi izleyemeyecek kadar küçük veya önemsiz olan şirketler.

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.