Yeni tekniklerin kullanılması üretkenliği zedeler mi? [kapalı]


20

Çalışmak zorunda olduğunuz belirli araçlarla ilgili deneyim arttıkça, yeni şeyleri denemeye yönelik teşvik zayıflar.

Bu programlama işinde yeni olduğumda, yeni şeyler denemek, çevrimiçi araştırma yapmak beni daha üretken hale getirdi , çünkü görevi kod çerçevesinin zaten mevcut olduğundan daha kolay hale getiren bir yol (ya da kütüphane) buldum. Yani yeni bir şey kullanmak - hem benim için hem de verilen kod tabanı bağlamında - beni daha üretken kıldı.

Şimdi orada bir problemin birden fazla, ben, daha fazla örnekleri olduğunu fark biliyorum muhtemelen oradaki olduğunu muhtemelen - - kod geliştirmek "orada" daha iyi bir çözüm ve edeceğini belirtmiştir. Ancak, kod tabanıyla ilgili şu anki bilgim göz önüne alındığında, sahip olduğumuz en düşük araçları kullanmak ve bir çözüm (testler dahil) çalıştırmak, yeni ve "daha iyi" ve "daha iyi" kod tabanını bulmaktan daha kolaydır.

"Düzgün do" e karşı "iş: Yani bu gerginlik var terbiyeli yapılır".

Bu birçok geliştiriciye olan bir şey mi? Bu bilinen özel bir sorun mu? (Sonuçta gerçek bir sorun mu?) Artan deneyim seviyesiyle gerçekten ilgili mi?

Oh, ve not: Hala işimi seviyorum ve devam etmeyi seviyorum. Sadece görünüyor - her zaman ilginç! - Ben uygulama ile yüzleşmek kod tabanı ve sorun setleri öğrenmek gibi araştırma bölümü küçük olsun.


3
kısa vadeli: evet - uzun vadeli: iyi, hepimiz COBOL sıkışmış olabilir
HorusKol

Terbiyeli bir şekilde yapılması da uygun olabilir.
QuanhD

Yanıtlar:


17

Yeni şeyler denemek genellikle risklidir. Bazen başımız belaya girer, çünkü iki şey yapma eğilimindeyiz:

  1. Serin / yeni / şık şeyin ne kadar yararlı olduğunu abartın. Bazı güzel örnekler görüyoruz, bazı kodlar çevrimiçi olarak atıldı. Çok güzel olduğunu düşünüyoruz. Çok havalı! XI Y görevini on kat daha hızlı yapabilir. Açıkça üstün. Henüz "bilinmeyen bilinmeyenleri" görmüyoruz. Yeni şeyin satış elemanlarının atladığı sorunlar bizi şaşırtmadı. Yeni şey konusunda kara mayınlarını bekleyen yeterli uzmanlığa sahip değiliz.

  2. Mevcut araçların / çerçevenin / yazılımın / şeylerin ne kadar yararlı olduğunu hafife alın. Mevcut sistem ilk inşa edildiğinde sık sık orada değildik. Yapılan hassas ödünleşmeleri takdir etmiyoruz. Mevcut bir sistemde Pazartesi-sabah oyun kurucu oynamak kolaydır, ancak çalışır . Muhtemelen bakımını sürdürme, çalışma ve iyi performans gösterme arasındaki çok özel ödüller nedeniyle çok garipleşti. Evet, garip. Belki de en önemlisi, takım şu anki tuhaflık konusunda uzmandır ve tuhaflığın etrafında nasıl çalışılacağını bilir. Kara mayınlarını, tuzakları ve kaçınılması gereken tuzakları biliyorlar. Aslında bunun nedeni, tüm siğilleri şu anki şekilde yeni şeylerle oynamakla bile ilgilendiğimiz şeyleri görmemizdir.

Ancak yeni şeyler denememek ve çok muhafazakar davranmak muhtemelen daha da tehlikelidir. Elbette dikkatli bir şekilde adım atmalıyız, ancak en iyi fare kapanı nasıl inşa edeceğimizi anlamazsak, rakiplerimiz yeni bir şey denemek için biraz daha istekli gelip izmaritleri atacak! Muhafazakâr davranmak ve gelişmekte başarısız olmak, özellikle rekabetçi bir pazarda kaçınılmaz kıyamete neden olabilir.

