Eski teknolojilerle geliştirmenin avantajları nelerdir? [kapalı]


28

Küçük bir arka plan :

Windows XP kullanarak büyük bir şirkette çalışıyorum ve VB6 / VB.Net'teki Winform'ları ve VB.Net'teki bazı WebForms'leri kodluyorum (% 95 bakım kodu). Bir tane 4: 3 19 "ekrana sahibim. Windows'un daha modern bir sürümü yakında gerçekleşmiyor, ne de herhangi bir yeşil alan çalışması sesleri ile!

Şirkete katıldığımda bunlardan hiçbiri bana söylenmedi, çok daha güncel teknolojiler ve çerçevelerle çalışacağımı düşünmek için yanıldım.

Hem daha modern çerçeveler hem de diğer programlama dilleri ile önceki işlerden çok daha güncel deneyime sahibim ve diğer şirketlerden geliştirici arkadaşlarla buluşturduğumda duyduğum tüm duyduğum en son ASP MVC çerçevesini nasıl kullandıkları. Vagrant / Rails on Rails / etc ve ben yeşil gözler elde ediyorum!

Kendimi çok hızlı bir şekilde başka bir işle halledebilirdim, ancak buna bir şans daha vermem gerektiğini düşünüyordum.

Soru :

Şu anki işimin o kadar da kötü olmadığı konusunda kendimi ikna etmeye çalışıyorum. Peki bu rolün avantajları nelerdir? Eski teknolojilerle çalışmanın avantajları var mı? Belki daha modern olanlarla çalışamayacağım bazı teknikler? Yoksa burası kariyerlerin öleceği bir yer mi? Hala ruhum varken çıkmalı mıyım?


1
Asıl soruyu oluşturan kişisel tarihi temiz bir şekilde ayırmak için, sorunuzun gövdesini yeniden adlandırmak isteyebilirsiniz.
DougM

2
Roket yapıyormuş gibi veya hava trafik kontrolü üzerinde çalışıyormuş gibi davranabilirsiniz. Bu alanlar genel olarak gerçekten eski teknolojiyi kullanır, çünkü bu noktada tüm böcekler ya sabitlenir ya da bilinir. Ancak roket veya hava trafik kontrol mühendisleri bile VB6'ya 10 ft'lik bir kutupla dokunmuyor. :)
DXM

3
İş güvenliği? ....
Robert Harvey,

2
On yıl önce Delphi'de kod yazıyordum. Çok eğlendim, iyi bir dildi, VB yardy yardy'den daha iyiydi, ama işler böyle görünmüyordu. Zıpladım. Ancak bu gün Delphi'nin işleri artmaya devam ediyor ve iyi para ödüyorlar! Onu tehlikeye sok.
MrWhite

11
Kötü bir durumdan en iyi şekilde yararlanmaya çalıştığınız gerçeğine hayran olsam da, lütfen şu anki işinizin çok kötü olmadığı konusunda kendinizi ikna etmeye çalışmayın. Tecrübeden bahsetmek: eski teknolojiye sahip bir işte çok uzun kalmak, işsiz kalmaktan kurtulmak için gerçekten zor olan bir deliğe kolayca dönüşebilir . En azından mümkünse yanda daha modern teknolojiyle oynamaya çalışın.
Evicatos

Yanıtlar:


26

Tek duyduğum, en son ASP MVC çerçevesini nasıl kullandıkları ya da Vagrant / Ruby on Rails / etc ve yeşil gözler alıyorum!

Ah, ama orada oyuncakları ile oynuyorlar ve siz de bir çözüm elde etmek için işi yapan bir araç kullanarak gerçek iş yapıyorsunuz.

Göz önünde bulundurmanız gereken şey bu - yazılım çok sık yeni bir teknolojiden bir sonraki modaya atlayan insanlarla amatör bir mesele. Ardından, aletlerin sizin yarattığınız ürün veya çözüm kadar önemli olmadığı, daha profesyonel bir kariyer olarak gören başkaları da var.

