Çok az zaman verilen önemli teknik kararlar nasıl alınır


36

Şirketimin WPF uygulamasını Linux / Android / iOS'a taşımak için kullanacağı araçlar ve platformlar hakkında çok ciddi bir karar verdiğim için 2 günüm var.

Açıkçası, yaşlılarıma, tüm olası seçenekleri okumak, prototip yapmak, vb. Denemek, prototip yapmak vb. İçin 2 günün yetmeyeceğini söyleyebilirim. Bunu söyleyebilirim, bana biraz yardımcı olmaz, 2 günüm var ve 2 gün sonra karar verilecekti. Dönemi.

Bir taraftan sinirliyim, diğer taraftan bu yaklaşımda bir doğruluk taneciği olduğunu düşünüyorum, aksi halde kendimi düzinelerce indirilmiş SDK, çerçeve, API, blog makaleleri vb. ve süreçte bunların neye benzediğini unutmak.

Yine de, yanlış bir kararın şirkete çok pahalıya mal olacağından korkuyorum. Sence bu kararları almak için "ideal" bir süreç nedir?


4
Kararın iki gün içinde alınmasının neredeyse imkansız olduğu bir yere yazın. O zaman çok da kötü olmayan bir karar vermeye çalışın ve kararınızın en iyi olmadığını belgeleyin. Başka bir deyişle, kıçını koru. Qt5 düşünülebilir. Veya ürününüzü bir HTML5 web uygulaması yapın (muhtemelen libonion veya FastCGI gibi bazı HTTP sunucu kütüphaneleri kullanarak )
Basile Starynkevitch,

2
@gnat Kabul etmiyorum, öznel bir soru, birden fazla olası cevap olsa bile, yine de hepimiz başkalarının deneyiminden kazanabileceğimizi kabul ediyorum.
Flot2011

9
Çoğu durumda 'en iyi seçenek' yoktur, bir PHP webapp olarak yazabilirsiniz ve işe yarar. Veya bunu bir Qt programı olarak yazabilirsiniz ve işe yarayabilirdi. Bir openGL oyun arayüzü arayüzü olabilir. Bunların hepsi kabul edilebilir seçimlerdir, püf noktası bir tane seçip daha sonra çalışmasını sağlamaktır. Bir şey seçtikten sonra kendinizi şüphe ile felç etmeyin.
gbjbaanb

5
Çok kötü bir örnek çünkü örnekte bunun için bariz bir seçenek olan bir teknoloji var - Xamarin. .NET arka uç kodunu saklayın, kullanıcı arayüzünü bir şeyle değiştirin. Verilen tüm davaları ele alır. Yani, bu daha çok ".NET için çapraz platform sistemleri hakkında hiçbir şey bilmiyorum" durumudur.
TomTom

7
2 günün yetmediğini söylemek çok yapıcı değil. 3 gün yeterli olacak mı? Yoksa aslında 2 ay geçirmek ister misin? Peki kararın ne kadar daha iyi olabilir? ~~~~ Eğer bir haftaya ihtiyacınız olduğunu söylerseniz ve bunun yüzlerce saat süren geliştirme süresinden tasarruf edeceğinden eminseniz, bundan söz ettiğinizden emin olun. İşe yaramayabilir, ancak paydaşların iş durumunuzu sevme şansı her zaman vardır.
Dennis Jaheruddin

Yanıtlar:


48

Sahip olduğunuz tek şey 2 günse ve prototip yapmanın ve hatta tüm alternatifleri okumaya vaktiniz yoksa, gerçekten sadece 2 seçenek var:

  1. bilen ve önerilerini takip eden birine sorun. Bu, mutlaka bir bireye sormak anlamına gelmeyebilir, ancak 2 günü bloglardan ve makalelerden geçirerek biraz bilgiden daha iyi bir karar almak için yeterli bilgiyi toplamak için harcar.

  2. Tüm ana seçeneklere biraz araştırma yapın ve bir tanesini seçin. Bazen liderlik, yanlış karar vermekten korkmamak anlamına gelir, genellikle kesin bir karar vermek, boşaltmaktan daha önemlidir.

