Çokuluslu şirketim bir geliştirme platformundan diğerine nasıl geçiş yapabilir?


10

Büyük, uluslararası bir şirketin BT bölümünde çalışıyorum. İş için farklı İntranet uygulamaları geliştiriyoruz (Şikayetler, İadeler, Hizmet Masası vb.). Şimdi PHP platformundan .NET'e geçmeye karar verdik (MS CRM Dynamics, Exchange ve MS Office ile entegrasyon birçok nedenden biri olabilir). İşletmenin şu anki PHP platformunda kullandığı yaklaşık 20 farklı uygulama olduğundan, hepsini yeni platforma taşımanın en iyi yolunu bulmamız gerekecek. Biz geçiş yaparken biz tüm bu uygulamaları geliştirmek istiyorum gibi, kod vb dönüştürmek nasıl ayrıntılara girmek istemiyorum.

Bu nedenle, bu uygulamaları taşımanın 2 ana yolunu bulduk:

  1. Sadece bir platformu destekleyin. Ne anlama geliyor? Ana sayfa oluşturun ve tüm uygulamaları olduğu gibi .NET'e taşıyın (bunu yaparken geliştirmeden). Yeni intranet çalıştıktan sonra, taşınan uygulamaları yeniden oluşturmaya ve geliştirmeye başlarız. Bu, PHP platformunu desteklerken .NET'te intranet geliştirmemizi sağlayacaktır.

  2. Her iki platformu da bir süre destekleyin. Bu sadece bir ana sayfa ve 1 veya 2 yeni uygulama (PHP platformumuzda mevcut değildir) oluşturmak anlamına gelir. Bunları kullanıcılar için kullanılabilir hale getirme ancak PHP platformunu çıkarmama (kullanıcıların PHP sayfasındaki uygulamalar ile yenisi arasındaki uygulamalar arasında geçiş yapmasını kolaylaştırmak için menüleri ve bağlantıları birleştireceğiz). Daha sonra PHP uygulamalarını geliştirirken yeniden yazmaya başlayacağız.

Şimdi neyin daha iyi olacağından emin değilim, bir yandan (seçenek 1), aynı anda iki farklı platform kullanmaya zorlayarak kullanıcılar için her şeyi kolaylaştıracağız. Her ne kadar hoş görünen her şey dışında yeni platforma sahip olma konusunda herhangi bir gelişme görmeyecek olsalar da, yeni platformdaki uygulamaların işlevselliği bir süre için aynı olacak. Ayrıca kendimizi (IT dep) daha fazla iş esentially biz her app iki kez yazmak gibi eklemek düşünüyorum.
Öte yandan, iki platform farklı göründüğü için iki (2) kullanıcı daha kötü bir deneyime sahip olacak, ancak yeni uygulamalar hareket ettikçe yeni platformun faydalarını fark edeceklerdi.

Herhangi biriniz böyle bir şeyle karşılaştınız mı? Ne seçersiniz? Ya da belki sunduğumdan farklı, daha iyi bir yol var mı? Ne düşündüğünü ve buna nasıl yaklaşacağını bilmek istiyorum.


1
# 2, # 1'e bir adım değil mi?
Tae-Sung Shin

Hayır, bunlar 2 farklı şey. 1'de, kullanıcıların kullanmasına izin vermeden önce intranetin tamamını taşıyacağız ve daha sonra uygulamaları geliştirmeye çalışacağız. 2'de intranetin önemli bölümünü taşıyacağız, kullanıcıların kullanmasına izin vereceğiz ve daha sonra taşırken diğer uygulamaları taşımaya ve geliştirmeye başlayacağız ...

@greengit: konuyu okuyun, diğer kritik iş uygulamalarıyla entegrasyon nedenlerinden biridir. Benim sorum 'Niçin Göç Edilir' değil, 'Nasıl Göç Edilir?'
Daniel Gruszczyk

Konuyu okudum ve aynı soruyu sordum. Projenin maliyet açısından haklı olup olmayacağından şüphe duyuyorum. Kısa satış yapabilmemiz için bize şirketin adını söyleyebilir misiniz? ;)
mcottle

haha, dürüst olmak gerekirse maliyetlerle ilgilenmiyorum çünkü şirketle işe yerleştirilen bir BT öğrencisiyim. Ben sadece kendi bilgimi istiyorum ... Görünüşe göre yöneticim CEO'dan devam edecek kadar masrafları haklı çıkardı ...
Daniel Gruszczyk

Yanıtlar:


5

Her iki senaryonun da düşünelim:

Tek seferde her şey taşıma

