Як приймати значні технічні рішення, дається дуже мало часу


36

У мене є 2 дні для прийняття дуже серйозного рішення щодо інструментів та платформ, які моя компанія збирається використовувати для того, щоб перенести свій додаток WPF до Linux / Android / iOS whatnot.

Очевидно, я можу вказати своїм старшим, що 2 дні навряд чи достатньо для читання про всі можливі варіанти, а що робити пробні, виготовлення прототипів і т. Д. Я можу це сказати, це мені трохи не допоможе, у мене є 2 дні, і через 2 дні рішення буде прийнято. Період.

З одного боку я розчарований, з іншого - я думаю, що в цьому підході є зерно правди, інакше я легко можу опинитися похованим під десятками завантажених SDK, фреймворків, API, статей у блогах і т. Д., Роблячи бенч-роботи, працюючі зразки і забуваючи в процесі чого це все було.

Я все ж боюся, що неправильне рішення дорого обійдеться компанії. Тож, на вашу думку, це "ідеальний" процес для прийняття таких рішень?


4
Десь напишіть, що рішення майже неможливо прийняти за два дні. Потім спробуйте прийняти не надто погане рішення і задокументуйте, що ваше рішення не найкраще. Іншими словами, прикрийте дупу. Qt5 може бути розглянуто. Або зробіть свій продукт веб-програмою HTML5 (можливо, використовуючи якусь бібліотеку серверів HTTP, наприклад, libonion або FastCGI)
Basile Starynkevitch

2
@gnat Я не згоден, що це суб'єктивне запитання, навіть якщо є більш ніж одна можлива відповідь, все-таки ми всі можемо отримати досвід інших.
Flot2011

9
У багатьох випадках "найкращого варіанту" немає, ви можете записати це як веб-сторінку PHP, і це спрацювало б. Або ви можете написати це як програму Qt, і вона спрацює. Це може бути інтерфейс ігрового інтерфейсу openGL. Все це є прийнятним вибором, хитрість полягає в тому, щоб вибрати один, а потім приступити до роботи. Не паралізуйте себе сумнівами, як тільки щось виберете.
gbjbaanb

5
Дуже поганий приклад, оскільки у випадку прикладу є одна технологія, яка є очевидним вибором для цього - Xamarin. Зберігайте .NET код, просто замініть інтерфейс чимось. Обробляє всі задані справи. Отже, це скоріше випадок "Я знаю зараз про кросплатформні системи для .NET".
TomTom

7
Сказати, що 2 дні недостатньо, це не дуже конструктивно. Чи вистачить 3 днів? Або ти насправді хочеш витратити на це 2 місяці? І наскільки кращим буде ваше рішення? ~~~~ Якщо ви говорите, що вам потрібен тиждень, і ви впевнені, що це легко допоможе заощадити сотні годин часу на розробці, не забудьте це зазначити. Це може не допомогти, але завжди є шанс, що зацікавленим сторонам подобається ваш бізнес.
Денніс Джахеруддін

Відповіді:


48

Якщо все, що у вас є, - це 2 дні, і немає часу, щоб прототипувати або навіть читати всі альтернативи, то дійсно є лише два варіанти:

  1. запитайте когось, хто знає, і дотримуйтесь їхніх порад. Це необов’язково може означати запитання особи, але витратити два дні на пошук блогів та статей, щоб отримати достатньо інформації, щоб прийняти рішення, яке трохи краще, ніж неінформоване.

  2. Проведіть невелике дослідження всіх основних варіантів, а потім виберіть один. Іноді лідерство означає не боятися прийняти неправильне рішення, його часто важливіше прийняти тверде рішення, ніж коливатися.

Ви можете покрити себе, створивши архітектури, які є більш відокремленими та, отже, простішими у зміні - наприклад, модель клієнт / сервер дозволить вам замінити технологію інтерфейсу користувача на іншу з мінімальними зривами.


10
+1 за "не бійся прийняти неправильне рішення" Іноді захоплення "паралічем аналізу" гірше, ніж взагалі не приймати рішення. Ми всі люди. Робіть все можливе і продовжуйте життя.
semaj

1
коливатися: чергувати чи коливатися між різними думками чи діями; бути нерішучим.
TankorSmash

10
+1 для "прикрийте себе, придумавши архітектури, які є більш відокремленими і тому їх легше змінити"
Darth Egreious

2
@emodendroket Foundation Workflow Foundation.
MetaFight