Kendinizi daha ayrık ve daha kolay değiştirilebilecek mimarilerle buluşturabilirsiniz - örneğin bir istemci / sunucu modeli, UI teknolojinizi bir başkasıyla en az bozulma ile değiştirmenize izin verir.


10
"Yanlış kararı vermekten korkma" için +1, bazen 'analiz felsefesi'ne yakalanmak hiç karar vermekten daha kötüdür. Hepimiz insanız. Elinden geleni yap ve hayata devam et.
semaj

1
boşluk haline getirme: farklı görüşler veya eylemler arasında alternatif veya dalgalanma; kararsız olmak.
TankorSmash,

10
+1 "daha
ayrık

2
@emodendroket Windows İş Akışı Vakfı.
MetaFight

2
Senin Eğer sorun genel amaçlı değil, ana akım çözümleri de çalışmak için beklemeyin. Ayrılma ve esnekliğin çok önemli olduğu yer burasıdır . Yapmanız gereken şeyleri önceden tahmin edemediklerinde, beklentilerinize bir şeyler atmak yerine, kendi işinizi yapmayı kolaylaştıran çerçeveler / kütüphaneler arayın.
jpmc26

19

Ben akıntıya karşı gidiyorum gibi görünebilir, ama son zamanlarda kitap okudum Yaratıcılık, Inc tarafından Ed Catmull ve bu durumu mücadele gerçekten güzel paragraf vardı:

Andrew Stanton sırada konuştu. Andrew, insanların olabildiğince çabuk yanlış olması gerektiğini söylemeye düşkün. Bir savaşta, iki tepeyle karşılaşırsanız ve hangisine saldıracağınızdan emin değilseniz, doğru eylemin acele etmeyi ve seçmeyi söylüyor. Yanlış tepe olduğunu öğrenirseniz arkanı dön ve diğerine saldır. Bu senaryoda, kabul edilemez tek eylem türü tepeler arasında koşuyor .

Sizin durumunuz için de uygulanabileceğinden eminim. Belki bugün bir tane seçerek karar verebilir ve üzerinde çalışmaya başlayabilirsiniz. İşe yararsa, o zaman iki gün içinde hazır bir şeye sahip olacaksınız ve şöyle diyeceksiniz - "Bunu seçtim ve size bununla neler yapabileceğimizi gösterebilirim çünkü birkaç test yaptım ...". Bir günde, seçilen çözümün tamamen değmeyeceğini fark ederseniz, farklı bir tane seçebilir ve ertesi gün bununla çalışabilirsiniz. En kötü durum senaryosu, iki platformu test etmek için her ikisini de kullanmanız, ikisinin de işe yaramadığını öğrenmenizdir - ama sonuçta bu doğru cevaptır, değil mi? Yabancı otlardan kurtul, yanlış seçimlerden kurtul, böylece bir sonraki karar bir öncekinden daha iyi olacak. En iyi senaryo sizsiniz '

Açıkçası, iki günde hiçbir platformda ustalaşmayacaksınız, ancak bir ASAP'ı seçmek kesinlikle size nasıl çalıştığı (sadece hakkında okumaktan çok daha fazlası) hakkında daha iyi bir bakış açısı sunacak ve sizi daha iyi bir cevaba götürecektir.


12
Global düzeyde sizinle aynı fikirde olsam da, bazen bir savaş alanında ilerlemek oldukça intihar olur.
Flot2011

Kimse acele etmekten bahsetmedi. Asla bugün patronuna yürümek ve - "İşte çözüm. Tam burada ve şu anda" demedim. Bunun yerine kafasından bir tane seçmeyi ve çalıştırmayı denemeyi ve düzeltmeyi öneriyorum. Basitçe okumak ve başkasıyla tartışmak hile yapmayacaktır. Devam etmenin ve denemenin çok daha kaliteli bir seçime yol açacağına inanıyorum.
Michal

