İş arkadaşım test etmeden taahhüt eder ve iter


113

İş arkadaşım bilgisayarında bir teste gerek olmadığını düşünüyorsa, değişiklik yapar, taahhüt eder ve iter. Ardından prodüksiyon sunucusunda test yapar ve bir hata yaptığını anlar. Haftada bir olur. Şimdi 3 taahhütte bulunduğunu ve üretim sunucusuna 5 dakika içinde konuşlandırma yaptığını görüyorum.

Ona birkaç kez söyledim, bu işin ne kadar iyi yapıldığını değil. Ona tekrar kaba davranmak istemiyorum ve şirkette benimle aynı durumda ve burada benden daha fazla çalıştı.

Bu davranışın bir şekilde cezalandırılmasını veya mümkün olduğunca rahatsız edici olmasını istiyorum.

Başlamadan önce, şirket FTP gibi antika yöntemler kullanıyordu ve sürüm kontrolü yoktu.

Onları / bizi Git, Bitbucket, Dploy.io ve HipChat kullanmaya zorladım. Dağıtım otomatik değildir, birinin dply.io'ya giriş yapması ve konuş düğmesine basması gerekir.

Şimdi, onları üretim sunucusunda test etmemeye nasıl zorlayabilirim? HipChat bot gibi bir şey aynı satırda tekrarlanan düzenlemeler olduğunu algılayabilir ve programcıya bir bildirim gönderebilir.


1
Yorumlar uzun tartışmalar için değildir; bu konuşma sohbete taşındı .
Dünya Mühendisi

5
Git'te olduğunuzdan, kod birleştirmelerini zorlamak için yöneticiyle birleşmeden ve prodüksiyona yerleştirmeden önce istekleri kullanın. Ayrıca, dağıtım sunucusunda oturum açmak için kimlik bilgilerini kaldırın. Geliştirici olmayan bir kurumda bu yetkiyi merkezileştirin. (Kredi kartı endüstrisi tarafından uygulanan PCI uygunluğu bu arada bunu gerektirir.)
Barett

3
Bir işyeri açısından, bu kişiyle bir İş Arkadaşıysanız ve bir şekilde onların amiri olmadığınızda, onları 'cezalandırarak' herhangi bir çekiş kazanmanız mümkün değildir. İş arkadaşınızın gevşek standartlarına uymamak için kodun kalitesini güvence altına almaya odaklanın.
Zibbobz

2
"Merkezi" depoya yapılan bir baskı her zaman bir üretim dağıtımını tetikler mi? Kesinlikle yapmamalı.
jpmc26

3
Soruyu okudum ve kendime bu adamın türkçe olması gerektiğini söyledim ve oraya gidersiniz :) şuna bir bakın kardeşim: nvie.com/posts/a-successful-git-branching-model . En az iki dalınız olması gerekir: geliştiricilerin yalnızca dev'i zorladıkları ana ve geliştirme programları ve testten sonra ana ve dağıtım için birleştirme.
Cemre,

Yanıtlar:


92

Uygun bir Kalite Güvence (QA) işlemine ihtiyacınız var.

Profesyonel bir yazılım geliştirme ekibinde, geliştirme haklarından üretime geçemezsiniz. En az üç ayrı ortamınız var: geliştirme, evreleme ve üretim.

Geliştirme ortamınızda çalışan bir şey bulduğunuzu düşündüğünüzde, her bir taahhüdün QA ekibi tarafından test edildiği ve yalnızca bu test başarılı olursa üretime zorlanır. İdeal olarak, geliştirme, test etme ve üretime zorlama ayrı kişiler tarafından yapılır. Bu, otomasyon sisteminizi, geliştiricilerin yalnızca geliştirmeden evrelemeye konuşlandırabileceği ve KG ekibinin yalnızca evrelemeden üretime geçebileceği şekilde yapılandırarak sağlanabilir.