2
Якщо ваша проблема не є мейнстрімом, не сподівайтесь, що рішення мейнстріму спрацюють добре. Саме тут вирішальне значення має роз'єднання та гнучкість . Подивіться на рамки / бібліотеки, які полегшать вам робити свою справу замість того, щоб змусити вас вдягати щось у свої очікування, коли вони, здається, не передбачають, що вам потрібно зробити.
jpmc26

19

Може здатися, що я йду проти потоку, але нещодавно я прочитав книгу Ета Кетмулла « Креативність, Інк.» , І був справді приємний абзац, який вирішує цю ситуацію:

Ендрю Стентон виступив далі. Ендрю любить говорити, що людям потрібно помилятися якнайшвидше. У бою, якщо ви зіткнулися з двома пагорбами і не знаєте, на кого напасти, він каже, що правильний спосіб дії - поспішити і вибрати. Якщо ви дізнаєтесь, що це неправильний пагорб, розверніться та атакуйте інший. У такому сценарії єдиний неприйнятний курс дій - це біг між пагорбами.

Я впевнений, що це може бути застосовано і для вашої ситуації. Можливо, ви можете прийняти рішення сьогодні, вибравши одне і почати працювати над ним. Якщо це спрацює, то у вас буде щось готове за ці два дні, і ви скажете - "Я вибрав це, і я можу показати вам, що ми можемо з цим зробити, тому що я пройшов кілька тестів ...". Якщо ви через день помітите, що підібране рішення зовсім не варте того, ви можете вибрати інший і попрацювати з цим наступного дня. Найгірший сценарій полягає в тому, що ви використаєте обидва дні для тестування двох платформ, з’ясувавши, що жодна з них не працює - але це в кінцевому підсумку правильна відповідь, чи не так? Вийміть бур’ян, позбудьтеся неправильного можливого вибору, тому будь-яке наступне рішення буде набагато кращим, ніж попереднє. Найкращий сценарій - це те, що ти

Очевидно, що ви не освоїте жодну платформу за два дні, але вибір однієї ASAP неодмінно дасть вам кращий погляд на те, як вона працює (набагато більше, ніж просто читати про неї) і приведе вас до кращої відповіді.


12
Хоча я погоджуюся з вами на глобальному рівні, іноді поспішати на поле війни досить суїцидально.
Flot2011

Хоча ніхто не згадав про поспіх. Я ніколи не казав сьогодні ходити до начальника і говорити - "Ось рішення. Тут прямо зараз і зараз". Натомість я пропоную вибрати одну в голову і спробувати її запустити і повозитися. Просто прочитати про це та обговорити його з кимось іншим не вийде. Я вірю, що продовження та спробування цього призведе до вибору, який має набагато більш високу якість.
Міхал

6
@ Flot2011, якщо у тебе MBA, ти залишаєшся там, де ти є, і відправляєш усі свої війська на боротьбу з будь-якого пагорба. Якщо вони всі вмирають, ну, ви отримуєте більше військ і продовжуєте, але цього разу говорячи, що ваш досвід генерала робить вас набагато більше ... заслуговуючи на жахливо більше зарплати.
gbjbaanb

1
"Вибір одного якнайшвидшого, а потім прототипу" вважає мене дуже поганою порадою в цій ситуації. Так, складання прототипів є важливим, але також забирає багато часу. Нетривіальні проблеми часто мають більше 2 можливих рішень, а 2 дня недостатньо для прототипу кількох технологій.
meriton - страйк

@meriton Я відчуваю, що ви маєте на увазі - я згоден, прототипування займає багато часу. Я не чітко заявляв "робити прототипізацію" - тому я ретельно вибрав слово tinker - вивчити платформу, написати трохи маленького коду, відкрити основні файли реалізації, подивитися, як це працює всередині. Цілком ймовірно, що особа, яка приймає рішення, не розбере всі деталі, але шляхом спроб та помилок, він / вона, безумовно, може покращити якість рішення.
Міхал

10

gbjbaanb робить дуже хороші моменти. Я просто думав, що трохи додам.