Kod tabanınızı taşırken müşterileriniz mevcut uygulamalarınızı kullanmaya devam edecektir. Taşıma işlemi önemsiz bir zaman alacağından, hata düzeltme ve özellik geliştirme için eski kod tabanında bir bakım ekibinizin olması gerektiği anlamına gelir. Eski kod tabanında yaptığınız her değişikliğin yeni kod tabanında gerçekleşmesi gerekir. Geçiş yapılmadığı sürece her kod satırını iki kez yazacaksınız ve bu da taşınması daha uzun sürüyor. Yani, hepsi şuraya kayıyor: tam göç için geri dönüş süresi ne olacak? Geliştirme maliyetleriniz geri dönüş süresi devam ettikçe yükselecektir.

Parça parça taşıma

Bu senaryoda çifte çaba üzerinde daha iyi kontrole sahip olacaksınız, ancak yine de çok fazla ek maliyetiniz olacak. Dağıtımınız, iki kez dağıtım sorunu ve ek sunucu kaynakları gerektiren iki ayrı platform içerecektir. Çok modüler olarak organize edilmiş bir uygulamanız yoksa, diğer platformda genellikle ihtiyacınız olandan bir parça kod bulunduğunu görerek ek taşıma ve bakım çabalarına neden olur. Taşıma işlemi yapılmadığı sürece geliştirme maliyetiniz daha yüksek olacaktır. Aynı zamanda özellik baskısı, taşıma işlemini tamamlamanızın çok uzun süreceği anlamına gelir.

Sonuç

Kişisel deneyimlerden size iki şey söyleyebilirim:

  • Programlama dillerini değiştirmek nadiren işe yarar. Bir maliyet-fayda analizinden, PHP'den .NET'e geçmenin karlı olması pek olası değildir. Yani benim ana tavsiyem: yapma. Mevcut kod tabanınızla ilgili sorunlarınızı çözmeye çalışın.
  • Parça parça en iyi yaklaşımdır, ancak uygulama modülleri düzeyinde bunu yapmakta zorlanacaksınız. Geçiş tam olarak yapılmadığı sürece mimarinin her iki tarafında da özellikler geliştirmek ve sürdürmek zorunda kalacağınızı göreceksiniz. Müşterilerin en çok neye ihtiyaç duyduklarına değil, çifte çaba miktarını neyin sınırlayacağına (dolayısıyla maliyeti düşürecek) özelliklere öncelik vermek iyi bir fikir olabilir.

Çok ilgi çekici noktalar yaptınız. Her ne kadar platformu değiştirsek ya da değiştirmeyeceğim kendime bağlı olmasa da, şirket için sadece eylül sonuna kadar çalışacağım (tek bir işe yerleştirmede onlarla beraberim). PHP'den .NET'e geçmek iyi bir fikir olabilir, ancak eski PHP çerçevesinin bazı MAJOR çalışmalarına, veritabanlarına da ihtiyaç duyacağından, şirketin şu anda kullandığı sistem ESKİ ve büyük geliştirme becerilerine sahip olmayan kişiler tarafından oluşturuldu. ..
Daniel Gruszczyk

Ayrıca sorum şu olurdu: Eski platformdaki 'değişim donması' iyi bir fikir mi? Bununla kastettiğim, PHP platformundaki mevcut sistemlerde, hata düzeltmeleri dışında herhangi bir değişikliğin, verilen uygulamayı .NET'e taşımaya başlayana kadar dondurulmuş olmasıdır. Yöneticimin göç planının bir parçası ...
Daniel Gruszczyk

Bu önemsiz bir sistemse, bir değişiklik dondurmasının pratikte çalışması pek olası değildir. Birisi gerçekten bir özelliğe ihtiyaç duyarsa, onu yöneticinizden daha yüksek bir seviyeye yükseltir ve siz de değişiklik yapmak zorunda kalırsınız. Ayrıca, hata düzeltmeleri kendi başına büyük miktarda takım kaynağı alabilir. Ve her zaman eski sistemlerin çok fazla tweaking gördüğünü ve yeni tasarımların, kullanıcıların yeniden tasarlanan ürünü kabul etmesi için tekrar tekrar yapılması gereken tüm bu tek satırlık düzeltmeleri unutacağını unutmayın.
Joeri Sebrechts

Bir nokta daha: sistem yeniden inşa edilecekse, bu sefer daha iyi kod kalitesi sağlamak için hangi güvenlik görevlileri mevcut? Platform ve kod kalitesi sorunları nedeniyle 4 kez yeniden yazılan bir uygulama gördüm.
Joeri Sebrechts

2

Mali nedenlerden dolayı, çalıştığım şirketlerin çoğu ikinci yaklaşımla devam etti, haklı olarak ekleyebilirim. 1 numaraya ulaşmaları çok fazla para, zaman ve risk gerektirir. Kullanıcı ilerlemenizi ve onlarla etkileşiminizi gördüğü sürece çoğunlukla # 2'yi anlardı. Bu zayıf ve ortalama ekonomide, herhangi birinin 1 numaralı yaklaşımı benimseyeceğinden şüpheliyim.


Bu benim düşüncemdi. Yöneticim anlamakta zorlandığım # 1 ile devam etmek istiyor.

2