Bu yüzden evet, mevcut şeyleri korumak ve sevkiyatı bir miktar oynak / eğitsel deneylerle dengelemeliyiz, bu yeni yolların çoğunun çıkmazken diğerlerinin ödeme yapabileceğini akılda tutarak sorunları çözmek için yeni yollar. IMO Birçok şirketin yeni şeylerle oynamak için% 20 vakti olması iyi bir nedendir. Çoğu zaman işe yaramadıklarını biliyorlar, ancak% 20 zamandan çıkan fikirlerin çoğu gangsterler oluyor. Oynamak ve denemek için zamanınız olmadan bir şirket olarak kolayca durgunlaşabilir ve kendinizi gerçekten üzebilirsiniz.


1
Bence araştırdığınız "yeni" türüne bağlı. 60'lardan, 70'lerden, 80'lerden programlama kavramlarını araştırdım ve çok az programcı alanın tarihine baktığından hepsi yeni görünüyor.
Rudolf Olah

"Araştırma" ile ilgili bir başka iyi şey de, nihayetinde araştırdığınız araçları kullanmasanız bile, bazı ilginç kavramları seçebilmenizdir ... Şimdi bazı şirketler var (bildiklerimden bahsediyoruz: örneğin bankalar) özellikle "yeni şeyler" kullanmak istemez, ancak bunlar iyi bir şekilde yüklenene kadar bekleyin. Bazen akıllıca olur ... muhtemelen prototiplere, mootoollere, kutsal metinlere vb. Çok fazla yatırım yapan şirketler var ... o zaman bu çatışmanın savaşı "kaybettiğini" ve çok fazla desteklenmediğini fark ettiler.
Laurent S.

8

Her zaman olur . Bunu diğer yazılarda söyledim, ancak daha fazla kez, zarif kod geliştirme işinde değilsiniz, bir ürün nakliye işindesiniz. Bu nedenle, nkırık olmayan bir şeyi düzeltmek için saat ayırmak isteyen herhangi bir yöneticiyi bulmakta zorlanacaksınız ve gerçekten (günün sonunda) son kullanıcı deneyimini büyük ölçüde geliştirmiyor. n"Muhtemelen orada yapılanlardan daha iyi bir şey var" dışında araştırma yapmak için saat ayırmak isteyen (net bir nihai hedefi olmayan) bir yönetici bulmak kadar zorlanacaksınız .

Uygulamanızda profil oluşturma araçları ve benzeri kullanarak keşfettiğiniz darboğazlar varsa ve bunları düzeltmenin getireceği beklenen kullanıcı deneyimi geliştirmesini açıkça ölçebiliyorsanız, o zaman (oldukça kolay) biraz Ar-Ge yapmak için zaman almalısınız. çeşitli kaynaklardan bulabileceğiniz teknikleri kullanarak bunları optimize etmeye çalışın.


+1, "özelliğin gönderilmesi" nin genellikle tembel olmak için bir bahane olduğunu söylememe rağmen (testler, sürdürülebilirlik vb.)
Martin Ba

Cevabınızda söylediklerinizin çoğuna katılıyorum, ancak geliştiricilerin bir ölçüde zarif kod geliştirme işinde olduklarını iddia ediyorum. Gönderilen kod, düzeltmek / korumak için kolay bir yolla çalışmazsa değersizdir. Burada bugün n saat harcayarak "zarafet" kazanmak için yeniden düzenleme kodu yarın n * 10 saat tasarruf sağlar.
hspain

@hspain: Kesinlikle katılıyorum ve teoriye girmenin yolu bu, ancak işiniz ürünün kendisi değil kütüphaneler değilse, gerçek dünyada (en azından benim deneyimime göre) olma eğilimindedir.
Demian Brecht

Aslında, Agile topluluğundaki bazı insanlar bu sorunları işlevsel olmayan gereksinimler olarak izlemeyi savunuyorlar. Gereksinim "kod esnek ve değiştirilmesi kolay olmalıdır" (veya bunun gibi bir şey) olacaktır. Bu şekilde somut problemleri ele alan hikayeler yapabilirsiniz. Avantajı, paydaşlar tarafından görülebilir olmaları ve planlanabilmeleri / planlanabilmeleridir. Örneğin, bkz.
sleske

@sleske: ... Ve sonra önceliklendirme sırasında düşüyorlar;)
Demian Brecht

4

Bazılarının, bazı problemlerin nasıl başarılı bir şekilde çözüleceğine dair deneyim ve daha derinlemesine bilgi sahibi olmasından kaynaklandığını düşünüyorum.

Yeni olduğunuzda, tüm problemler de yenidir ve nasıl yapılacağını araştırmanız gerekir. Fakat aynı sorunu tekrar tekrar çözdüğünüzde, bu sorunun başarılı bir çözümünü bildiğiniz için araştırma ihtiyacı azalır.

