Ne zaman aşırıya kaçar?


10

İlk uzakta, özür diliyorum çünkü nasıl bir topluluk iş parçacığı yapmak bilmiyorum; bu yüzden lütfen biri bana yardım etsin.

Bir geliştirici olarak, birçok platformda, teknolojide ve hatta altyapı düzeyinde; Kendimi her zaman soruyorum, ne zaman ÇOK fazla yapıyorum?!?

Başladığımdan beri hiç bitmeyen bir öğrenme süreci oldu. Öğrendiğim bir (1) şey, gereksinimlerin uzun bir süre için neredeyse geçerli olmadığı ve bu nedenle küçük bir öngörünün uzun sürebileceği yönündedir.

Fakat denge nerede ve zaman kaybettiğinizde, kazandığınızda nasıl biliyorsunuz ?!


1
Şu anda hiç müşteriniz olmadığında, ilk günden itibaren bir milyon kullanıcı için ölçeklemek gibi şeylerden mi bahsediyoruz? Ya da, vergi hesaplamalarının nasıl yapılacağını yapmak gibi daha işlevsel şeyler, değişebilecekleri bir öneri olmadığında ve hiç kimse yapmamış olsalar bile, bu varsayımsal yeni dünyada nasıl çalışacaklarına dair bir fikri var mı?
Jon Hopkins

1
Topluluk Wiki'si neredeyse kullanılmıyor. Asla planlandığı gibi çalışmadı. Endişelenme.
David Thornley

Bir milyon kullanıcıdan bahsederken, aşırı kelime dağarcığınızda olmamalıdır.
Theofanis Pantelides

Yanıtlar:


12

Ortalama bir geliştirici kodunuzu okuyarak ne yaptığınızı anlayamadığında çok fazla şey yapıyorsunuz .

  • Ekibinizle sık sık kod incelemeleri yapın.
  • Kullanmayı planladığınız mimariler, teknolojiler veya kalıplarla tartışın. (eğer varsa günlük stand-up toplantılarında)

Karşılaştığım tüm CV odaklı "mimarlarla" savaşıyorum . Keşke kubbe olsaydı! ;)

Dünyanın (programcının) hayatını iyileştirmek için kullanabileceğimiz çok büyük bir para harcadığına inanıyorum.


5
"CV ile çalışan tüm" mimarlarla mücadele ediyorum "Karşılaşıyorum" :)
Gratzy

2
Eşit derecede geliştiriciler göz önüne alındığında, bu konuda (pratikte) mutlaka aynı fikirdeyim. Amany kez ortak bir kütüphane kullanmak için benzer projeleri refactor ve her zamanki gibi okunabilir değil.
Theofanis Pantelides

1
Her ekip üyesinin üzerinde çalıştıkları kaynak kodunu yeterince iyi anlamaları oldukça önemli. Projenizin zenginliği ve mimarın kendi uygulamalarının kölesi olmasını önlemek. Yani bilgi konusunda çok fazla fark varsa, önce bunu düzeltin.

1
İlk cümleni seviyorum; kodun netliği önemlidir. Peki sık kod incelemeleri? Günlük toplantılarda mimari tartışmalar ... Gerçekten mi? Ve "CV güdümlü mimarlar" tam olarak ne anlama geliyor?
Robert Harvey

1
Sık kod gözden geçirmeleri otomatik olmaları gerektiği anlamına gelir. Bir özellik yazıyorsunuz, çalışma arkadaşlarınızdan biri onu gözden geçiriyor ve doğrulamak için anlaması gerekiyor. Size soru sorarsa, kodu daha iyi hale getirmek için birlikte çalışırsınız. Stand-up sırasındaki mimari problemlerinizden bahsediyorsunuz, ancak tartışma sonrasında gerçekleşiyor. Kime Mimar İhtiyacı Var ( martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf ). CV odaklı, bir teknolojiyi seçeceğiniz anlamına gelir çünkü

11

Süreçler sonuçları geçtiğinde.

