Hangi noktada daha fazla para uğruna yazılım geliştirme ilkelerinizi bırakacaksınız?


16

Ortamın nerede olduğunu ilginç bir şekilde görmek için bu soruyu oraya atmak istiyorum.

Son 12 ay içinde, yazılım geliştirmede TDD ve bir çok Çevik değer aldığımı itiraf edeceğim. Yazılım geliştirmemin ne kadar daha iyi hale gelmesinden o kadar çok etkilendim ki, onları asla prensipten vazgeçmeyeceğim. Kadar ... Bana yıl için eve götürmek ödeme iki katına büzülme rolü teklif edildi.

Katıldığım şirket belirli bir metodolojiyi takip etmedi, ekip kod kokusu, SOLID vb.Gibi bir şey duymamıştı ve eğer takım daha önce hiç yapmamış olsaydı TDD yaparak vakit geçirmekten kesinlikle kaçmayacaktım uygulamada görülen birim testleri. Ben bir satış mıyım? Hayır, tamamen değil ... Kod her zaman "temiz" (Bob Amca'nın öğretilerine göre) yazılır ve SOLID ilkeleri her zaman ihtiyaç duyduğum şekilde yazdığım koda uygulanır. Ancak test benim için düştü, şirket takıma böyle bir bilinmeyen teslim edemedi, açıkçası test çerçeveleri oluşturmuş olsam bile, test çerçevesini asla doğru kullanamaz / sürdürmezlerdi.

Bunu örnek olarak kullanarak, bir geliştiricinin işçilik prensiplerini asla kişisel olarak para uğruna / diğer faydalar için düşürmemesini ne dersiniz? Bunun, kişinin kendi ihtiyaçları, iş ihtiyaçları ve işçilik uğruna ne kadar ilgilendiğine dair çok kişisel bir fikir olabileceğini anlıyorum. Ancak, örneğin, bir şirkete sahip olmayı tercih ederse, örneğin testin düşebileceğini düşünebiliriz. test ekibi, programlamada birim testini anlamak yerine, bu benim yaptığım gibi kendinizi affedebileceğiniz bir şey olabilir mi? Dolayısıyla, düşeceğiniz bir şey olduğu göz önüne alındığında, genellikle işte bıraktığınız şeyi telafi eden eşit bir maliyet olmalıdır - umarım, tabii ki topluluk / sosyal işbirliğini değil kendi ceplerinizi astarlamak için dışarıda değilseniz; ).

Paranı ikiye katla, RAD'a geri dön? Ya da yürü ve Agile yapan birini ara ve asla geriye bakma ...


19
Dostum, beyin yıkadın mı? Aptal olma ve paralarını al. İhanet? Ne delirdin? Kendini suçlu hissedersen, fazladan kazancın yarısını benimle paylaşabilirsin. Ekstra $ ile daha erken bir ev satın alabilir ve böylece pasif bir gelir kaynağınız olduğundan emin olabilirsiniz (kira) - bunu yapardım. Bu şekilde kaprisli olmayı ve kendi terimlerinizi daha sık belirlemeyi göze alabilirsiniz.
İş

1
Yeni bir yer haline geldi, bu yüzden her zaman bir öğrenme unsuru var, belki uzun süre değil. Bir ev almak benim için en büyük kazançtı, bunu bir yıl boyunca yapsam ve süreçlerin doğru olduğu daha uzun bir süre devam etsem bile. . Fakat tüm durum beni başkalarının kariyerlerinde daha önce neler yapmış olabileceğini düşünmeye itti.
Martin Blore

5
İnsanlar, neredeyse hepiniz ona parayı almasını söylüyorsunuz. Birisi için bu dengesizliğin, nükleer silah veya uyuşturucu üretmek için bir kimyager inşa etmesi istenen bir fizikçiye eşit olabileceği ortaya çıktı. Tamam, kötü kod muhtemelen ölüme neden olmaz. Ama prensipler bizi ve karakterimizi tanımlayan şeydir, onları feda etmeden önce iki kez düşünün.
Dave O.Şubat