Очевидно, що у вас недостатньо часу для прийняття ідеально зваженого рішення. Ваш єдиний варіант - спробувати прийняти рішення, яке мінімізує біль у майбутньому. Я б запропонував:

  1. Чітко задокументуйте характер ситуації: надішліть електронний лист вашому менеджеру (менеджерам) та зателефонуйте своїм керівникам та зацікавленим особам. Поясніть, що проблема, яку вам призначили, є складною, але ви готові дати їй усе. Але зауважте, що, враховуючи суворі часові обмеження, ви не можете гарантувати, що ваші результати будуть оптимальними.

  2. Знайдіть основу / платформу з великою та активною інтернет-спільнотою. Останнє, що ви хочете, - це застрягнути налагодження однієї нечіткої рамки.

  3. Як раніше згадував gbjbaanb, пом’якшіть свої переносні болі та ризики, використовуючи слабко поєднану архітектуру. Якщо все виходить за формою груші за одним із ваших технологій, це полегшить її замінити.

Я був у вашій ситуації раніше, і це врешті-решт перетворилося на політичний кошмар. Коли система не працювала магічно, люди почали вказувати пальцями, і все стало некрасивим. Тому моя рекомендація №1 - чітко підтвердити, що ви зробили все можливе проти неможливих шансів .

Удачі :)


17
Re: №1. Ніхто не любить кричущого невдахи, тому просто підкресліть, що ви зробили все можливе проти неможливих обставин, тоді ви виглядаєте як діючий проактивний переможець, який грає в команду! Менеджменту подобається така річ. Між іншим, є багато причин, через які велике перезапис не працює, а вибір одного техніка над іншим, як правило, є найменшою проблемою.
gbjbaanb

Так, я зрозумів, що це трохи примхливо, тому змінив його.
MetaFight

Особисто я був би більш конкретним, ніж "не оптимальним", оскільки не визначає ступінь невизначеності. Менеджер з "це не потрібно бути ідеальним, достатньо гарним", менталітет буде чудово ігнорувати це попередження, не усвідомлюючи, що ви хотіли сказати, що технологія може бути недостатньо хорошою.
meriton - страйк

3
Натомість я визначив би конкретні ризики та переклав їх на управління. Наприклад: "Виходячи з наших сучасних знань, ми вважаємо, що технологія A є найкращим вибором. Однак через короткий термін ми не змогли перевірити, чи може цей підхід впоратися з навантаженням, яке очікує ця система." Тоді керівництво може або прийняти ризик, або зменшити його, замовивши подальший аналіз.
meriton - страйк

+1 для пункту № 2. Знайдіть рішення, яке має зріле та розвинене співтовариство. Якщо ви налагодите більше одного такого рішення, ви завжди можете переглядати онлайн-форуми, блоги, розміщувати питання тощо та дізнаватися, що вам підходить. кращий
Арнаб Бхагабаті

5

Оскільки вони фактично дають вам мало часу, щоб зробити більше, ніж вибирати кандидатів з капелюха, я б застосував такий підхід.

Виберіть технології, які:

  • Майте велику базу користувачів
  • Мати активну підтримку (за будь-якими каналами)
  • Активно розвиваються

За визначенням, це виключає будь-яку технологію крайового кровотоку, якою б вона не була хорошою.

Крім того, протистоять прагненню працювати з технологією X без подальшого аналізу просто тому, що розробник Fred використовував її раніше. Це навряд чи буде ідеальним пристосуванням, і якщо Фред перейде на пасовища зеленіші, туди завітає ваш доменний експерт.


Хоча, якщо технологія X є досить хорошою, і Фред готовий навчити інших розробників, це може бути хорошим способом розпочати команду.
CVn

Напевно - якщо вона постукає з інших коробок ...
Роббі Ді

4

2 дні - це дуже короткий період для прийняття такого рішення, але оскільки ви повинні зробити це через 2-денний список,

  1. Що таке цільові платформи
  2. Які користувацькі / сторонні компоненти використовуються в поточному додатку, де це може зажадати значних зусиль для перенесення. наприклад: компоненти діаграми, компоненти сітки, компоненти звітності тощо.
  3. Як підключається поточний додаток до світу та як обробляється безпека (підключення до бази даних / веб-сервіси / тощо ...)
  4. Як вона розповсюджується та як надаються оновлення

Тепер вам потрібно знайти альтернативи, які можна використовувати для всіх цільових середовищ

Для кожної альтернативи знайдіть підтримку для кожного, щоб використовувати підключення / безпеку, яку використовує поточний додаток.

то для кожного нестандартного / стороннього компонентів з’ясуйте, чи існують альтернативи для простоти для кожного.