6
@ Flot2011 bir MBA'iniz varsa, bulunduğunuz yerde kalırsınız ve tüm birliklerinizi iki tepeden birine savaşması için gönderirsiniz. Eğer hepsi ölürlerse, oh iyi, daha fazla asker alırsın ve devam edersin, ama bu sefer genel olarak deneyimin seni çok daha fazla ... canavarca daha fazla maaş hakettiğini söyleyerek.
gbjbaanb

1
"En kısa zamanda bir tane seçip prototip" bu durumda beni çok kötü bir tavsiye olarak görüyor. Evet, prototipleme önemlidir, fakat aynı zamanda zaman alıcıdır. Önemsiz olmayan sorunlar genellikle 2'den fazla olası çözüme sahiptir ve 2 gün birkaç teknolojiyi prototip yapmak için yeterli değildir.
meriton - grevde

@meriton Ne demek istediğini hissediyorum - Katılıyorum, prototipleme zaman alıyor. Açıkça "prototip yapma" demedim - bu yüzden tinker kelimesini dikkatlice seçtim - platforma bak, küçük bir kod yaz, bazı temel uygulama dosyalarını aç, nasıl çalıştığını gör. Olasılık, karar vericinin tüm detayları doğru elde etmemesi, ancak deneme yanılma yoluyla kararın kalitesini kesinlikle artırabilmesidir.
Michal

10

gbjbaanb, bazı çok iyi noktalar yapar. Sadece biraz ekleyeceğimi düşündüm.

Mükemmel bir şekilde bilgilendirilmiş bir karar vermek için yeterli zamanınız olmadığı çok açık. Tek seçeneğiniz gelecekteki acıyı en aza indirecek bir karar almaya çalışmak. Ben öneririm:

  1. Durumun niteliğini açıkça belgeleyin: Yöneticinize ve yöneticilerinize ve paydaşlarınıza bir e-posta gönderin. Belirlediğiniz sorunun aldatıcı bir sorun olduğunu, ancak hepsini vermek istediğinizi açıklayın. Ancak, kesin zaman kısıtlamaları göz önüne alındığında, bulgularınızın optimum olmasını garanti edemeyeceğinizi unutmayın.

  2. Geniş ve aktif bir çevrimiçi topluluğa sahip bir çerçeve / platform bulun. İstediğiniz en son şey, yalnızca belirsiz bir çerçevede hata ayıklamakla sıkışıp kalmak.

  3. Daha önce gbjbaanb tarafından belirtildiği gibi, gevşek eşleşmiş bir mimari kullanarak etkileyici acılarınızı ve risklerinizi azaltın. Her şey, teknoloji seçimlerinizden biriyle armut şeklini alırsa, bu onu değiştirmeyi kolaylaştıracaktır.

Senin durumunda daha önce bulundum ve sonunda politik bir kabusa dönüştü. Sistem sihirli bir şekilde çalışmadığında insanlar parmakları işaret etmeye başladılar ve işler çirkin hale geldi. Bu yüzden # 1 tavsiyem, imkansız ihtimallere karşı elinden gelenin en iyisini yaptığını açıkça belgelemektir .

İyi şanslar :)


17
Re: # 1. Kimse sızlanan bir kaybedeni sevmez, bu yüzden imkansız koşullara karşı elinizden gelenin en iyisini yaptığınızı vurgulayın, o zaman bir takım oyunu proaktif kazanan galibi görünüyorsunuz! Yönetim bu tür şeyleri sever. Bu arada, büyük yeniden yazmanın çalışmamasının pek çok nedeni var, bir teknolojinin diğerine göre seçilmesi genellikle en az sorun.
gbjbaanb

Evet, biraz sızlandığını fark ettim, o yüzden değiştirdim.
MetaFight

Şahsen, belirsizliğin ciddiyetini belirtmediği için "optimal değil" den daha spesifik olacağım. "Mükemmel olması gerekmiyor, yeterince iyi" zihniyetine sahip bir yönetici, teknolojinin yeterince iyi olamayacağını söylemek zorunda olduğunuzu bilmediğinizden, bu uyarıyı açıkça görmezden gelecektir.
meriton - grevde