1
@Dave: projenin kritiklik ölçeğine bağlıdır: en.wikipedia.org/wiki/Cockburn_Scale
rwong

1
Ben işi alırım. İş arkadaşlarınızı her zaman Karanlık Taraftan dönüştürmeye çalışabilirsiniz.
Kimse

Yanıtlar:


25

10 yıldan fazla bir süre önce birim testlere bağımlı olduğum için işyerlerimin çoğunda bunları ilk duyan ben oldum. Yine de yapabildiğim kadar küçük birim testlerimi yazmaya devam ettim ve görevlerime birim test maliyetini tahmin ettim. Birisi kodlama alışkanlıklarımı sorduğunda ne yaptığımı ve neden benim için çalıştığını söyledim. Genellikle insanların en azından bir kısmı ilgilendi ve sonunda konuyla ilgili sunumlar yaptım ve insanlara ilk ünite testlerini yazmaları için rehberlik ettim.

İnsanları yeni iş yerinizdeki ilk gün çevik yol konusunda ikna etmeye başlamanıza gerek yok. Sadece kendi çalışmanızdaki ilkeleri olabildiğince takip edin. İyi yaparsanız, daha iyi kod sunacaksınız. İş arkadaşlarınız ve / veya yönetiminiz bunu fark ederse, bunu nasıl yapacağınızı sorarlar. O zaman onlara söyleyebilirsin.

Güncelleme

Tecrübeli geliştiricilerin (ve yöneticilerin) çoğu trendlerin ve heveslerin gelip gittiğini gördü, bu yüzden en son terimlerle heyecanlanmıyorlar. Bununla birlikte, belirli bir yaklaşımın (araç, düşünme şekli) gerçekten pratikte işe yaradığını gösterebilirseniz , gerçek projede , zanaatlarına önem verenler neredeyse kesinlikle oturup dinleyeceklerdir. Ama takımınızda böyle bir kişi yoksa, belki daha iyi bir yer aramanın zamanı geldi ...


Teşekkürler Peter. Daha önce bu tür bir şey yaşadığınızı bilmek güzel ve ben kesinlikle tavsiye alacağım.
Martin Blore

17

Tüm geliştiricilerin de biraz proje yönetimi bilmeleri gerektiğini düşünüyorum. Her şey zaman, para ve kaynaklar arasında bir değiş tokuş. Kaynağı kendiniz düşünün.

12 yıllık programlamamda hiç bir projeyi tamamladığımı ve yapıldığını veya aklımda tamamlandığını düşünmüyorum. Her zaman daha iyi ya da daha temiz olmasını dilediğim bir şey vardı. Bunun bu değişimlerden kaynaklandığını anlamak çok uzun sürdü.

Yani eğer metodolojiler orada olmadığı için işleri değiştirmeyi düşünüyorsanız, siz olsaydım tekrar düşünürdüm. Bu değiş tokuşlar sabittir ve tüm yazılım geliştiricileri için geçerlidir. En özel oyun geliştiricileri bile bazı şeyleri tekrar tekrar yapabilmelerini veya bir şansları varsa tekrar farklı bir metodoloji pratik etmelerini diliyorlar.

Çevik geliştirme uygulamalarınıza bakmanız ve bunu mikro düzeyde bile yapabileceğinizin farkında olmanız gerektiğini söyleyebilirim. Elbette takım arkadaşlarınız la-la arazisinde istediklerini yapıyor olabilirler, ancak kişisel memnuniyetiniz daha büyük olacaktır ve uzun vadede onlardan daha iyi kod üreteceğinizden emin olabilirsiniz. Daha sonra yönetici gelip kodunuzun neden bu kadar iyi olduğunu sorduğunda, takımı dönüştürme şansınız olur :)