Eski teknolojinin yeni bir şeyle değiştirilmesine ihtiyaç duyulan yerler var, ancak toptan satış yerine değil, genel olarak sadece yükseltmeleri var. Örneğin VB6, VB.NET'e, Visual Studio 2002 ise Visual Studio 2012'ye yükseltiliyor. Tamamen tekrar yazmaya giren herkes, işlerin yeni araçlarla pek de fena olmadığını görüyor. (bu yüzden Joel, diğerleri arasında, tekrar yazmanın daima yanlış cevap olduğunu söyler)

Bu yüzden bir şeyler başarmaya odaklanın ve mümkün olan yerlerde, yavaş ve dikkatli bir şekilde anlamlı olduğu bir yere yükseltin - en yeni oyuncaklarla oynamak istediğiniz için (ki yine de yakında atılacak ve istediğiniz en son şeyi yapmak geçen yılın en iyi teknolojisine kodlanmış kişilerin yazdığı sistem )


1
VB6, DOS'un Windows NT'ye yükseltilmesinden daha fazla VB.NET'e yükseltilmedi. FWIW.
DougM

21

Gerçekten de, bir şirketin eski teknolojilere bağlı kalmasının çeşitli faydaları vardır:

  1. Eski şeyler bazen yeni şeyler ile çalışmaz

    Bir şirket, yalnızca yeni dillerle veya işletim sistemleriyle çalışmayan sistemlere büyük miktarda para yatırmış olabilir. Klasik bir örnek, yalnızca IE6 ve IE6 ile uyumlu birçok intranet web uygulamasıdır. Windows XP + IE6'ya bağlı kalmak ve çalışan bir sistemi çöpe atmak ve yenisine para yatırmak arasındaki seçim açık değildir.

  2. Değişim uğruna değişim akıllıca bir seçim değildir

    Örnek: Birçok banka halen COBOL'da yazılmış uygulamaları sürdürmeye devam ediyor. İşler işe yaradığında, neden bir işletme yeni bir hata ortaya çıkarsa, büyük bir işletme kritik sisteminin yeniden yazılmasının maliyeti ve bunun yanı sıra yanlış anlama riski de göz önüne alındığında, neden başka bir dilde yeniden yazmaya karar verdi? (Sebeplerden biri aşağıda açıklanmıştır)

  3. Lisanslar olan pahalı

    Bir şirketin Windows XP kullanan birkaç masaüstü bilgisayarı olduğunu varsayalım. Windows 8'e geçmek istiyorlar. Windows 8 Enterprise'ın tek bir lisansının maliyeti nedir? Ya bu maliyeti makine sayısıyla çarparsak?

    Sunucular için daha da kötüleşiyor. Oracle veya Microsoft SQL Server için tek bir lisans yaklaşık 30.000 - 40.000 ABD Doları tutarındadır. Bir şirketin elli veri tabanı sunucusu varsa, Toplu lisanslamada bile hızlı bir şekilde çok pahalı olur.

    Benim şirketimde, Visual Studio 2010'a sıkıştık kaldık. Çok sayıda hatasında sıkıntı çekiyoruz ve Microsoft bu sürümü terk ettiğinden beri asla çözülmeyeceklerini biliyoruz. Ancak 13.000 $ (diğer sürümlerde bulunmayan benzersiz özellikleri nedeniyle Ultimate sürümüne ihtiyaç duyduğumuz göz önüne alındığında), Visual Studio 2013’e güncelleme yapmamız için çok yüksek.