O zaman sadece yeni problemleri veya eski denenmiş ve doğru olanların artık çalışmadığı (kullanımdan kaldırılmış) veya bir performans veya başarısızlık problemine neden olduğu sorunları araştırmaya eğilimlisiniz. Karmaşık bir sistemi daha derinlemesine anlamaya başladığınızda, yeni teknikler her geldiklerinde gerçekçi bir şekilde kullanacak zamanınız olmadığını biliyorsunuz ve yeni tekniklerin yaşamadığı çoğu zaman hype ve çözülenden daha fazla sorun yaratır. Böylece, sorunu çözmek için gerçekten ihtiyaç duymadığınızda yeni araçları ve teknikleri kullanmaya daha az meyilli olursunuz.

Ancak daha az eğimli olmak, öğrenmeyi bıraktığınız veya asla yeni bir teknik kullanmamanız gerektiği anlamına gelmez, sadece uygun oldukları zaman daha dürüst olursunuz.


4

İşte bazı ayrıntılar:

  1. Son teslim tarihleri ​​vardır : Programcı önceden kullandığı araçların gerekli tüm detaylarına sahip olmalıdır. Bazı web sitelerini okumak, yeni harika şeyler bulmak ve daha sonra üretim ortamında kullanmak büyük bir hayır. Araçla ilgili yeterli deneyime sahip değilsiniz ve daha da önemlisi, yeni bir şey öğrenmeye başlamak için yeterli zamanınız yok. Havalı yeni şeyler istiyorsanız, kullanmadan önce yarım yıl veya yıl öğrenin.
  2. Kullanmadan önce doğru şekilde bildiğinizden emin olun : Bazı güzel yeni araçların kullanımı eğlenceli olabilir, ancak çözümleri araştırmak ve daha sonra bunları düzgün öğrenmeden kullanmak çok kötü olabilir. Bu konuda yeterli deneyime sahip değilsiniz. Bunu anlamak için google'a ihtiyacınız varsa, sistemin yarısını bozduğunda düzeltmek için yeterince iyi bilmediğiniz anlamına gelir.
  3. En yeni şeyleri kullanmak doğru bir şekilde yapmıyor : yeni şeyler kanıtlanmış teknoloji değil. Gelecek yıl teknoloji muhtemelen tamamen ortadan kalktı, dünyada artık onu kullanan tek kişi sizsiniz. Diğer herkes bunun işe yaramadığını fark etti. En yeni gümüş mermiden kaçınmak için çok çalışmak gerekiyor, ama buna değer.
  4. Temel bilginiz olan tekniklere odaklanın : Her programcı, dünyadaki tüm programlama bilgisinin sadece küçük bir kısmını bilir. Programlayıcının onu kullanırken yeterince rahat olduğu kısım daha da küçüktür. Aslında çalışan kısım daha da küçüktür. Yalnızca doğru şekilde öğrendiğiniz bilgileri kullanın ve işe yaradığını biliyorsunuz. Bu sizi daha hızlı programcı yapar ve daha iyi kodla sonuçlanır.
  5. Sonsuz bir şekilde tweak etmeyin : Mükemmel kod iyi bir hedeftir, ancak bu önce biraz saçmalık ve daha sonra kademeli olarak daha iyi hale getirmek için sonsuza kadar ayarlamanız anlamına gelmez. Sahip olduğunuz tüm iyi bilgileri kullanarak ilk kez mükemmel bir şekilde yazın. Kendine güven. Dünyaya güvenme. Başka hiç kimse aynı şeyleri bilmiyor. Fikirleri önemli değil. Siz programcısınız, çalışmasını sağlamalısınız. Dünya bunu senin için yapamaz. Bir kez bitti, Dur. Birisi şikayet edene kadar dokunmayın.
  6. Yeni şeyler öğrenmek için zaman harcayın : Herkesin sürekli yeni şeyler öğrenmesi gerekir. Geleceğimiz buna bağlı. Sadece kullanmayı reddedin! Yeni şeyler öğrenin, ancak gerçekten çalıştığından emin olana kadar kullanmayın. Kanıtlanmış teknoloji olduğunda, gelecek yıl kullanma şansınız olacak. Yoksa unutmuştunuz, herkes gibi - sadece iyi şeyler kalır ...
  7. İyi şeyleri kaybetmeyin : Başarılı bir şekilde büyük sistemler kurduktan ve tüm sorunları çözdüğünüzde ve bazı güzel teknikler öğrendikten sonra, yapabileceğiniz en kötü şey bu bilgiyi boşaltmak ve yeni bir şeyler yapmaktır. Nasıl çalıştığını, hangi problemlerin olduğunu ve bu problemlerin nasıl çözüleceğini zaten biliyorsunuz. Onu atmak sadece zaman kaybıdır.
  8. Yeni teknolojiye ayak uydurun : Yeni sistemlerden biri başarılı olacak. Piyasadaki her şeyden daha iyi bir şeye sahiptir. Hangisinin gümüş mermi olduğunu bilmiyorsun. Eğer zamanında bulamazsanız, bilginiz eski olacaktır. Dünya, eski sistemlere erişimi kaldırarak tüm iyi şeyleri kaybetmenizi sağlayabilir.