Yönetimi, KG'nızı yapmak için birini işe almaya ikna edemediğinizde, belki biriniz diğeriniz için bu rolü oynayabilirsiniz. Diploy.io ile hiç çalışmadım, ancak bazı yapı otomasyon sistemleri bir kullanıcının hem geliştirmeden evrelemeye, hem de evrelemeden devreye girebileceği şekilde yapılandırılabilir, ancak ikisini de aynı yapı için yapamaz, bu yüzden ikinci bir kişi her zaman gerekli (ancak sizden birinin olmadığı zamanlarda bazı yedek kişileriniz olduğundan emin olun).

Diğer bir seçenek de, destek personelinizin KG'yi yapmasıdır. Bu onlar için ek bir iş gibi gözükebilir, ancak uzun vadede bazı çalışmaları güvence altına alabilecekleri uygulamada yapılan değişikliklerin farkında olduklarından emin olmalarını da sağlar.


Üretimde salıverildiği QA'yı yapma fikri uygun görünüyor, ancak işlev ayrılması nedeniyle uçmuyor. “Programcı testi” sonunun ötesindeki desteğin sorumluluğu destek olmak, değişikliklerin farkında olmalarını sağlamalıdır Dört geliştirici ve başka hiç kimse için bu gerçekten zor. kimseye pek faydası olmayacak ...
Bill Woodger

1
@ BillWoodger neden? Onlar için 'yaklaşan değişiklikler ve geri alma' sistemidir. Sadece “gerçekleşmeden” ne olacağını görmekle kalmaz, aynı zamanda işler kötüye giderse kolayca son sürüme geri dönmenin bir yoludur. Aşamalandırma env programcı sonu testi olduğunu unutmayın.
gbjbaanb

1
@gbjbaanb, Desteği aynı konuma koyar ve orijinal sorunu yeniden ifade eder. Destek, genel olarak Üretime acil erişime sahip olacaktır. Ayrıca başka erişimleri varsa, denetim sorunlarınız var (eğer önemliyse). Herhangi biri bir şeyi değiştirebiliyorsa , bir sorun var demektir. Elbette Destek her şeyi bilmeli, her şeyi yapamamalı . Benim dahil olduğum her denetçinin söylediği şey buydu ve beni uzun zaman önce ikna ettiler.
Bill Woodger

@ BillWoodger Ne söylediğinizden emin değilim. Bildiğim üretim ekipleri genellikle bir test ortamı içeren kendi toplama süreçlerine sahiptir (önce aptalca hataları kontrol etmek için). Küçük bir takımda, bu test sisteminin dev ve destek ile paylaşılmasının bir nedeni yoktur. Yine de hiçbir değişiklik yapılmasına izin verilmez - otomasyon yoluyla dev tarafından doldurulur ve destek tarafından tüketilir. Onlara aynı kodun bir fermuarını vermekten farklı değil. Denetçiler süreçlerle ilgilenir, bu işlemlerin uygulanmasını değil (takip edilmeleri dışında)
gbjbaanb 13:15

1
@gbjbaanb denetçileri, her şeye erişimi olan kişilerle ilgilenmektedir. Bir Destek görevlisi, Geliştirme'deki bir programı değiştirip başkasına müdahale etmeden Prodüksiyona sokabilirse, sistem ortaya çıkar. Elbette, OP'nin dört kişisiyle, ayrı bir “Destek” yok ve tatmin edici bir işbölümünün zor olacağı kesin.
Bill Woodger

54

Muhtemelen bir dev sunucu ve tercihen de sahneleme ortamı elde etmek isteyeceksiniz. Kendi kişisel web sitesi dışında hiç kimse yerelden üretime geçmemelidir. Dağıtım işleminiz yalnızca geliştirme> aşamayı desteklemelidir. Muhtemelen yeni bültenleri imzalamaktan sorumlu birisini istersiniz - kuruma bağlı olarak, bu bir proje lideri, tahsis edilmiş bir KG veya her hafta dönen bir görev olabilir (somut bir hatırlatıcı ile, örneğin sadece haftanın aldığı kabarık oyuncağı olan kişi) it). Bununla birlikte, satın almak için önce ekibinizle görüşün (aşağıya bakın).

Bu davranışın bir şekilde cezalandırılmasını veya mümkün olduğunca rahatsız edici olmasını istiyorum.

