İşyerinde ikili programlama ne kadar yaygındır?


16

Her zaman ikili programlamadan meraklandım, ancak 12 yıllık gelişimde bu uygulamayı hiç kullanmadıkları bir yerde hiç çalışmadım, bu yüzden insanların bunu nasıl gördükleri konusunda her zaman şüpheliydim.

Bu para / zaman (aynı bilgisayarda çalışan bir bilgisayarda iki kişi tespit sivri saçlı patronu !!!!! cesaret!) Veya başka nedenlerden dolayı olup olmadığını merak ediyorum.


8
Bence bu durumda PHB doğru olabilir. Bir çıktı için iki kişi (ve dolayısıyla iki maaş) temelde kötü bir iş kararıdır. Eşleştirilmiş programlamanın bireyden daha verimli olduğu, en azından "tam zamanlı" olmadığı pek çok durum yoktur - bu nedenle yeni personele mentorluk yapmanın veya belirli bir sorun üzerinde katılmanın çok dışında bir şey yapılmamıştır.
TZHX

3
Sivri saçlı patronu bunun değeri olduğuna ikna etmek çok zor.
Walter

3
Yeni kod için çift ​​programlama büyük bir değer olduğunu düşünüyorum. İlk yineleme aynı zaman alabilir, ancak IME çok daha az hata ayıklama zamanı harcarsınız. Ve iki kişi aynı kodu bildiğinde, hata ayıklama daha kolay hale gelir, çünkü bağımsız olarak birlikte görünebilirler. "Yeterli göz küresi göz önüne alındığında, her böcek şeffaftır."
Michael K

1
@Michael, her zaman değil, ama bazen eski kodla eşleştirmenin faydalı olabileceğini düşünüyorum. Siloları parçalayabilir ve / veya yeniden düzenleme maliyetlerini azaltabilir. Bununla seninle tamamen aynı fikirdeyim dedi.
DevSolo

5
@TZHX: "Bir çıktı için iki kişi kötü iştir". Bu çok kusurlu bir argüman ve bunu biliyorsunuz (programcılara kod satırı başına ödeme yapmak gibi). Çift programlama karmaşık bir konudur ve bu kadar kolay göz ardı edilmemelidir.
Martin Wickman

Yanıtlar:


20

15 yıldır aynı konsere sahibim ve son zamanlarda (son 12-18 ay) Agile tekniklerini benimsemeye başladık. Çift programlama kullanıldığında, sonuç hikayesi / özelliği, daha az hata olmadan zamanında uygulanmıştır. Yine de yeterince sık çalıştığını düşünmüyorum.

Çevik benimsemeden önce bir başka geliştirici ve ben zaman zaman klavyeyi nadiren paylaştık (belki her 3-4 ayda bir). Yönetim ekibimiz isteksiz göründü, ancak genellikle aşağıdakilerden birkaçını gerçekleştirdiği için gayri resmi eşlememizden her zaman memnun kaldı:

  • Takımdaki azaltılmış silolar (takım 6-8 devs olduğunda büyük kazanç)
  • daha az kusurlu üretilen kod
  • her geliştirici tipik olarak ondan beceriler aldı

Yönetimin isteksiz olduğunu söyleyebilirim, ancak bebek adımlarını atıp özelliğin daha sonradan daha iyi olduğunu (maliyet tasarrufu) ve / veya her (veya bir) geliştiricinin bazı becerileri (ileri ödeme) aldığını gösterebilirseniz, size veya ekibinize uygun bir uygulama buluyorsunuz.


büyük fikir DevSolo, paylaştığınız için teşekkürler. Muhtemelen oldukça istikrarlı bir ekibiniz var (personelin düşük cirosu?)
ozz

Rica ederim. Ciromuz oldukça düşüktü ... 4 kişiyiz aynı ofisi 15+ yıldır paylaştık, ancak 4 taşınma (4 bina ve 2 eyalet arasında)!
DevSolo

Ironic, takma adınız 'DevSolo';) nb deneyimlerim seninle aynı fikirde
ChrisAnnODell

11