Bunu söyledikten sonra, önemli dezavantajları da vardır.

  1. Eski şeyler yeni yetenekler çekmiyor

    COBOL uygulamalarını sürdüren şirketlerin sorunlarından biri de: ucuz geliştiriciler bulmakta zorlanıyorlar. Ayrıca, ana bilgisayarlarda çalışmak ve COBOL kodunu yazmak, yaratıcı kişiler için çekici bir şey değildir.

    Sağlam kalmayı gerektiren omurga sistemleri için iyi bir seçim olmasına rağmen, bu sistemler ve diller sürekli yenilik gerektiren ürünlere uygun olmaz.

  2. Eski güvenli demek değildir

    Bir ürünü yeni bir dilde yeniden yazmak, yeni hatalara yol açabileceğinden, artık desteklenmeyen eski sistemleri saklamak da tehlikeli olabilir. Windows 98'de, tüm sistemi tehlikeye atabilecek bir hata bulunduğunu düşünün: Microsoft sorunu çözmek için bir güncelleme yayınlar mı?

  3. Miras viral

    Eski ve daha yeni sistemler arasındaki uyumsuzluk, eski bir ürün, dil veya altyapıya bağlı kaldığınızda, başka bir yerde yükseltme yapamayacağınız anlamına gelir. Yalnızca IE6'da çalışan eski bir intranet uygulaması, tüm masaüstlerinde Windows XP'ye yol açar; bu, yeni bir Active Directory sürümüne geçemeyeceğiniz anlamına gelir; bu, en son Active Directory sürümünü gerektiren yeni uygulamaları kullanamayacağınız anlamına gelir ve yakında.

  4. verimlilik

    Ürünlerin yeni sürümleri, bazen verimliliği artıran yeni özellikler getiriyor. Visual Studio 6.0 ile bir saat sürecek bir görev Visual Studio 2013 ile bir saatten daha az bir sürede yapılabilir, çünkü Visual Studio 2013 ve .NET Framework 4.5 gelişmiş Intellisense, Entity Framework ve kodları azaltan binlerce başka şey getirir yazmak için, yazma kodunun hızını arttırın ve hata yapma riskini azaltın.

    Örnek yeterince açık değilse, işte bir tane daha. Windows 3.1'de, sistem yöneticileri her makineyi birer birer, tek tek kuracaklardı (bilmediğim bir otomasyon olmasaydı). Bugün, birkaç dakika içinde otomatik olarak binlerce makineye yeni bir işletim sistemi ve yazılım dağıtmak için PXE ve Windows Değerlendirme ve Dağıtım Kiti'ni kullanacaklardı.

    Eski sürümleri kullanmak sadece maliyet engelleyici olabilir. Windows 95'i kullanmaktan mutlu olan bazı kullanıcılar için açık olmayabilir, ancak geliştiricilere, sistem yöneticilerine, tasarımcılara, bilim adamlarına ve donanım ve uygulamaların gücüne çok fazla güvenen diğer insanlar için çok daha açık bir şekilde görünebilir.


Linux ve Eclipse veya MonoDevelop kullanın. LIicensd maliyeti: 0 $.
Demi

7

Güncel olmayan teknolojilerle geliştirmenin bazı avantajları vardır, ancak bunların değiştirmelerinde akıcılığını kaybetmek için katlandığınız maliyetten ağır basıp basmadığı ve onlarla çalışmanın acısı, sizinle aradığınız kişisel bir seçimdir.

Eski, değiştirilmiş teknolojiyle çalışmanın üç faydasını düşünebilirim:

  1. Eski teknolojinin kendisine aşinalık

    Halen kullanılmakta olan eski teknolojiler, bir yerde, birisinin, değiştirmekten daha ucuza bakmaya karar verdiği teknolojilerdir. Bu tür eski teknolojilerle iş deneyimini listeleyebilmek, kendi başına aynı alanda çalışan başka bir iş edinmenize yardımcı olabilir. Gittikçe daha fazla geliştirici ilerledikçe, bu tür çalışmalar için ücret alabileceğiniz prim artar.

  2. Yeni bir şeyler öğrenme pratiği yapma şansı

    Sadece bir başkasının size öğrettiği dillerde program yapabiliyorsanız, gerçekten bir programcı değilsiniz. Tekniklerinizi ve modellerinizi eski teknolojiye uyarlayabilmek, yeni teknolojiye adapte etmeniz gereken becerilerin çoğunu gerektirir.

  3. Neden değiştirildiklerinin daha iyi anlaşılması

    Teknolojinin kendisine aşina değilseniz, programcı olmayan bir İK ya da Yönetici türüne neden VB.NET ya da C #'nın VB6'dan daha üstün olduğunu açıklamak zor. Ve ikincisini tam olarak bilmiyorsanız, neyin değiştirildiğini öğrenmek, yerine geçenlerin neden nasıl yazıldığını anlamanıza yardımcı olabilir.