Test takımınıza (bunlardan birine sahipsin, değil mi?) Bir üretim sunucusunda olup olmadığınızı belirleyen bir onay içerebilir ve eğer varsa, ofisteki herkese bir e-posta gönderir Looks like $username is testing on prod, watch out. Belki de meslektaşınızı halka açık bir şekilde utandırmak rahatsız edici olabilir. Ya da ekibinizin prod'a bakmasını yasaklayan IP'yi yasaklama gibi teknik kısıtlamalar yaratabilirsiniz (ki kaldırabilirsiniz ancak haklı çıkarmanız gerekir).

Yine de bunu tavsiye etmiyorum, ancak, prod üzerinde test yapan kişiye değil, takımdaki umurunda olmayan insanlarla kendinizi sevilmeyen insanlara sorun gibi görüneceksiniz.

Elbette gerçekten istediğiniz şey bu davranışın cezalandırılması değil, durdurulması mı?

Onları / bizi kullanmaya zorladım [...]

İş akışı iyileştirmelerini savunmanız harika, ancak iş arkadaşlarınızın çoğunu düşünmüyorsunuz ve / veya onların tam desteğini alamıyorsunuz. Bunun, meslektaşlarının iş akışıyla yarı ısıtılmış bir şekilde etkileşime girmesi, üretime kod almak için gereken minimum işlemi yapması ve iş akışının ruhunu tam olarak takip etmemesi, bu da temizlemeye daha fazla zaman harcanması anlamına gelmesi muhtemeldir. Ve giderek daha fazla zaman harcarken, iş akışı ile yetersiz etkileşimin sonuçlarını temizlemek (çünkü kimse umursamaz, değil mi?), Herkes iş akışını sorgulayacak.

Öyleyse bir konuşmaya başla.

Neden olduğunu öğrenin (meslektaşınızın makinesi test etmek için iyi değil mi? Meslektaşınız özellik dalları ile belirsiz mi veya svn zihniyetinde sıkışıp kalıyor mu? Meslektaşınız aynı mı?) dev / evreleme / prod'a bakın ve bunun nedenini değiştirmek için bir şeyler yapıp yapamayacağınıza bakın (yerel olarak test etmeyi, daha önce onlara yalvarmanıza göre daha iyi hale getirdiyseniz, meslektaşınız daha fazlasını isteyecektir).

Bunu çözemezseniz ve bu gerçekten bir fikir farklılığına bağlıysa, bir sonraki retrospektif toplantınızda ekip çapında bir tartışma planlayın, meslektaşlarınızın ne yaptığını ve ne düşündüğünü görün. Davanızı yapın, ancak fikir birliğini dinleyin. Belki de ekibiniz yerel olarak metinsel düzeltmeleri test etmemenizin iyi olduğunu ve test edilmemiş hiçbir büyük özelliğin kullanılmayacağına dair bir kuralınız olduğunu söylüyor. Toplantıya bir yazı yazın ve her bir ortamda neye izin verildiğine dair topluca neye karar verdiğinizi okuyun. Birkaç ay içinde, belki geriye dönük olarak gözden geçirmek için bir tarih belirleyin.


10
Konuşma için +1. Bunun bir sorun olduğu ve neden bir sorun olduğu konusunda ortak bir anlayış olmalı. Ancak o zaman teknik bir çözümle herhangi bir başarı olabilir.
Patrick,

9
Dev sunucu / hazırlama ortamları için +1. İşleri zorlamak için kendi makinesinin dışında gerçek bir yer bulunana kadar bu davranış tamamen iş arkadaşının hatası değildir. Bir insanın kendi makinesinde yapabileceği çok fazla şey var ve başka hiçbir şey yapmıyorsa, ekstra ortam genellikle test sürecinde düşünce sürecindeki / tutumdaki değişime yardımcı oluyor.
Joel Coehoorn

20