Sonsuza dek değiştirmeyin için +1.
Srisa

3

Evet, oldu. Genellikle yeni tekniği öğrenmek için ne kadar zamana mal olacağına dair risk analizi yapmak zorunda kalırsınız ve yeni tekniğin beklentileri karşılayamaması durumunda eski bir tekniği iyileştirebilir ve kullanabilirsiniz. Yapabildiğim zaman yeni teknikler öğrenmeyi tercih ediyorum ama baskı devam ederken ve başarısız olabilecek yeni şeyleri denemek için zaman harcayamam , denenmiş ve gerçek yöntemlere bağlı kalıyorum.

Genel olarak, yeni teknikleri öğrenmek için en iyi zamanın yeni bir projenin başlangıcında olduğunu düşünüyorum. Genellikle çok fazla baskı olmaz ve iyi çalışan yeni bir şey bulursanız, ileride projenin geri kalanıyla kolayca entegre edebilirsiniz. En kötü yeni şeyler denemek ve öğrenmek için zaman büyük bir dağıtımdan önce çılgınca son birkaç haftadır olduğunu.


3

Evet, yeni şeyler üretkenliğe zarar veriyor

Evet tabi ki. En iyi senaryo için bile, yeni şeyler yabancı oldukları için ek zaman gerektirir. Genellikle daha fazla zaman alabilir.

Hayır, yeni teknikler verimliliği artırabilir

Çözümü daha kolay ifade etmenizi sağlayan yeni teknikler üretkenliğinizi artıracaktır. Bu, büyük if-elseifkoşullardan bir dağıtım tablosuna geçmek kadar basit olabilir .


1

Evet üretkenliğe zarar verebilir. Eski sevgilim bir kez sıkıcı veri işleme işi yapması istendi, bu yüzden verilerle başa çıkmak ve daha sonra çalıştırmak için uzun bir program yazmanın daha iyi olacağına karar verdi - bu da saniyeler içinde sorunu çözecektir.

Elbette yazması için bir hafta sürdü, ama sorun bundan sonra saniyeler içinde çözüldü.

Aynı şeyin sorunuz için de geçerli olduğunu düşünüyorum: evet, yeni şeyler öğrenerek verimliliğinizi artırabilirsiniz, ancak mevcut bilginizi göreve uygulamaktan ve genel olarak daha çabuk yapmaktan daha iyi olabilirsiniz. Kendinizinkini daha kısa sürede yazabiliyorsanız, yeni bir kütüphane bulmayı ve öğrenmeyi kimin umurunda.

Unutmayın, genellikle mevcut takımlarla düzgün bir şekilde yapılması, yeni şeyleri koymaktan daha iyi bir çözümdür. Her yeni eklediğinizde, gerekli olan bakım yüzeyini artırırsınız ve bu da herkesi yavaşlatır (ve kodunuzu oldukça dağınık hale getirin - Zaman içinde mirasa geçen ama hala kodumuzda olan şeyleri korkunç hale getiren 'yeni' teknoloji katmanlarını düşünüyorum. Geriye dönüp bakmak yerine, eski C yollarını kullanmak yerine tüm bu COM ve tüm bu VB ve tüm bu .NET ve şimdi de HTML içine kürekle)


Kesinlikle katılmıyorum: Kendi kitaplığınızı daha kısa sürede yazabiliyorsanız, yeni bir kütüphane bulmayı ve öğrenmeyi kim önemsiyor? & tüm bunları eklemek yerine eski C yollarını kullanmak daha iyi olurdu ... ve hepsi ... - Bu çok hata eğilimli ve muhafazakar IMHO.
Martin Ba

@Martin, elbette bunun tam tersi de geçerlidir - SO'da 'her zaman yeni şeyler öğren' diyen birçok insan okursunuz, bu da genellikle 'aynı tekerlekleri ancak bu sefer yeni bir araçta yeniden keşfet' anlamına gelir. İşi yapmanın yapmak istediğim her şeye göre öncelikli olduğu pragmatik bir yaklaşım benimsiyorum, ya da sonunda hayatı kolaylaştırabileceğim, 'sonunda' özellikle ' Gelen daha da yeni şeyler için yeni şeyleri görmezden geldiğiniz değişim oranı.
gbjbaanb
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.