3
Bunun yerine, somut riskleri tespit eder ve yönetime iletirim. Örneğin: "Mevcut bilgilerimize dayanarak, A teknolojisinin en iyi seçenek olduğunu düşünüyoruz. Ancak, son tarih nedeniyle, bu yaklaşımın bu sistemden beklenen iş yükünü kaldırabileceğini doğrulayamadık". Daha sonra yönetim ya riski kabul edebilir ya da daha fazla analiz sunarak riski azaltabilir.
meriton - grevde

Nokta No. 2 için +1. Arkasında olgun ve iyi gelişmiş bir topluma sahip bir çözüme gidin. Bu türden birden fazla çözümden hoşlanıyorsanız, çevrimiçi forumlara, bloglara göz atabilir, soru gönderebilir ve hangisinin size uygun olduğunu her zaman öğrenebilirsiniz. en iyi
Arnab Bhagabati

5

Şapkadan aday seçmekten daha fazlasını yapmak için size çok az zaman harcadıkları için aşağıdaki yaklaşımı benimsemeliyim.

Bu teknolojileri seçin:

  • Geniş bir kullanıcı tabanına sahip olun
  • Aktif destek al
  • Aktif olarak geliştiriliyor

Tanım olarak, bu, herhangi bir kanama teknolojisini ekarte edecektir, ancak iyi olabilir.

Ayrıca, sadece geliştirici Fred geçmişte kullandığı için, daha fazla analiz yapmadan X teknolojisine gitme dürtüsüne diren . Mükemmel bir uyum olması pek mümkün değildir ve Fred yeşil alanlara doğru ilerlerse alan uzmanınız da işe yarayacaktır.


X teknolojisi yeterince uygun olsa ve Fred diğer geliştiricileri eğitmeye istekli olsa da, bunu yapmak takımı başlatmak için iyi bir yol olabilir.
CVn

Elbette - eğer diğer kutuları işaretlerse ...
Robbie Dee

4

2 gün bu tür bir karar almak için çok kısa bir süredir, ancak bunu takip eden 2 gün listesinde yapmak zorunda olduğunuzdan,

  1. Hedef platformlar nelerdir
  2. Geçerli uygulamada kullanılan, bağlantı noktası için büyük çaba gerektiren özel / üçüncü taraf bileşenleri nelerdir. örneğin: grafik bileşenleri, ızgara bileşenleri, raporlama bileşenleri vb.
  3. Mevcut uygulama dünyaya nasıl bağlanıyor ve güvenlik nasıl ele alınıyor (veritabanı bağlantıları / web servisleri / etc ...)
  4. Nasıl dağıtılır ve güncellemeler nasıl sağlanır?

Artık tüm hedef ortamlar için kullanabileceğiniz alternatifler bulmanız gerekiyor.

Her alternatif için, mevcut uygulamanın kullandığı bağlantı / güvenliği kullanmak için her birinin desteğini bulun.

Daha sonra her bir özel / üçüncü taraf bileşeni için, her biri için alternatiflerin kullanımı kolay olup olmadığını öğrenin.

Ve sonra bulduğunuz her alternatif için dağılımın nasıl yapılabileceğini düşünün.

Bence 2 gün boyunca bu, kapsama alabilmeniz gereken kapsam olmalı ve bir çözüm sağlayabileceğiniz sonuçlara dayanmalıdır.


4

Yeni şeyler öğrenmeyi ve denemeyi sevdiğim kadar, zaman kısıtlamaları altında çalışmak için en rahat olanı ya da hissetmek için her zaman en iyi seçenek gitmektir. Bildiklerine bağlı kal.

Uzun vadede en iyi seçeneği seçmediğiniz açıkça ortaya çıksa bile, geliştirdiğiniz herhangi bir şey değerli olmaya devam eder ve hala tamamen kullanılabilir ve taşınabilir bir tür alan bilgisini sarar. Ve bunun nedeni de, kullanmayı seçtiğiniz rahat bağlam, araçlar ve platformun yolunun dışında kalması ve gerçekten neyin önemli olduğunu görmesidir.