İşyerinde, Gerrit kullanarak bunu engelliyoruz . Gerrit, geleneksel olarak "usta" denilen ana / üretim Git şubenize kapı görevi gören bir kod inceleme sistemidir. Kod incelemeleriniz var değil mi? Şahsen onları olağanüstü şekilde yapıyor gibisin. Gerrit ile, siz ve iş arkadaşınız kod inceleme işlemini tatmin edici bir şekilde yürüttükten sonra, Gerrit daha sonra ana şubenizle birleştirilen bir çeşitleme dalına zorlarsınız. Herhangi bir değişikliği gözden geçirecek bir e-posta almadan önce birim testlerini yapmak için Gerrit'i bir CI sunucusuna bile bağlayabilirsiniz. Bir sunucunuz yoksa, bir CI aracı ayarlayabilirsiniz, Codeship , konsept kanıtı olarak kullanmak için güzel bir ücretsiz plana sahiptir.

Son olarak, tabii ki, üretim dağıtımlarını yalnızca kod incelemesi ve birim testinden kurtulan yaptırılmış ürünlerden otomatikleştirmek. Bunun için gelmekte olan harika teknolojiler var, ki bunun alev yemi olacağından korktuğumdan bahsetmiyorum.

Bir çözümle patronuna git. Bu, sizin için bile geçerlidir ve yalnızca iş arkadaşınızı cezalandırmak değil, herkesin kod kalitesini de arttırmanın bir yoludur.


17

Bunu büyük ölçüde insani bir sorun olarak görüyorum - süreç var ve araçlar var, ancak süreç takip edilmiyor.

Başkalarının söz konusu geliştirici sadece takıldı oldukça mümkün olduğunu olasılığı hakkında, burada adı geçen katılıyorum ne SVN zihniyet ve iyi o düşünebilir edilir sürecini takip.

Bu tür bir sorunu ele almanın en iyi yolunun, özellikle net bir üstün olamayacağı durumlarda, erişimin cezalandırılması veya kaldırılması etrafında dönmüyor - bu sadece kızgınlığa yol açıyor ve sanki yüksek sesle savunucuymuşsunuz gibi geliyor süreç (her zaman bir tane var ve daha önce 'o adam' oldum), en fazla ısıyı verebilecek olan sensin. İnsanları ilk önce süreç üzerinde anlaşmaya getirmek etrafında döner.

Üretimdeki büyük bir olaydan sonra yapılan "öğrenilen dersler" tipi toplantılar gibi yapılandırılmış toplantılar çok yararlı olabilir. Söz konusu geliştirici de dahil olmak üzere herkesin hemfikir olmasına çalışın, bu kod incelemesi, birim testi, kapsamlı testler vb. Her şeyin yapılması gerekir (ve burada da sahneleme ortamı fikrini ortaya koyabilirsiniz). Zor olmamalı ve çok mantıklı. Ardından ekibinizden nasıl yapılması gerektiğine dair sağlam kurallar getirmelerini isteyin. Soruna neden olan geliştirici ne kadar katkıda bulunursa, kurallara uymayı o kadar fazla hissedecekler ve davranışlarının neden bir sorun olduğunu görmeye başlayacaklar.

Son nokta, asla "eskisi gibi olmadığından iyidir!" tuzak. Her zaman iyileştirme için yer vardır. BT endüstrisindeki insanların, benim tecrübelerime göre, bazı gelişmelerden sonra, sahip oldukları şeylerin çözümüne başlamaları yaygındır. Anlaşma yine aniden bir kriz noktasında oluncaya kadar devam eder.


1
"Taahhüt / itme, hemen üretime dağıtma ve değişikliklerinizi orada ve başka hiçbir yerde test etme" işleminin SVN zihniyetinin ne olduğu tam olarak belli değil. Tek bir şube modeli veya kaynak kontrolü ile bile, bir taahhüt mutlaka bir üretim dağıtımını gerektirmez. Ya da en azından, olmamalı.
jpmc26

@ jpmc26: Git / SVN alev savaşı riski altında: "Eski" kodumuzun çoğu için bir SVN sistemi devraldık ancak Git'i daha yeni işlerimiz için kullandık. SVN kurulumunun doğru olmadığını ve / veya doğru kullanmadığımızı garanti edebilirim, ancak Git'in şubeleri ele alması çok daha kolay. % 100 SVN'nin düzgün konuşlandırmayı idare etmekten daha fazlası olduğundan eminim, ancak (hatalı deneyimimden) SVN'nin "sizi nasıl daha az" doğru şeyi yapmaktan nasıl alıkoyabileceğini "de görebiliyorum. Her durumda, bu yalnızca katkıda bulunan bir faktör olacaktır ve kullanıcının eğitimi daha önemlidir.
TripeHound

