İki eşdeğer teknolojiden hangisinin kullanılması gerektiğini soran bir müşteriye ne cevap verilir?


14

Serbest çalışan olarak, sık sık müşterilerim tarafından, ikisi de diğerinden daha iyi olmayan benzer öğeler arasında ne seçmeleri gerektiği sorulur. Örnekler:

“E-ticaret web sitemin PHP veya ASP.NET'te olması gerekir mi?”

“Bu sıradan web hizmetini Cloud'da barındırmam veya sıradan bir barındırma hizmeti kullanmam gerekiyor mu?”

“Yeni web sitem için hangisi daha iyi: MySQL veya Oracle?”

vb.

Seçimin alakalı olduğu vakaların en fazla% 1'i vardır ve kesin metriklere ve çalışmalara dayanarak birbirini kullanmak için gerçek, nesnel bir neden vardır. Diğer tüm durumlarda, hiç önemli değil. Tamamen, tamamen ilgisizdir, çünkü herhangi bir çıkarım yoktur¹, ya da bu çıkarımlar hesaba katılamayacak kadar küçüktür, ya da son olarak, bu çıkarımları tahmin etmek imkansızdır³.

Bir şeyi biliyorsanız, başka bir şeyi bilmiyorsanız, bu soruların cevabı kolaydır:

“Uygulamayı C # veya Java ile yazabilirsiniz, her ikisi de büyük ihtimalle sizin durumunuzda eşdeğerdir. Ben bir C # geliştiricisi olduğumu unutmayın, bu yüzden Java'yı seçerseniz projeniz üzerinde çalışamaz ve başka bir serbest çalışan bulmanız gerekir. ”

Her iki teknolojiyi de bildiğinizde, buna cevap veremezsiniz.

Bu durumda, müşteriye sorduğu sorunun flamewar'a tabi olduğunu ve projesinde gerçek bir sonucu olmadığını nasıl açıklayabilirim?

Başka bir deyişle, profesyonel olmayan veya projeyi önemsemeyen izlenimi vermeden, insan kaynakları ile ilgili nedenlerden ötürü eşdeğer bir teknolojiyi kullanmak yerine tek bir teknoloji kullanmayı seçtiğinizi nasıl açıklayabilirim?


¹ Örnek: MySQL, Oracle ile karşılaştırıldığında performans açısından daha iyi (kötü?), Günde iki kişi için iyimser olalım, iyimser olalım mı?

² Örnek: belirli bir proje için, Windows Azure barındırma işleminin aynı uygulamanın iyi bilinen bir ASP.NET barındırma sağlayıcısında barındırılmasından daha ucuz olup olmayacağı soruldu. Maliyetin tamamen aynı olduğu ortaya çıktı.

³ Örnek: müşteri var bir fikir gelecek bir uygulama (Fikir kendisi son derece muğlak olmak üzere) ait. Hiçbir iş planı, hiçbir gereklilik, hiçbir şey yoktur. Sadece bir fikir. Java'nın bu uygulama için C # 'dan daha iyi olup olmadığı sorulur. Ne cevap veriyorsunuz?

Yanıtlar:


36

profesyonel olmamak veya projeyi önemsememek izlenimi vermeden, insan kaynakları ile ilgili nedenlerden ötürü eşdeğer teknoloji yerine tek bir teknoloji kullanmayı seçtiğinizi nasıl açıklayabilirim?

İyi. Sadece şunu söylüyorsun:

Bu proje için şartlar açısından, X teknolojisi ve Y teknolojisi göreve eşit derecede uygundur, bu nedenle teknik değerlendirmeler buna dahil değildir.

Seçilen teknoloji (veya problem alanı) hakkında bilgi sahibi olan yetenekli insanlar bulmak daha kolaydır, bu yüzden seçilmiştir.

Veya - bu projenin amacı için, Y teknolojisini kullanmak daha uygun maliyetli olacaktır.

Olduğu gibi söyle.


Müşterinin bağlantı kurabileceği bir benzetme bulmak isteyebilirsiniz. Gibi bir şey - Avrupa'dan ABD'ye gitmek için bir Boeing 747 veya Airbus 380'e gidebilirsiniz. Hangisinin önemi var? Müşteriye değil, oraya geldikleri ve teknolojiler gereksinimlere eşit derecede uygun olduğu sürece :)

Hangisi seçildi? Havayolu hangisi faaliyet gösteriyorsa ...