Tahminimce muhtemelen geliştiricilerin çok fazla direnişi olacaktı. Kolej ve hatta lise sırasında belki de dünyanın en motivasyon sahibi olmayan kişilerle çalışmaya zorlandığınızı hatırlıyor musunuz? O insanlar hala var. Tüm "birinci sınıf" kişilerden oluşan bir ekibiniz olmadığı sürece, bu tür kurulum grupta biraz düşmanlığa neden olur.


Çok gerçek Pemdas!
ozz

2
+1, maalesef. Takım çalışması geliştirmek zorunda olduğunuz bir beceridir ve eğer istemiyorsanız yapamazsınız. Belki de programcının yöneticilerinin yapması gereken budur - sahip oldukları insanlarla en fazla verimliliği destekleyen ekip yapısını bulun.
Michael K

4
Bu meslek egoların kontrol altında tutulmasını gerektirir. Her zaman kolay değildir, ancak ödüller son derece faydalı olacaktır.
DevSolo

@DevSole ... bunun cevabımla tam olarak ne ilgisi var?
Pemdas

@Perndas, belki yanlış bir şekilde direncin egoslardan kaynaklanacağını düşünüyordum. En azından onu gördüğümde, nedeni bu gibi görünüyor. Sadece 2 tane gördüm (hatırlıyorum) devs aslında buna direniyor. Birinin egosu odaya sığamadı, diğerinin güven ile ilgili sorunları vardı.
DevSolo

9

Resmi olarak yapmadım, ama ne zaman takılsam, bir geliştirici arayacağım ve ikimiz birlikte bir çözüm üzerinde çalışacağız. Fikirleri zıplatmanın, diğerini uygularken düşünmesine izin vermenin harika bir yoludur, bu yüzden düşünce treninizi kaybetmezsiniz çünkü yazıyorsunuzdur.

Daha fazla yapılmasını dilerdim.


4
Kullanmak için başka bir araç, tanıdık değilseniz, "Kauçuk Ördek" denir. Temel olarak, masanıza bir lastik ördek gibi bir nesne koyun (sizinki gerçekten bir oyuncak Yoda kullanır) ve sorunu açıklayın. bkz. c2.com/cgi/wiki?RubberDucking
DevSolo

Yanımda oturan kişiyi kullanıyorum ... masalarımıza malzeme koyamayız.
CaffGeek

Ciddi anlamda?
Michael K

@Michael ... burada sahip olduğumuz kurallar hakkında hiçbir fikrin yok. Ve yine de, birkaç iyi şey tüm kötüden ağır basar ... zar zor.
CaffGeek