Yukarıdakilerin hepsi, bir şirketin, teknolojide yazılmış bu kadar eski hale gelen herhangi bir uygulamanın bakımına devam etmesi için kesinlikle hiçbir neden olmadığını söyledi.

Belgelenmemiş bir hata nedeniyle çalışma zamanı başarısız olana kadar tek başına bırakılabilirse, bu bir şeydir - ancak bir geliştirici bir geçiş planı olmadan eski teknolojiye harcadığı her saat, işletmenin sonunda ödemek zorunda kalacağı teknik borçtur.


9
"Bir şirketin, teknolojide yazılmış bu kadar modası geçmiş herhangi bir uygulamanın bakımına devam etmesi için hiçbir neden yoktur." İle aynı fikirdeyim. Şirketi sürdürmesi gereken maliyetten daha fazla para kazanıyorsa, sürdürmeleri gerekir. Daha modern bir çözümle değiştirmeyi düşünüyor olmalılar, ancak para kazanırken kolayca değiştirilemeyecekleri için bakımları yapılmalı.
Stephen

Bazen doğru, ancak yazılım "tasarruf" yerine "para kazanıyorsa" birisi müşterilerini aynı şekilde kötüye kullanıyor.
DougM

Yazılım, müşteri için para tasarrufu yapabilir ve onu geliştiren şirket için yapabilir. Her şey bir ev uygulaması değildir. Heck, yazılım da müşteri için para kazanabilir. Visual Studio'ya bakın. Hem satıcıya (Microsoft) hem de alıcıya (yazılım evleri) para kazandırır.
Stephen

Evet, bu yüzden böyle söyledim. Ve yinelemek gerekirse, on yıllık bir platformda kurulmuş bir yazılım satıyorsanız, müşterilerinize bir kötülük yapıyorsunuzdur.
DougM

1
Katılmıyorum. Bir geliştirici olarak, her zaman en son teknolojiyi kullanmak istiyorum. Ancak, kullanıcının bakış açısından bakılmakta olan eski bir VB6 programından büyük bir değer alabilirler. Sıfırdan yeniden geliştirmek için ekonomik veya pratik olmayabilir, ancak sürdürülmeye değer olabilir (bu özellikle çok küçük bir niş pazara sahip özel yazılımlar için geçerlidir).
Stephen

6

Bir noktada şirketin VB6'nın ömrünün sonuyla ilgili endişelenmesi gerekecek, ancak ne yazık ki VB.NET'in biraz nefesi kaldı.

Tek bir küçük monitörde çalışmanız için herhangi bir neden var mı? Bu, şirketin iyi test edilmiş teknolojilerden endişe etmekten daha ucuz olması gibi görünüyor. Bu bir kaç 21 inçlik monitöre hata getirmeyecek gibi değil.

Becerilerinizi keskinleştirmek ve bunun için para kazanmak için, kurulum, test ve kurulum ayarlarınıza bakmanızı öneririm. Bu, komisyon ve powershell kullanarak ve / veya yapım ve dağıtım için bazı yeni teknolojiler kullanmaya başlamak için bir fırsat olabilir. Birim testleriniz yoksa eklemeye başlayın.

Günün sonunda, şirket teknoloji alanında değilse, o zaman her zaman onlara ikincil olacaktır. Temel iş operasyonlarını korumak için istikrarı sağlamaları anlamlıdır.

Kariyer tavsiyesi vermekten kaçınacağım, başkalarının üsleri kapsadığından eminim.



3

Birden fazla avantaj var:

1) Teknolojiler için, yaygın olarak kullanılmayan gizlenmiş olmadıkları sürece, birçok kaynak olacaktır.