Çok fazla kez, geliştiricilerin sonuçlardan ziyade sürece (süreçte daha fazla odaklanıyorsa (kalite gibi, son tarihi verme vb.) Kötü şeylerin başladığını gördük.

Bu nedenle, kod incelemelerinin, tasarım modellerinin vb. Amacının kodu daha iyi hale getirmek olduğu unutulmamalıdır, ancak hedefin kendileri değildir.


4

Benim için Kent Beck'in XP'de ortaya koyduğu yaklaşımı seviyorum ("onun" fikri mi yoksa başkasının mı olduğundan emin değilim ama ilk duyduğum yer bu):

Yarının problemlerinin ne olduğunu çözmeye çalışmadan bugünün problemlerini çözmek ve bunları çözmek yeterince zordur.

Geliştiriciler, var olmayan gereksinimler, asla meydana gelmeyecek durumlar ve hatta sorunun etkisinin önlenmesi maliyetinden önemli ölçüde daha az olduğu gerçek sorunlar için çözümler üzerinde çok zaman harcayabilirler.

Bu, kullanıcıların gerçekten isteyecekleri ve kullanacakları şeylere konabilecek, bunlardan birinin gerçekleşmesi olası olmayan olayda bile ortaya çıkabilecek rahatsızlıktan bile ağır basacak faydalar sağlayacak şeyler.

Kullanıcı için bu optimal olmayan sonucun ötesinde, bu şekilde aşırı mühendisliğin geliştiricisi üzerindeki etkisi, desteklenmesi daha zor ve geliştirilmesi daha zor olan karmaşık kod üzerinde olma eğilimindedir.

Bu yüzden benim için bir şeyin bir gereklilik olduğunu veya bir soruna neden olacağını biliyorsanız veya oldukça emin olabilirseniz, o zaman bunu ele almayın, eğer değilse.

Başlangıçta uyguladığınızdan daha geniş bir gereksinim olduğu ortaya çıktığında geri dönüp yeniden çalışmanız gerekebilir, ancak çoğu durumda olmayacağınız projenin toplam çabası hala daha düşük olacaktır.


Her şeyi modüle etmeye ve sonra ölçeklendirirken modülleri değiştirmeye ne dersiniz? ya da bu aşırıya kaçma mı?
Theofanis Pantelides

1
@Theofanis Patelides - İyi yapılandırılmış kod her zaman iyi bir fikirdir, ancak çoğu şeyde olduğu gibi kesinlikle çok ileri gidebilirsiniz. Bunların çoğunda zamanla içgüdüsel hale geldiğini düşünüyorum - daha önce ne yaptığınızı ve zaman kaybının ne olduğunu biliyorsunuz.
Jon Hopkins

1

Sorunuz oldukça açık uçlu, bu yüzden "projenin bir kısmında çok fazla şey yapıyor" olarak yorumlayacağım:

Benim için, müşteri için gerçekten fazla kazanç sağlamayan bir şeye çok fazla zaman harcamak kolaydır. Genellikle, müşterinin muhtemelen bu şekilde çalışıp çalışmadığını umursamayacağı gibi "Eh, işe yarıyor, ama tamamen istediğim gibi değil" gibi küçük şeyler.

Bu olduğunda, durdurmalı ve daha önemli şeylere zaman harcamalıyım. Ürünün bir bütün olarak çalışmaması daha iyidir, ancak mükemmel çalışan bu küçük parçalara sahipsiniz.

İzleme kodunu ( Kod Tamamlandı'ndan ) yazmak muhtemelen bundan kaçınmak için iyi bir fikirdir: Projenize GUI'den (veya yakınına) arka uca ve sonra geriye kadar tüm kodu bağlayan kod yazarak başlarsınız. Bu şekilde her zaman işe yarayan bir şeyiniz olur ve her şey bitene kadar küçük şeyleri mükemmelleştirmek için zaman harcamazsınız.

Fakat yine de, bu bir disiplin ve önceliklendirme meselesidir.


Katılıyorum, ama aynı zamanda kendimi birçok kez saatlerce işlevsellik harcıyor ve daha sonra teknik olmayan bir son kullanıcıya aktarıyor ve küçük şeyler yüzünden geri çeviriyorum!
Theofanis Pantelides

1

Hayır cevabını verdiğimde "delireceğim mi bunu daha sonra yapmadım ve beni ısırdı ..

IRL Kaynak ve zaman kısıtlamaları genellikle bu soruyu sormam gerekmeden önce beni alıyor. Bu noktada sadece en önemli / ulaşılabilir bitlere odaklanır ve en iyisini umarsınız.


1
Benim için Plan A
Theofanis Pantelides'ten

1

hiç bitmeyen bir öğrenme süreci! ... ve bu şekilde kaldığını düşünüyorum! Denge, işlerin yeterince verimli olduğu ve programlama dışında başka bir şey yapmak için zamanınız olduğu zamandır. Gablin'e "bir disiplin ve öncelik verme meselesi" ve jim hopkins ile bir süre sonra içgüdü kazandığına katılıyorum. Küçük parçaları mükemmelleştirmenin bizi mutlu eden şey olduğunu biliyorum ama sonunda son kullanıcıyı mutlu eden şeyle ilgili. Bu yüzden dengeyi (ya da belki de uzlaşmayı) son kullanıcı / müşteri / müşteriyi ilk önce mutlu etmek (ki bu A planı olmalıdır) ve sonra mükemmelleştirme için zaman çalışması varsa - "küçük parçalarınızı" ve / ya da lütfen diğer her şey. Bir noktada "yeterli" demek zorunda :) aksi takdirde evet, bu bir aşırıya kaçacak!

en kötü senaryo elbette son kullanıcı / müşteri / müşteri siz olduğunuzda! :)

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.