1
@TripeHound Git sisteminin kod değişikliklerini yönetmek için genel olarak daha iyi olduğu konusunda bir tartışma yok. (Git ile ilgili itirazlarımın genellikle yüksek öğrenme eğrisi ile ilgisi var.) Demek istediğim, Git'in serbest bırakma sürecini yönetmenize yardımcı olacak daha fazla yetenekleri olsa da, inşa altyapınızı kurma şekliniz hala sizin temel faktörünüzdür. kaynak kontrolü seçimi. SVN'de oldukça uzun bir süre devam eden oldukça başarılı bir oluşturma ve bırakma otomasyonu yaptım, bu yüzden bir "SVN zihniyetinin" ne olduğunu veya salıverilmenizi nasıl olumsuz etkilediği konusunda net değilim.
jpmc26

2
Sırf usta olmaya karar vermen, üretime dağıtman gerektiği anlamına gelmez. Menşe repo / svn repo prod sunucusunda barındırılsa bile, bu böyle bir şey ifade etmez.
vonPetrushev

12

Bu , özellikle küçük takımlarda nadir değildir . Bu konuda çok fazla şey yapma, ancak gayri resmi bir kural yapma:

Yapıyı kır, donutları getir.

Ya 1) Haftada iki kez çörek alacaksınız ya da 2) standarda uyuyorlar.

Bir toplantıya getirin. Suçlayıcı değil, kimseden bahsetme ama " Benzeri sürüm kontrol ve dağıtım standartlarını sunduğumuzdan beri işler çok daha kolay hale geldi ve sunucu eskisinden daha fazla zaman harcadı. Bu harika! Ancak yine de bir kısayol alıp doğru bir test yapmadan göndermeyi cazip kılıyor, ancak bir kumar olsa da, sunucumuz da internette. Ertesi gün takıma çörek. "

İstenirse börekler için başka bir şey değiştirin ve pahalı yapmayın - tüm takım için öğle yemeği çok fazla olurdu, ama 5 dolarlık bir donut veya meyve / sebze tepsisi veya cips ve daldırma vb. Onları gerçekten ekipten veya şirketten uzak tutabilecek bir yük oluşturmadan test atlamanın kolaylığına karşı riskini ağırlayacak kadar.


2
Bu sadece bir ofis ile çalışır. Evden çalışan, dağıtıcı bir uzaktan geliştirici ekibiniz olduğunda, bunun eşdeğer konsepti nedir?
10'da

2
@aroth Bazı takımlar için yapıyı bozan kişiden gelen takım çapında basit bir e-posta yeterlidir. Bunu "sürekli süreç iyileştirme hedefi" olarak planlayın ve e-postanın, başkalarının neyin yanlış gittiğini, neyin yanlış gittiğini ve o kişinin süreçleri hakkında neleri değiştireceğini ya da ekibin neyle ilgili değişiklik önerdiğini düşündüklerini görecek kadar bilgi içermesini isteyin Süreci, tekrar olmasını önlemek için. Çoğu insan raporlardan ve raporlardan nefret eder ve gelecekte yapının bozulmamasına daha fazla dikkat etmeleri çok can sıkıcıdır.
Adam Davis

8

Şimdi onları nasıl zorlayabilirim ...

Meslektaşlarınızı zorlamak yerine, bakış açınızdan şeyleri görmelerini sağlayın. Bu herkes için işleri çok daha kolaylaştıracak. Beni içine sürükleyen ...

Bu davranışın bir şekilde cezalandırılmasını veya mümkün olduğunca rahatsız edici olmasını istiyorum.

Neden canlı sunucuda sorun yaşamak sizin için bir acı ama bu adam için değil? Onun bilmediği bir şey biliyor musun? Her şeyi senin yaptığın gibi görmesini sağlamak için ne yapabilirsin?