2) Umarım şirketteki diğer kişiler, değişmedikleri için teknolojiler konusunda uzman olacaktır.

3) Çok fazla yeni gelişme yoksa, daha eski veya daha hızlı olması için eski kodu yeniden düzenlemeye çalışabilirsiniz. Bu eski teknolojiyi barındıran mağaza türünün, muhtemelen ne kadar çılgınca gelse de "işe yarayan" herhangi bir kodu değiştirmeye karşı olacağını unutmayın.


5
Kod çalışırsa, o olmamalı bunu önleyebilirsiniz eğer değiştirilemez. Bir geliştirici her değişiklik yaptığında, yeni hatalar ortaya koyma olasılığı vardır - ve yeni hatalar, eski kod kullanmanın yararını büyük ölçüde olumsuzlar.
DougM

Bunun uğruna değişim açıkçası iyi bir fikir değil. Bununla birlikte, yazılım belirli bir olgunluk seviyesine ulaştığında, dikkat genellikle uygulamanın daha yavaş kısımlarını ayarlamaktan geçer.
Robbie Dee,

3

Bu sorunun tersine yoğunlaşacağım, yani yeni teknolojilerin kullanılmasının dezavantajları, eski teknolojilerin avantajları diğer tepkilerde yeterince ele alınmıştır.

Hala büyük bir Visual Studio 6 kod tabanımız var ve yakın zamanda değiştirilecek gibi gözükmüyor.

Ancak, yeni gelişmeler için elimizden geleni yeni teknolojilerle ilerliyoruz.

Sizin hakkınızda olduğunu düşündüğüm gibi, COM kullanarak oldukça eski VB6 kodlarıyla güzel bir arayüz oluşturan VB.NET yazmak mümkündür.

En son teknolojilerin kullanılması, şüphesiz, çoğu zaman önemli verimlilik avantajları sağladıklarından, eğlencelidir. Ancak, kapak tarafı sizi günler / haftalar geri koyan bir böcek / aksaklıkla karşılaşabilmenizdir. Bir nedenden dolayı kanama kenarı denir!

Şirket, yazılımı yükseltmek için para biriktirse bile, bu (kişisel deneyimimden bulduğum gibi) şirketin hangi yolu seçerse seçmesi gereken bir parça olabilir:

Yazılım Limanı

Yazılım yeniden yazılmıştır ancak kullanıcıları rahatsız etmemek için eski yazılımla tamamen aynı görünmelidir. Yeni teknoloji ile çalışmanın sevinci, yeni GUI sihirbazlarından hiçbirini kullanamadığınız gerçeği ile geçersiz kılınır.

Visual Studio güncellemesi

Stüdyonun bir versiyonunda iyi çalıştığı koddaki aksaklıkları gidermek için çok fazla zaman harcadığınız için yeni özelliklerin hiçbirini gerçekten kullanamazsınız.

İşlevsel göç

Temel işlevselliği koruyan yazılımı taşırsınız. Bu, geliştirici bakış açısından en fazla özgürlüğe izin verir, ancak yeni katma değerli özellikler de dahil edilmedikçe, şirketin böyle bir uygulamanın değerini sorgulamasına neden olabilecek hatalar ortaya çıkabilir.

Birçok geliştirici için Nirvana, modern teknolojiler üzerinde kaliteli eğitim, öğrendiklerinizi uygulama şansı ve ardından dişlerinizi kesmek için yeşil alan projesidir.

Yapmanız gereken, büyük ölçüde, bulunduğunuz kişinin türüne bağlıdır. Neophiles, eskilerin en iyi olduğunu düşünürken, luddites her zaman yeni şeyler ile çalışmak isteyecektir. Birçoğumuz arasında bir yerdeyiz. Kendini rahat hissettiğin yerde çalışmalısın. Statüko ile yaşayabileceğinizi düşünüyorsanız, o zaman parayı şimdi alın ve daha uygun bir pozisyon için yarım göz atın.


1