13
+1 Yazım hatası - Boing 747 kulağa eğlenceli geliyor. Ben dev bir pogo çubuğu hayal ediyorum ...
MarkJ

4
Boing 747 için +1 (Evet, ve "yetenekli insanlar" bölümü) - Bazen çocukların doğum günü partilerinde görülen bu şişme kaleleri düşünüyordum
Izkata

1
Eğer müşteri olsaydım "Hiçbir fikrim yok - ama pilotun yaptığını düşünmek istiyorum" diye cevap verebilirdim.
psr

7

Bence kararınız büyük ölçüde keyfidir, sorgulamaya değer. Aylarca komite toplantısı yaptığınız analiz felci ile sonuçlanmak istemediğinize katılıyorum, ancak biraz dikkate değer. Yüksek seviyeden bakıldığında, teknoloji seçimi nadiren keyfidir. Bir şirketin gelecekte nereye gidebileceğini güçlü bir şekilde etkilediği için iş stratejisinin anahtarıdır ve karar verme sürecinde şirketi yönlendirmek geliştiricinin rolüdür.

MySQL'in Oracle'a karşı B ağaçlarını kullanması veya PHP'nin ASP.NET'in sözdizimini kullanması gibi teknolojinin özellikleri elbette programcılar arasında çok fazla dini tartışmaya açıktır ve gerçekten kendi zevkinize inecektir. Kendinize benzer bir danışman kolayca radikal olarak farklı bir görüşe sahip olabileceğinden, bu şeyler gerçekten keyfidir. Ve belirli bir teknolojide yetkin olan herhangi bir geliştiricinin yine de iyi bir iş çıkaracağı oldukça sağlam. Dolayısıyla iş için daha önemli konular dil minutisi değil, aşağıdaki gibi daha üst düzey sorulardır:

  • Dağıtım senaryosu nedir? Belirli teknolojiler, özellikle de Heroku gibi bulut barındırma hizmetleri varsa, daha elverişli bir yaklaşıma katkıda bulunurlar . Bazı şirketler bunu beğenecek, bazılarının kendilerini barındırması, sistem yöneticilerinin daha güçlü bir varlığı vb.

  • Proje ömrü ve kapsamı nedir? Örneğin PHP, bir projeye başlamak için Java'dan muhtemelen daha kolaydır, ancak yıllarca ölçeklendirmek ve sürdürmek daha zordur.

  • Teknoloji ne tür geliştiricileri çekecek? Java için, büyük olasılıkla kurumsal deneyime sahip olanlara sahip olacaksınız. PHP için daha fazla çapraz tasarımcı veya sistem yöneticisi türü alabilirsiniz. İçin node.js olarak, Tüm bildiğim klişeleri vb Haskell, akademik bir kalabalık, daha ön uç ve deneysel geliştiriciler, alırsınız ama işletmenize bazı ipuçları verir. Bu grupların her birinin kendi kültürleri, ödeme ve çalışma ortamıyla ilgili beklentileri ve birbirleriyle ve kuruluşun geri kalanıyla çalışma yolları vardır.

  • Geliştiricilerin kullanılabilirliği nedir? Geliştiricilerin fiziksel olarak mevcut olması gerektiğini varsayarsak, belirli yerel ayarların belirli ekosistemleri vardır. Girişimlerle dolu bir şehirde, Ruby on Rails ve PHP geliştiricileri çok olacak, devlet daireleriyle dolu bir şehirde çok fazla Java / MS vb. Olacak. Dünyadaki programlama dillerinin büyük çoğunluğu basitçe bu temelde reddedilmelidir.

Bunlar sadece birkaç örnek. Hangi faktörlerin en önemli olduğu duruma bağlı olacaktır, ancak buradaki ana nokta, şirketlerin stratejilerine, kültürlerine ve koşullarına uyan teknolojileri bilinçli olarak benimsemeleri gerektiğidir.


4

Müşteriye bu teknolojiyi kullanmanın fizibilitesi konusunda objektif bir karşılaştırma matrisi veririm. Örneğin:

“Yeni web sitem için hangisi daha iyi: MySQL veya Oracle?”

Matrisinizde:

  • Maliyet
  • Evde Kullanım
  • Ölçeklenebilirlik
  • Deneyim / aşinalık
  • Desteklenebilirlik
  • İşleme
  • Zaten Kullanımda (Konuşlandırılmış)
  • Geliştirme Kolaylığı
  • Kalkınma Tanıdıklığı