Bunu başarabilirseniz, onun içinde en iyisini ortaya çıkaracak ve hiç düşünmediğiniz soruna çözümler bulacaktır.

Genel olarak, problemleri çözmek için, onları anlamayan işlemlere zorlamak yerine insanlarla birlikte çalışmayı deneyin.


6

Bunun olabileceği en kötü şey nedir? Veritabanınızdaki rasgele kayıtları değiştiren bir hatanın eski bir sürümü geri yükleyerek düzeltilmesi için yeterince iyi yedekleriniz var mı?

Bir kayıt kimliğini kullandığınız bir hatanız olduğunu ve yanlışlıkla sent cinsinden bir fatura miktarının kayıt kimliği için kullanılan bir değişkende saklandığını varsayalım. Yani eğer 12.34 $ ödersem, o zaman 1234 kimliğine sahip olan kayıt değiştirilecek. Hata tespit edilinceye kadar yazılım birkaç saat çalışırsa, bundan kurtulabilir misiniz? (Hem doğru kayıt hem de kayıt 1234 güncellendiğinde, bunu sadece kayıt 1234 kullanıldığında tespit edersiniz, bu uzunca bir süre tespit edilemez).

Şimdi motive edici geliştiricinize bu konuda ne düşündüğünü sorun. Açıkçası, hiç hata yapmadığını iddia edemez, çünkü geçmişte bunu yaptı.


"Yeterince iyi yedekleriniz var mı" - ve öyle olsa bile, iş arkadaşınız sunucuyu kırdığı için yedeği geri yüklemek zorunda olan mugginler olmak istiyor mu? Belki de konuşlandırmadan önce test etmeyi ister , ancak test ortamı olmadığından şu anda mevcut olan en kolay seçeneği kullanıyor. Sonra bir test sunucusu için durum yapmak kolay olmalıdır. Btw, "uzunca bir süre" algılanamayan hatalar, bu hataların sorunu, testlerin yapıldığı yer değil, test kalitesi olduğu için konuşlandırmayı testten geçirecek.
Steve Jessop,

Yalnızca yedekleriniz yok, ayrıca restorasyon yapılırken işiniz aksama süresine de sahip olabilir mi? Veritabanının geri alınması yapılması gerektiğinden dakika, saat ve hatta bilgi gününü kaybetmeyi göze alabilir mi? Neredeyse tüm önemsiz vakalarda yanıtın yankılanan bir 'hayır' olduğunu söyleyebilirim. Ve önemsiz durumlarda bile, test edilmemiş kodların kontrol edilme şekliyle nasıl başa çıkacağınız konusunda 'bir yedeklemeyi geri yüklemek' istemezsiniz. Kod kontrol edildiğinde ve üretime ulaştığında test yapılmasını sağlayan bir şey olması gerekir.
aroth

Tamamen anladım, bu yüzden "geliştiricinize bu konuda ne düşündüğünü sorun" dedim. Tamamen kandırılmış durumda ve kodunun hatasız olduğuna inanıyor ya da neden olabileceği hasarı göremiyor. Veya üçüncü bir olasılık, umrunda değil biliyor.
gnasher729

3

Çeşitli olası süreç ve teknik çözümleri açıkça anlıyorsunuz. Mesele iş arkadaşınızın nasıl yönetileceğidir.

Bu aslında bir değişim yönetimi uygulamasıdır.

Öncelikle, kurucunuzla, görüşünüze uygun olduğundan emin olmak için sessiz bir sözüm olacak. Bir üretim kesintisi varsa, kurucunun bu konuda çok endişe duymasını ve değişmeyi arzulamasını beklerdim.

İkincisi, küçük bir takımda çalışıyorsunuz ve tüm ekibin süreç iyileştirme sürecine girmesini sağlamaya çalışmak büyük olasılıkla.

Düzenli kurulum (örneğin haftalık) işlem retrospektifleri. Tüm ekibin yanında:

  • Sorunları tanımlamak
  • İş uygulamalarını geliştirmek için gönüllü fikirler
  • Bu uygulamaları hayata geçirmek

Doğal olarak, tüm ekibin de geliştirilmiş uygulamalara uyumu sağlamaya yardımcı olduğunu takip etmelidir.