İstediğiniz tam olarak bu olmayabilir, ancak bazı önerilerim var:

Bence en büyük yararı, işvereninize ne zaman göç etmeleri gerektiğinin farkına vardıklarında, uzmanlık açısından neler sunabileceğinizi düşünüyorum. XP bu yıl sona erecek , bu yüzden BT departmanınızın zaten bir geçiş stratejisi olduğunu düşünüyoruz. (Olmazsa, özgeçmişinizi hazırlayın, çünkü onlar şirket uzun sürmeyeceklerdir.)

Bunu akılda tutarak, birincil yazılım araç setlerini işletim sistemi / platform geçişi ile birlikte geçirmek için bir avantajlar listesi derlemeye başlamak akıllıca olabilir. Yeni teknolojiler konusunda teknik açıdan uygun olmayan yönetim zincirinizi YG'ye göre eğitin. Yöneticileriniz vızıldayan çerçeveler ve teknoloji oyuncakları hakkında çok fazla bilgi vermeyeceklerdir, ancak devam eden bakım giderleri, gelecekteki gelişim vb. Karşılaştırmalı maliyetleri ile ilgili uzun vadeli tahminlerinizle çok ilgilenmelidirler.

Bu aynı çizgiler boyunca, müşterilerinizin (yazılımınızı kullanan çalışanlar) memnuniyet seviyesini bulmak için bu fırsatı kullanabilirsiniz. Hangi gelişmeleri görmek isterler? Hangi böcekler onları deli ediyor? Hangi özellikler etkinliklerini önemli ölçüde iyileştirir? İşvereninize, teknolojiye yapılan yeni bir yatırımın net bir şekilde etkilerini göstereceğini gösterebilirseniz, Teknik Göç Yöneticisi unvanını iyi kazanabilirsiniz.

Ve BU HERHANGİ bir özgeçmiş üzerinde iyi görünecek.

GÜNCELLEME: Sektörünüzde yalnız olmadığınız anlaşılıyor: " Dünya ATM'lerinin% 95'i XP kullanıyor ". Beni yanlış anlamayın: XP harika - Ben her zaman bir hayranıydım. Ancak gerçek şu ki, güvenlik yamaları ve güncellemeleri sona erdiğinde, XP bir banka için uygun bir ürün olmayacak. İşiniz (bankanızın müşterileri uğruna), emeklilik tarihinden sonra XP’yi korumak için yöneticilerinize çok daha fazla ödeme yapacaklarını (uzatılmış hizmet düzenlemelerinde veya saldırı azaltmada) sona erdireceklerini bildirmektir. @ RobbieDee'nin bağlantısının işaret ettiği gibi: 14 Temmuz 2015 tarihine kadar vaktin var. Bu, yeni bir sistem tasarlamak, uygulamak ve yerleştirmek için yeterli bir zamandır (şimdi başlarsanız).

(Ancak bu fikri şirket çapında XP kurulumunda yeni imzalayan adama satmaya çalışmayın. Sizin müttefikiniz değil. Böyle bir kararla, bu roldeki günleri numaralandırılır. bilge başları geçerli.)


FYI - destek (en azından kısmen) orijinal 2014 son tarihinin ötesine uzatıldı: bbc.co.uk/news/technology-25758308
Robbie Dee

Merhaba, cevap için teşekkürler. Bu oldukça basit bir şekilde ne yazık ki gerçekleşmiyor, şirket (bir banka) son zamanlarda (2013'ün ikinci yarısı), bir PC yenileme sürecinden geçtiler; buradaki zincirdeki her bilgisayarı değiştirmek için Dell'den yeni bir kit aldı. Daha sonra IBM'den insanlara tüm bu makineleri silmeleri ve XP kurmaları için para ödediler! Anladığım kadarıyla daha modern bir işletim sistemine geçmek istiyorlarsa, bu altın bir fırsattı. Normalde cevabınız katı olsa bile tavsiye olur +1
prisoner24601

@RobbieDee -bu kullanıcı114764 sadece yeterli zaman verir.
kmote
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.