2

Seçilmesi gereken faktörlerin bir listesini yapın: Şunlar gibi: Performans güvenliği maliyet kullanım kolaylığı X yeteneklerini geliştirebilme Y geliştiriciyi pazara tanıma zamanını vb.

Bu bir saatten az sürmeli (aslında 15 dakikadan az sürmeli), daha sonra yönetime oturmalı ve bu faktörleri önceliklendirmelerini sağlamalıdır. (Öncelikleri ve sizinkilerin aynı olma şansı uzak olsa da, seçiminize öncelikler konusunda bazı önerileri yönlendirebilirsiniz.) Artık teknoloji hakkında ne yapacağınızı biliyorsunuz.

İnternet aramaya dayanarak sorununuza üç veya dört ortak çözüm seçin.

Ardından, seçimlerden her birinin ilk 3-4 önceliğine ne kadar uyduğunu iyi bir tahmin yapmak için yeterince okuyun. Her seçeneğe sayısal bir değer atayın. Her öncelik zamanının derecesini o önceliğe ayarlanan değerle çarparak matematiği yapın (Sayı 1 için 10, sayı 2 için 6, sayı 4 için 4 4, sayı 4 gibi). Şimdi her olasılık için sayısal bir puanınız var. Genel olarak, hangi öncelikleri en iyi karşıladığı anlaşılacaktır. Daha da iyisi, şimdi seçiminizi kanıtlamak için onlara götürecek analitik bir şeye sahipsiniz. Genellikle tercihinize göre satın alırlar çünkü destekleyecek numaralara sahipsiniz. Rakamlar desteklemiyorsa, diğerini neden tercih ettiğinizi kendinize sormanız ve en iyi olanı sayısal olarak kullanmanız veya verilen numaraları tekrar ziyaret etmeniz gerekir.

Seçimin gerçek priitlerinin ne olduğuna odaklanarak, çok fazla araştırma süresini kısaltabilirsiniz. Muhtemelen bir gün içinde bir tahminde bulunabilirsiniz ve ardından ilk 2 olasılıktan faydalanmak ve gerektiğinde biraz deneme oynamak için deneme sürümlerini indirmek için bir gün kaldı.


Tanımladığınız şeye "Analitik Hiyerarşi Süreci" denir. Ticari çalışmalar yapmak için kullandığım en yaygın tekniktir. Gücü, en iyi seçeneğin oldukça objektif bir şekilde karar vermesine yardımcı olması ve tüm paydaşların görüşlerini dikkate almasıdır. Web sitelerinin bu tekniğin ortaya çıkmasının ne kadar karmaşık olduğunu görünce şaşırdım. Web siteleri tarafından gösterilen görünen karmaşıklığın sizi sallamasına izin vermeyin, kullanımı gerçekten çok kolaydır. Her neyse, ben iyi bir örnek bulamadık çünkü ben Vikipedi iyi gibi herhangi bir başlangıç noktası olduğunu varsayalım en.wikipedia.org/wiki/Analytic_hierarchy_process .
Dunk

1
Yapının bir e-tabloda oluşturulması on dakikadan az sürer (en karmaşık kısım, hangi faktörleri karşılaştırmak istediğinize karar vermektir) ve sonra doldurulması kolay bir
zahmettir

Gerçekten bu kadar kolay. Ayrıca, her bir kategoriye ağırlık uygulayabilmemiz için, herkesin en önemli olduğunu düşündüğü şeyi belirlemek için herkesin her bir kategoriye değer verdiği anketleri de yapıyoruz. Sonuçta, yazılım ekibi işlemcinin hızını ve hafızanın her zaman birinci önceliğe sahip olduğunu düşünüyor, ancak donanım uzmanları zıt görüşlere sahip görünüyor, çünkü batarya ömrü onlar için önemli. Elbette, müşteri tipik olarak derecelendirme ağırlıklarının en az yarısına sayar ve yazılım ya da donanım kaygılarını önemsemez. Çevrimiçi açıklamaları değilken gerçekten karmaşık görünüyor.
Dunk
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.