Bu mantıksız kural yönetiminin programcılar için geçerli olduğunu duymak üzücü (Bu oldukça aptalca, değil mi? Bunu dengede tutmak için bizi mutlu etmek için ekstra çaba sarf etmek
zorundalar

9

Umurumda değil:

1 - Kodlarken müziklerimi dinlemeyi seviyorum. Herkes Slayer'ın kulaklarında patladığını duymak istemez.

2 - İnsanların omuzlarına çok kaba bakıp insanlar bunu yaparken çok rahatsız oluyorum.

3 - Çok hızlı düşünüyorum ve bir çözüm dizisi olduğumda, bir cevap bulmaya başladığımda, kesintiye uğramak ihtiyacım olan en son şey.

4 - Forum ve haber gruplarını incelemek için ara ara veremem. Bazıları bunun yine de uygunsuz olduğunu düşünebilir, ancak sürekli gelişimim için çok önemli buluyorum. Bazen çok dikkatimi dağıtacağım, ancak genel olarak artan bilgilerimin yararı, üretkenliğime herhangi bir isabetten daha ağır basar.

Sanırım bu diğer takımlarda farklı olabilir, ama aslında bir şey tarafından güldüğüm ve İHTİYAÇ OLDUĞUMda neredeyse her zaman nihayetinde çözümü bulan kişi oldum. Yaptığım işte gerçekten iyiyim ama daha fazla şey olabileceğini düşünüyorum ... emin değilim, her halükarda sadece zor problemleri çözerken daha iyi olduğumu ve genellikle yalnız yapmayı daha iyi bulduğumu düşünüyorum. Kulağa kibirli gelebilir, ama bu yanlış yapmaz.

Aslında başkalarının benim tekniklerimden bazılarını almasına yardımcı olabileceğini düşündüm, ancak # 3 dikkate alındığında, düşünce trenimi kırmadan soru soramayacaklardı.

Bütün bunlar, zaman zaman denedim dedi. Bazen küçük faydaları vardır ama kesinlikle tutarlı bir şey olarak göremiyorum. Yalnız kurt sistemi benim için çalışıyor ve takım için çalışıyor gibi görünüyor.


2
@Hayır, sadece # 2'ye dayanarak, çift programlama kavramını kavrayacağınızdan emin değilim. Fikir bir omzun üzerinden bakmak değil. Fikir, uyguladığım gibi, PC'yi birlikte çalışmak için paylaşmaktır. Master / slave programlama değil, akran programlama. Belki de daha sonra bunun için daha iyi bir terim ...
DevSolo

Bu tamamen geçerlidir. Bazı insanlar sadece kendi başlarına anlamak için yalnız kalmak istiyorlar.
MattC

Ve ayrıca, kulaklık şey için +1. Gün boyu metal ve / veya trans patlatıyorum ve insanlar benimle ilgili konuştuğunda oldukça rahatsız oluyorum. En sevdiğim şarkı bitene kadar bekleyemezler mi? : D
MattC

2
@Noah: Listenizi okurken, çift programlamanın daha ince noktalarını kaçırdığınız görülüyor. Herkes için olduğunu söylemiyorum ve kovboy modundan paylaşım moduna geçmek kesinlikle zaman ve çaba gerektiriyor. Tıpkı TDD'nin nasıl düzgün bir şekilde yapılacağını (veya bu konudaki herhangi bir çevik uygulamayı) öğrenmek zaman alır.
Martin Wickman

1
devamı ...: "Senior" ile, aslında kodu yapan kişi olmayabilirsiniz, ancak daha genç bir geliştiricinin bir öneri bulmasına yardımcı olabilirsiniz. Ben de çift programlama fikrinin en büyük hayranı değilim, ama muhtemelen çoğunlukla rahatlık alanımın dışında olduğunu görüyorum. Birçok geliştirici sadece istasyonlarında çalışmayı sever, ancak itiraf etmeliyim ki muhtemelen daha fazla bilgi edinebilirim ve başka bir geliştiriciyle birlikte çalıştığımın daha iyi çözümlerini bulabilirim. Bu yüzden gerçekten daha verimli çalışmayla kişisel rahatlık meselesi.
Anne Schuessler

5

Çift programlama, önemsiz ve zor bir şey başlatmak veya yapmak için harika bir yoldur. Daha rutin ve basit görevler tek başına daha iyi yapılır.

Hem başlangıç ​​/ garaj şirketlerinde hem de büyük şirketlerde birkaç çift programlama oturumuna katıldım. Her zaman sadece yeni ve zor bir şey engellendiğinde, yani yılda en iyi iki kez, birkaç hafta boyunca oldu. Bu şirketinizde ne sıklıkla oluyor?


Kesinlikle istediğimden daha az sıklıkta.
ozz

5

Bunu hiç böyle adlandırmadık, ama gün içinde yeni sorunlara her zaman böyle saldırdık. Bir çözüme başlamak için eşleşirdik, ancak genellikle ayrıntıları tek tek bitirmek / temizlemek için ayrılırız. Artık o kadar da değil. Daha nadir ve daha nadir görünüyor.


3

Çok yaygın değil. Son 10 yıldan beri bulunduğum tüm dükkanlarda bir kez gördüm. En yavaş ve en az verimli dükkanda. Gürültülü ve stresli bir ortam yaratıyor gibi görünüyor. Bir kişi sürüş yapmak ve sürekli konuşmak, diğerinin düşünmesini önlemek için rüzgar yapar.

Ekibi ister gruplar halinde ister çiftler halinde kod incelemeleri için bir araya getirin ve geliştiricilere kendi alanlarını verin. Uzun vadede en son Agile fad'i kovalamaktan daha iyi olacak.

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.