Ama insanları ya da işi sevmiyorsanız, cevabı zaten bildiğinizi düşünüyorum. Ama herkesin odada yürüdüğünden ve kodlarken çevik gelişim prensiplerini kullanmamanızdan şüpheliyim ... eğer yaparlarsa ... çığlık atmaya çalışın.


s / resources / quality / g = zaman ve para kaynakları nitelendirir. Gerçek denge zaman, maliyet ve kalitedir. Başka bir deyişle: Hızlı yapabilirim, iyi yapabilirim, hızlı yapabilirim, herhangi birini seçebilirim.
asoundmove

10

Sizi uzun vadede mutsuz edecek hiçbir şeyi düşürmeyin. Tabii ki, arazisiz arazide başlayabilir ve ekibin sizin yönünüzde hareket etmesini sağlayabilirsiniz. Eğer çabayı göstermeye istekliyseniz ve iş buna değerse, bu ilginç bir zorluk bile olabilir.

Ancak kodlama zevkini (veya bu konudaki herhangi bir işi) koruyan şeyleri bırakmak zorunda kalırsanız, deneyimim er ya da geç uzaklaşacağınızdır. Hayal kırıklığının asla hafife alınmaması gerektiğini öğrendim ...


4
+1 "Hayal kırıklığının asla hafife alınmaması gerektiğini öğrendim ..." - çok doğru. Uzun süren hayal kırıklıkları kesinlikle bir iş katilidir.
Martin Blore

7

Son işinizdeki insanlar zaten TDD, SOLID vb. Hakkında bilgi sahibi. Eminim orada çalışmaktan çok keyif aldınız ve çok şey öğrendiniz. Şimdi bu kavramları öğretme fırsatınız var (aynı zamanda büyük paralar kazanırken). Tecrübelerime göre, bir başkasına bir kavram öğretmek zorunda kalmam onu ​​her zaman kendimi daha ayrıntılı olarak öğrenmeme yardımcı oldu. Onlara karşı sabırlı olun ve konseptlerinizi birer birer zorlamaya devam edin. Sinirlendiğinde, eve git ve paranı say. Veya SE'de destek arayın.


3

Bu konuda ab * tch olduğumu itiraf etmeliyim. Serbest çalışan olarak, müşterinin proje için doğru metodoloji olarak gördüğü ne olursa olsun, benimle sorun yok. Bu, paranın önem verdiğim tek şey olduğu anlamına gelmez, ancak ne yapılacağı ve neyin dışarıda bırakılacağı hakkında karar müşteriye aittir. Olsa da, kötü çalışma koşullarını (yüksek, uzun saatler vb.) Kabul etmem.


2

Eski bir meslektaşımı alıntılamak istiyorum. Her iş veya yarı zamanlı bir proje aradığında, projenin karşılaması gereken üç kriter olduğunu söyledi:

  • Çalışmak eğlenceli olmalı
  • Yetkinlik gelişiminiz için faydalı olmalıdır (bunu ifade etmenin doğru yolu olduğundan emin değilsiniz)
  • İyi ödemeli

Sorunuzu okuduğumda, bu proje sadece son kriterleri karşılıyor.

TDD'ye düştüğünüzde (tıpkı benim gibi), günlük olarak dolaşacağınızı ve tüm iş arkadaşlarınızın sizinle aynı anlayışa ulaşmasını diliyorum. Yani ilk kriterler muhtemelen karşılanmayacaktır.

İkincisi, TDD projelerini takip etmek ve belki de çevik takımlar oluşturmakla daha fazla deneyim kazanmak istiyorsanız, bu proje üzerinde çalışmak bu becerileri güçlendirmenize yardımcı olmayacaktır. Bu nedenle ikincisi de karşılanmayacaktır.

Şahsen, eğer siz konumdaydım ve TDD'yi şirkete tanıtmaya yardımcı olacak bir konumda olmasaydım, başka bir yere bakardım.