Büyük patlama yaklaşımları, son kullanıcılar söz konusu olduğunda nadiren yapıcıdır. Buna karşı tavsiye ediyorum ve dürüst olmak gerekirse, ilgili uygulamaların sayısı göz önüne alındığında kimsenin bunu ciddi bir seçenek olarak değerlendireceğine inanamıyorum.

İkinci seçenekle gitmeye ve vaka bazında yeniden çalışmaları ele almaya eğilimli olurum. Kuşkusuz bu, kağıda yaklaşmaktan daha uzun sürebilir, ancak gerçekte, bir yaklaşım alarak önemli miktarda iş riski açıyorsunuz ve eğer varsa, ilk gün destek çağrıları için etrafta olmak istemiyorum kullanıcı sonunda sadece küçük bir sorun.

Ayrıca, web hizmetleri tabanlı uygulamaların ezici toplu zaten php yazılmış, nasıl kullanılabilir. Net uzmanlık?

Her iki şekilde de kullanıcıların büyük bir patlama (destek çağrıları isteka) veya parça parça (artan aşinalık) değişikliği yaşamak zorunda kalacak düşünüyorum. Gerçekten tam olarak ne kadar iş tamamen tüm php yakın olmaktan tamamen .Net ya gitmek için yapılması gereken boyutta değil düşünmek eğilimindedir. Ya da.


Sanırım sadece iki ayrı platformu desteklemekten daha karmaşık. Her iki durumda da gerçekten iyi bir yaklaşım değil ... Zaman ayırdığınız için teşekkürler!
Daniel Gruszczyk

1

İlk olarak, Joeri'nin söylediği her şeye katılıyorum.

Birinci seçenek gerçekten korkunç. Bunu yaparsanız ve Joeri'nin açıkladığı gibi desteğe devam etmezseniz, müşterinizin gördüğü kadarıyla desteği birkaç yıl boyunca kapatmış olursunuz. İki yıl sonra, aynı siteyi son birkaç yıldır bildikleri ve nefret ettikleri tüm aynı konularla etkin bir şekilde edinirler. Ayrıca, piyasanın geçici olarak değişmesi ve uygulamayı eskimiş ve büyük bir yenilemeye ihtiyaç duyması riski. Ayrıca, iki yıl boyunca desteği kapatırsanız, tüm hizmet taleplerine ne olacağını düşünüyorsunuz? Gitmeyecekler. En azından bazı kullanıcılarınız "haydut" olacak ve (muhtemelen) Yeniden yazdığınız sistemlerde boşlukları tıkamak için erişimde kritik öneme sahip sistemler geliştirecek - o zaman hala iki platformu destekliyorsunuz ...

İkinci seçenek, her iki teknolojiyi de uzun süre destekleyeceğiniz anlamına gelir. Bu süre sizin düşündüğünüzden daha uzun olacaktır ve kalıcı olarak parçalanmış bir ekosistemle sonuçlanabilir - yani yeni .NET koduyla karışık yeniden yazmak için ekonomik olmayan önemli miktarda PHP kodu.

Bunu öneren herkese karşı geri itin. PHP uygulamalarını önerdiğiniz ürünlerle entegre etmek için kod yazmak, .NET'te her şeyi yeniden yazmaktan sonra yeniden yazılmış kodu ürünlerle entegre etmekten çok daha ucuz olacaktır, unutmayın, .NET'i kullanırsanız entegrasyon sihirli bir şekilde gerçekleşmez .

Bir şey daha, PHP kodunun satır sayısını alın ve yeniden yazmayı tamamlamak için ne kadar ve ne kadar geliştiriciye ihtiyacınız olacağına dair bir fikir edinmek için bir COCOMO 2 aracına koyun.


İyi bir nokta. O zaman ne yapardınız, eğer sistemi taşırsanız veya taşımamanız size kalmış olmasaydı. Hangi yaklaşımı seçerdiniz? Ya da mybe listelediğim başka bir yaklaşım var mı? Yöneticiniz sizinle aynı fikirde olmazsa, yaklaşımınızın daha iyi olduğunu kanıtlamaya çalışır mısınız?
Daniel Gruszczyk

PHP uygulamalarını daha katmanlı bir "Servis Odaklı" şekilde yazın. PHP ve Microsoft land arasındaki arayüzü arabelleğe almak için bir kurumsal servis veriyolu kullanın. Önemli olan, yaşayan yazarları müdürünüzden korkutacak olan COCOMO tahminini yapmaktır.
mcottle

1

Üçüncü bir seçeneğiniz var: -

Php kodunu Windows sunucunuza ve ISS'ye geçirin (.NET'i çalıştırmayı planladığınız kodla aynı!)

Daha sonra kullanıcılarınıza tek bir sistem gibi görünen yeni özellikler sunarken .NET'te yeni uygulamalar ekleyebilir (ve bazı eski uygulamaları yavaşça .NET'e dönüştürebilirsiniz).


PHP gerçekten IIS altında çalışır
Bart
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.