А потім подумайте, як можна здійснити розподіл для кожної альтернативи, яку ви знайшли.

Я думаю, що протягом двох днів це має бути сфера, яку ви повинні мати змогу охопити, і виходячи з результатів ви можете надати рішення.


4

Наскільки мені подобається вчитися та експериментувати з новими речами, в умовах обмеженого часу найкращим варіантом є завжди піти на те, що є, чи відчуваєш себе комфортніше працювати. Дотримуйтесь того, що ви знаєте.

Навіть якщо в кінцевому рахунку стане зрозуміло, що ви не вибрали найкращий варіант, все, що ви розробили тим часом, продовжує бути цінним і охоплює різновид польових знань, які все ще є повністю корисними та портативними. І це саме тому, що комфортний контекст, інструменти, платформа, яку ви вибрали, не перешкоджаєте та змушуєте бачити, що насправді має значення.


2

Складіть перелік факторів, які повинні брати участь у виборі, такі речі: Безпека продуктивності вартості простота використання здатність робити X здатність робити час ознайомлення розробника з Y на ринок тощо.

Це займе менше години (насправді це повинно зайняти менше 15 хвилин), потім сідайте з керівництвом і надайте їм пріоритет цим факторам. (Шанси на їхні пріоритети і на те, що ваші однакові, віддалені, хоча ви можете дещо орієнтувати свій вибір із пропозиціями щодо пріоритетів.) Тепер ви знаєте, що оцінити щодо технології.

Виберіть три чи чотири поширені рішення вашої проблеми на основі пошуку в Інтернеті.

Потім прочитайте достатньо, щоб добре здогадатися про те, наскільки добре кожен із варіантів відповідає своїм першим 3-4 пріоритетам. Призначте числове значення кожному вибору. Зробіть математику, помноживши рейтинг кожного разу пріоритету, як значення, встановлене для цього пріоритету (10 для числа 1, 8 для числа 2, 6 для числа 3 4 для числа 4 або того, що вам ніколи не до вподоби). Тепер у вас є числовий бал за кожну можливість. Як правило, буде очевидно, що найкраще відповідає визначеним пріоритетам. Ще краще, що зараз у вас є щось аналітичне, щоб довести свій вибір. Зазвичай вони викуповуються за вашим вибором, оскільки у вас є номери для їх підтримки. Якщо цифри не підтримують його, то вам потрібно запитати себе, чому ви віддаєте перевагу іншому, або перейти з найкращим числовим чи переглянути переглянути призначені номери.

Концентруючись на тому, які справжні природи вибирають, ви можете вирішити багато часу на дослідження. Ви можете, мабуть, здогадатися протягом дня, а потім у вас залишився день, щоб скористатись трьома найкращими можливостями та завантажити пробні версії, якщо потрібно, та пограти з ними трохи.


Те, що ви описали, називається "Процес аналітичної ієрархії". Це найпоширеніша методика, яку я бачив, використовуючи для виконання торговельних досліджень. Його сила полягає в тому, що він допомагає визначити найкращий варіант досить об’єктивно і враховує всі думки зацікавлених сторін. Я був здивований, побачивши, наскільки складні веб-сайти роблять цю техніку здачею. Не дозволяйте, щоб видима складність, показана веб-сайтами, вас хитала, це дійсно дуже просто у використанні. У будь-якому випадку, оскільки я не міг знайти хорошого прикладу, я вважаю, що Вікіпедія є такою ж доброю відправною точкою, як і будь-який en.wikipedia.org/wiki/Analytic_hierarchy_process .
Данк

1
На створення структури в електронній таблиці потрібно менше десяти хвилин (найскладнішою частиною є визначення факторів, з якими ви хочете порівняти пріоритети), і тоді це легко заповнити.
HLGEM,

Це дійсно так просто. Ми також проводимо опитування, де кожен присвоює значення кожній категорії, щоб визначити, що всі вважають найважливішим, щоб ми могли застосовувати ваги до кожної категорії. Зрештою, команда програмного забезпечення вважає, що швидкість процесора та пам'ять завжди є першочерговим завданням, але, здається, хлопці з апаратних засобів мають протилежні думки, оскільки для них важливий час роботи акумулятора. Звичайно, клієнт, як правило, розраховує щонайменше на половину рейтингових ваг і не замислюється про проблеми програмного забезпечення або обладнання. Описи в Інтернеті здаються дуже складними, коли їх немає.
Данк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.