Ayrıca konumu düşünmek istiyorum. Ancak, sadece bu üç kişiyle bile, bir projede üçünü de bulamazsınız. Genellikle iki kişilik yerim. Ve genellikle her seferinde farklı bir ikidir.
Mawg, Monica'yı

2

Asla.

Hayat, nefret edeceğiniz şeyleri yapmak için çok kısa (özellikle yaşlandıkça).

Tabii ki, iş değiştirmeyi zorlaştırıyor ve çalışmak için daha az yer var.

Ama en azından sadece eski kod kötü kokuyor. (Ve özerkliğim var, bu yüzden eski kod tabanından derleyici uyarılarını ortadan kaldırarak bir hafta geçirmek gibi mantıklı şeyler yapabiliriz ....)


2

Kısacası, geliştirme metodolojisi sizin bir parçanız değildir. Bu bir din değil ve kim olduğunuz da değil. Bu bir araçtır. Size söylenenleri, nasıl söylendiğini yapın ve ekstra para kazanın. Binlerce sistem geliştirildi ve bugün TDD, Kod Kokusu vb. Size söylendiği gibi çok çalışın ve her zaman ve her zaman takdir edilen parayı alın :)


1

Yeni ekiple çalışmanın zamanınıza iyi bir yatırım olduğundan emin olun.

Belki şimdiye kadar karşılaştığınızdan daha verimli çalışırlar. Eğer öyleyse onlarla çalışmak sizin için harika bir öğrenme deneyimi olacaktır (dolayısıyla iyi bir yatırım).

Öte yandan, yeni ekibin metodolojileri sizin için çok az değerli olabilir (çok fazla "kovboy kodlaması" vb.). Bu durumda, ek para muhtemelen buna değmez (IPO öncesi bir başlangıç ​​veya olağanüstü bir şey olmadığı sürece). Muhtemelen çok şey öğrenmeyeceksin ... ve yanma riski taşıyorsun.


1

İstediğim gibi çalışmama izin vermeyen bir yerde çalışmazdım. Bununla demek istediğim, mikro yönetilmek istemiyorum.

Yaptığım işte iyi olduğum varsayımı altında çalışıyorum ve bana bazı görevler verirseniz, onları verimli ve etkili bir şekilde halledeceğim. Kod yönergelerinizi ve kalıplarınızı ihlal etmemek koşuluyla bunları nasıl uyguladığım size kalmış. İşimin eğlenceli kısmı bu.

Yazdığım her sınıfı ünite testi yapmak istersem bu bir sorun olabilir, ancak son teslim tarihlerine uymak şartıyla ünite testleri yazmak genellikle iyidir. Bir TDD savunucusunun yazma birimi testlerinin aslında verimliliği (daha sonra vb.) Artırdığını iddia edeceğini umuyorum. Eğer senin ayakkabının içindeydim , pistte biraz zaman kazandıracak bazı birim testleri yazardım (muhtemelen daha az hata, daha kolay düzeltmeler). Daha fazla teste kaydedilen zamanı yeniden yatırırsanız, o zaman daha da fazla zaman kazanır ve sonunda harika bir test paketiniz olduğunda kocaman bir gülümseme ile oturabilir ve yeni bir 11. saatte kod değişikliklerinizi kolayca kontrol edebilirsiniz. gereksinimi gelir.

Eğer bunu yapamazsam, orada çalışmak isteyip istemediğimi bilmiyorum.

Söylediğim şey, bu konularda vermek ve almak gerektiğini düşünüyorum - biraz müzakere. Bana daha fazla ödeme, daha az parasal olmayan güzellikler bekliyorum. Ama her zaman, özellikle reddetmeye gerek olmadığında, özerklik ve kendine saygı düzeyine ihtiyacım var. O kadar özerkliğe sahip olduğum sürece başka bir prensibi bırakacağım. Sonuçta, geriye doğru çılgın bir metodoloji gibi görünen şey şimdiye kadar yaptığınız en iyi şey olabilir!

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.