Vb.

Matrisinizdeki kaç öğeye bağlı olarak, bir kişi hızlı bir şekilde puan almalı ve bu teknolojiyi diğerine karşı kullanmanın fizibilitesini belirler. Bazı durumlarda MySQL belki daha iyi, bazılarında Oracle.


4

Anladıkları terimlerle açıklayın - para. Onlara Y üzerinde X seçtiğinizi söyleyebilirsiniz, çünkü her ikisi de proje için uygun olsa da, X'e Y'den daha aşinadır ve böylece uygulamayı onlara daha düşük bir maliyetle sunabilirsiniz. X kullanarak Y kullanılarak yazılmış olandan daha fazla.


1
Evet, bunun cevabı yanlış değil. C # 'ı Java'dan daha iyi biliyorsanız, C # ile daha üretken olmanızın sebebi vardır.
Andy

2

"Bir Ford mu yoksa bir Chevy mi tercih edersin?" sorunun herhangi bir yere gitmediği fikrini alıp alamayacaklarını görmek için fırlatacağım sürüş benzetmesi olurdu. Benzer bir soru, "Hangisi daha iyi bir hamburger veya pizza?" Olabilir. daha fazla kısıtlama eklemeden, sorunun verebileceği çeşitli olası cevapları vardır.

Bunu izlemenin diğer bir yolu, bunun neden bilinmesinin önemli olduğunu sormaktır ve bunun daha iyi bir cevaba neden olabileceği sorusunu açıklığa kavuşturarak hangi ek malzemenin bulunabileceğine bağlı olarak. Bazı insanlar "E-ticaret sitemi oluşturmak için ne kullanıldı?" ancak etkileyici olmayı ve birkaç vızıltı kelimesini atmayı tercih ederler.


8
Ford / Chevy ve Hamburger / Pizza örnekleri tepkisiz / saygısız görünüyor. Bu tür tepkilerden rahatsız olurdum.
Robert Harvey

4
Ve cevap her zaman Pizza;)
Izkata

2
@Izkata: ... bir Ford'da yenmiş.
FrustratedWithFormsDesigner

2
Dikkatli olun, Ford vs. Chevy bazı bölümlerde dini bir tartışma olabilir. Bir adam yaralanabilir.
Wyatt Barnett

2

Çok sayıda iyi yanıt var, ancak fark ettiğim bir şeyden bahsedilmedi: bu, sizin açınızdan tam açıklama için mükemmel bir fırsat. Örneğin,

"Şimdi hayatımı öncelikle teknolojiden <foo> yapıyorum, bu yüzden tamamen tarafsız değilim. Ancak ..."

Gerçekten bu tarz bir açıklama ile güvenilirlik kazandığınızı düşünüyorum.


1

Bir teknolojinin diğerinden açıkça daha düşük olduğu nadir durumlar vardır - "Web sitemi Python veya Cobol'da geliştirmeli miyim?", Ancak çoğunlukla bu kurslar için atlarla ilgili bir sorudur.

Hangi teknolojinin müşteriye uygun olduğuna karar vermek için kullandığım bir metodoloji var:

  1. Şu anda ne kullanıyorlar? Aynı şey genellikle yeni bir şeyden daha iyidir.
  2. Mevcut teknolojinin yeni proje tarafından aşılacak herhangi bir kısıtlaması var mı? Örneğin, SQLite kullanıyorlar , ancak şimdi 100 kullanıcının eşzamanlı güncellemeler yapmasını bekliyorlar.
  3. Mevcut teknoloji uygun değilse, en popüler açık kaynak ve ticari pazar lideri arasında seçim yapın.
  4. Pazar lideri açık kaynak teklifinden önemli ölçüde daha iyi mi ve mevcut proje için önemli farklılıklar var mı?
  5. Açık kaynak ya da reklam için gittikten sonra, en yakın iki rakip teklifte olduğu gibi iyi geçin ve daha yakın olup olmadıklarını görün.

Çoğu zaman seçim ikinci adımda durur. İstemci Acme Widget'ları kullanıyorsa, Acme Widget'larını kullanma konusunda deneyimli olun, Acme Widget'ları ve Acme Widget'ları etrafında oluşturulmuş bir dizi standart, değişiklik kontrol ve yönetim prosedürleri iş yapabilirse Acme Widget'ları gitmek için bir yoldur Ezee DohDahs teknik olarak bu görev için daha iyi!

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.