Geriye dönük bir bakış açısı, bu tür davranışları yapıcı bir şekilde ele almanın ve umarım değiştirmenin harika bir yoludur!
greenSocksRock

1

Bence birkaç problem tespit ettin:

  1. Kontrol edilen herhangi bir kod, kod giriş yapma hakkı olan herhangi biri tarafından üretime son derece itilebilir gibi geliyor.

Açıkçası bu kurulum sadece delilik olduğunu düşünüyorum. En azından üretime itme işlemini manuel olarak tetikleyebilen kişiler , itmeyi tetiklemeden önce tüm değişiklikleri ( tamamen kimin yazdığına bakılmaksızın) yapılan tüm değişiklikleri tamamen gözden geçirmek ve test etmek için tamamen güvenebilecek kişilerle sınırlandırılmalıdır . Kodları kontrol etmesine izin veren herhangi bir kimseye, keyfi olarak üretime olan bir baskıyı tetikleme yetkisi vermek sadece sorun istiyor. Yalnızca dikkatsiz ve / veya yetersiz geliştiricilerden değil, aynı zamanda hesaplarından birini tehlikeye düşüren hoşnutsuz kişiler veya kötü niyetli üçüncü taraflardan da.

Ve kontrol edilen her değişikliği dağıtmak için bir düğme işlemi kullanacaksanız, o zaman kapsamlı bir otomatik sınama paketi hazırlamanız gerekir ve düğmeyi zorlamanız gerekir (ve konuşlandırmayı iptal edin. herhangi bir test başarısız!). İşleminiz, üretim sistemine ilk olarak yerleştirildiği noktaya ulaşmak için yüzeysel olarak test edilmemiş bir koda izin vermemelidir.

İş arkadaşınız, ilk önce test etmeden kodu kontrol etme konusunda büyük bir hata yaptı. Kuruluşunuz, test edilmemiş kodun herhangi bir koşulda üretime ulaşmasını sağlayan bir dağıtım süreci benimseyerek çok daha büyük bir hata çekti.

Yani ilk iş emri dağıtım sürecini düzeltmektir. Üretime zorlamayı kimin tetikleyebileceğini veya otomatik dağıtım işleminize makul bir miktarda test dahil etmeyi veya her ikisini de sınırlayın.

  1. Açıkça tanımlanmış bir geliştirme standartları / ilkeleri belirlememiş olabilirsiniz.

Özellikle, açık bir " yapılanma tanımı " eksik ve / veya kodun üretime kod yerleştirilmesinde / kullanılmasında kodun kontrol edilmesinde bir engelleme faktörü olarak "kod test edildi" içermeyen bir ifadenin kullanılması gibi görünüyor. Bunu yapmış olsaydınız, sadece "iyi kod bu şekilde üretilmedi" diye işaret etmek yerine, bu kodun hepimizin kararlaştırdığı asgari standartları karşılamadığını söyleyebilir ve bunun daha iyi olması gerekir. gelecek".

Geliştiricilerden beklenenleri ve korunmaları gereken standartlar ve kalite seviyelerini açıkça bildiren bir kültür kurmaya çalışmalısınız. En azından manuel olarak test edilen (veya tercihen yapım / dağıtım işleminin bir parçası olarak çalıştırılabilecek otomatik test muhafazaları) yapılan bir tanımın oluşturulması bu konuda yardımcı olacaktır. Yapıyı bozmanın sonuçları olabilir. Veya üretim sistemini kırmanın daha ciddi sonuçları. Bu iki şeyin gerçekten bağımsız olması gerektiğine ve hem yapıyı hem de üretim sistemini aynı anda kırmanın tamamen imkansız olması gerektiğine dikkat edin (çünkü kırık yapılar asla dağıtılamaz olmalıdır).


0

Şirkete Sürekli Entegrasyon + Akran Değerlendirmesi sürecini entegre etmelisiniz. Bitbucket kolaylaştırır.

Ve +1, diğer kullanıcılar tarafından önerilen dev sunucuya.

Ona kaba davranma, sadece iş ilişkine zarar verir.

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.