Stack Overflow, стартап-інвестиції, PMBOK та інше. Пояснюємо ІТ-терміни на прикладі садіння картоплі

[Олександр Краковецький — CEO компанії DevRain, співзасновник «ДонорUA», Microsoft Regional Director, Microsoft AI Most Valuable Professional, кандидат технічних наук]

Привіт! На DOU вже виходила перша частина статті, в якій ми пояснюємо ІТ-терміни просто і зрозуміло. Тепер публікуємо продовження. Насолоджуйтесь!

Моноліт vs мікросервіси

Дід з внучком садять картоплю.

Щоб якнайшвидше посадити картоплю, вони купили у сільського голоси великий трактор. До трактора вони докупили насадки, адаптували під садіння, викопування, оприскування, підгортання та зважування картоплі.

Правда, якщо зламається навіть звичайний шланг, то весь трактор зупиняється і всі чекають, поки його полагодять. Це моноліт.

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

Єдина проблема — коли сусід зайнятий і треба чекати, поки мотоблок звільниться. Це мікросервіси.

Безумовний перехід

Безумовний перехід (unconditional branch) був популярним у таких мовах програмування, як BASIC, COBOL, Fortran.

Однак у 1986 році Едсгер Дейкстра написав листа до Communications of the ACM (CACM) лист з назвою «A Case against the GO TO Statement», назвавши безумовні переходи ознакою поганого коду.

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

Метод Монте-Карло

Бабка попросила діда і внучка поміряти площу круглого городу, щоб порахувати, скільки картоплі потрібно для садіння, і довжину городу, щоб знати, скільки треба обкопувати.

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

Тому що дід знав, що площа городу S= πR2, де R — радіус круга, а π — математична константа (3,1415), що виражає відношення довжини кола до довжини його діаметра.

Тому, вимірявши радіус, дід легко вирахував потрібні величини.

День числа π припадає на 14 березня, оскільки в американській формі запису дат вона має вигляд — 3/14. День числа π збігається з днем народження Альберта Ейнштейна.

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679пець, який дід розумний, подумав внучок і вирішив, що коли подорослішає, то стане науковцем!

Як ви пам’ятаєте, бабка попросила діда і внучка поміряти площу круглого городу, щоб порахувати, скільки картоплі потрібно для садіння. І дід використав число π для розрахунків.

Наступного дня бабка пішла до голови сільради, щоб той дав документи на город. Проте голова сільради не захотів видавати документи, тому що бабка не надала довідку про те, що число π дійсно дорівнює 3,14.

Тоді дід дістав з гаража свій кукурудзник, набрав кілька мішків картоплі й почав літати над городом, розкидаючи картоплю випадковим чином.

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

Дід порахував, скільки картоплі потрапило на його город і скільки всього було розкидано. Поділивши одне значення на інше і помноживши на 4, дід отримав приблизне значення числа π, яке збіглось з числом 3,14.

Голова сільради видав документи на город, а бабка з дідом продовжили садити картоплю.

Це визначення значення числа π методом Монте-Карло.

Stack Overflow

Біля вашого села є велике поле, де люди з навколишніх сіл викидають свою картоплю, а іноді й інші овочі. Хтось викидає гнилу картоплю, а хтось — гарну. Тому ви ухвалюєте рішення не садити свою картоплю, а замість цього періодично навідуєтесь на поле, щоб назбирати картоплю там. Це Stack Overflow.

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

Месенджери

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

Наступного дня дід приніс на город лопати. Це команда, яка використовує Telegram чи Viber для спільної роботи.

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

Потім бабка принесла на город телевізор «Радуга-704/Д», щоб подивитись передачу, на якій інші бабки будуть ділитись своїм досвідом садіння картоплі. Це Zoom.

Через два дні дід приніс багатофункціональний плужок з додатковими насадками, антеною та радіоприймачем. Це Slack.

Внучок, втомившись від фізичної праці, домовився з головою сільради, щоб той прислав тракторець, який можна використовувати для посадки картоплі, для розпилювання хімікатів з метою боротьби з колорадськими жуками, для викопування картоплі, а також для прослуховування радіо. Мінус — потрібно розібратись з тим, як керувати цим трактором, а ще він вимагає його періодично заправляти. Зате картоплю можна висадити за пів дня, а не за тиждень. Це Microsoft Teams.

The Art of Computer Programming

Мистецтво програмування (англ. The Art of Computer Programming (TAOCP)) — фундаментальна монографія відомого американського фахівця в галузі комп’ютерних наук і математика Дональда Кнута, присвячена розгляду та аналізу найважливіших алгоритмів, що застосовуються в інформатиці. 1999 року книгу було визнано однією з дванадцяти найкращих фізико-математичних монографій століття.

Якщо ви хочете принизити ІТ-спеціаліста, спитайте його/її, а ти Кнута читав/ла?

Стартап-інвестиції

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

Вранці він прийшов до діда і баби й, коли ті снідали, розповів про свою ідею. Це стартап-пітч (startup pitch) перед потенційними інвесторами.

Дід сказав, що може просто покликати сусіда і кількох родичів, які й допоможуть йому посадити картоплю. На що внучок відповів, що сусід може піти не до діда, а до своїх родичів, і цим потенційно зірве строки посадки картоплі. Це аналіз конкурентів (competitor analysis).

Дід запитав, а що буде, якщо ніхто не зареєструється в мобільному застосунку? В селі ж навіть 3G немає. Внучок запевнив, що 3G з’явиться вже за кілька днів. Тому що йому одна баба сказала. Це аналіз ризиків (risk analysis).

Дід повернувся до бабки й запитав, що вона думає про ідею. «Йдіть борщ їжте і не морочіть мені голову», — відповіла бабка. Це едвайзинг (advising).

Дід відповів, що потрібно порадитись із сусідом, що той думає про застосунок. Це інвест-комітет (investment committee).

До хати зайшли сусідські хлопчаки, яким сподобалась ідея внучка. І вони готові віддати свої пиріжки та цукерки в обмін на те, щоб погратись в цю гру разом з внучком. Це FFF-інвестиції (Family, Friends, Fools).

Внучок з дітлахами побігли на вулицю гратись і зустріли ще одного сусідського хлопчину. Вони розповіли про застосунок і пообіцяли, що всі, хто буде садити картоплю, отримають гроші. Хлопчина зрадів і сказав, щоб його зареєстрували в застосунку. Це ранні користувачі (early adapters).

Про ідею хлопчика дізнались в газеті «Сільські вісті» і вирішили взяти у внучка інтерв’ю. Ця ідея переверне все сільське господарство в усьому регіоні й навіть світі! «Ось такі в нас Ілони Маски» — підсумували в статті, поставивши світлину внучка на тлі трактора на головну сторінку. Це ЗМІ, які пишуть про стартапи.

«А йому ще й 10 років немає!» — пише Forbes 10 under 10.

Авторитет внучка піднявся дуже сильно. Його ідею назвали найкращою в селі й навіть запросили внучка в місцевий клуб, куди раніше його не пускали через малий вік. Це бізнес-спільноти.

Ідею внучка оцінили у 20 мішків картоплі. Це оцінка проєкту (evaluation).

А місцевий голова колгоспу привіз внучку два відра картоплі на розвиток. Це посівні інвестиції (seed investment).

PMBOK

Дід, баба і внучок зібрались садити картоплю.

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

У бабки з собою була книжка «Як посадити картоплю за 21 день», де зібрані всі правила та рекомендації щодо того, як правильно потрібно садити картоплю. Це PMBOK.

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

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

Дід має стежити за тим, щоб картопля була висаджена вчасно, або хоча б не пізніше від сусідів навпроти. Інакше будуть тикати пальцем і за очі називати ледарями. І бабку не турбує, якщо піде дощ або вдарить мороз, картоплі не вистачить чи внучок втомиться — це проблеми діда. Це визначення відповідальної особи, яка несе ризики (Risk Owner).

Бабка розповіла діду і внучку, що картоплю потрібно посадити, прополоти, покропити від колорадських жуків, а потім викопати й засипати назад у погріб. Це життєвий цикл продукту (Product Life Cycle).

Спочатку картоплю потрібно посадити. Для цього треба дістати картоплю з погреба, розрізати велику картоплю навпіл, дістати насіння буряків, наточити лопати й сапи, потім викопати лунки, накидати картоплю і посадити буряки. Це життєвий цикл проєкту (Project Life Cycle).

Після кожного дня роботи потрібно фіксувати, як змінився город, де і яка картопля була висаджена, щоб всі сусіди могли бачити прогрес. Це журнал змін (Change Log).

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

Бабка подивилась на гусей, чи стоять вони на одній лапі. Оскільки всі вони стояли на двох лапах, бабка припустила, що морозу найближчими днями не буде. Крім того, як посадять картоплю, дасть бог, піде дощ і буде хороший врожай. Це журнал припущень (Assumption Log).

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

Бабка повинна порівняти швидкість висадки цього рядка з іншими й звіритись з тим, чи встигають дід з внучком висадити картоплю до дедлайну. Це інформація про виконану роботу (Work Performance Information).

Конференції

Дід і баба садять картоплю. Сусід садить картоплю. Голова сільради теж.

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

Теми придумали теж цікаві:

  • Лопата чи плужок: який інструмент кращий?
  • Методи сортування картоплі: чи допоможе нам штучний інтелект?
  • Управління ризиками при садінні картоплі
  • Інвестиції в картоплекойни: міфи та реальність.
  • Як посадити картоплю віддалено?

Ключовий спікер — голова сільради сусіднього села.

Це Potato Conference 2021.

Життєвий цикл розробки продукту

Дід з бабою готуються садити картоплю.

Навесні дід обкопав стежки на городі, поприбирав сміття, що лишилось з минулого року, та спиляв невелику вербу. Це підготовка середовища для роботи (working environment).

Далі дід привіз гній, який разом з бабкою розкидали по городу, після чого тракторцем все переорали. Це підготовка інфраструктури проєкту (infrastructure).

Через деякий час дід і баба, а також внучок, який приїхав з міста, почали садити картоплю. Це розробка продукту (project development).

За місяць картопля почала сходити. Все, що над землею, — це фронтенд (front-end), а те, що під землею, — back-end.

Бабка прополола картоплю, вирвала бур’ян. Це тестування продукту (quality assurance) та виправлення помилок (bug fixing).

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

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

Внучку відвантажили два мішки картоплі, з якими той поїхав назад у місто. Це бонус за виконаний проєкт.

Вакансія

Весна прийшла — саджати будемо!

Міжнародна компанія Kartoplya Corp. шукає таких спеціалістів:

  • Старшого Копача Картоплі;
  • Головного Архітектора Городу;
  • Асистента Бабки;
  • Технічного Лідера з Накидання Картоплі;
  • Бізнес-аналітика з Народних Прикмет Погоди;
  • Спеціаліста з Великих Мішків Картоплі.

Обов’язкове знання:

  • кращих практик висаджування картоплі;
  • архітектури городів;
  • інструментів Lopata 3.0, Vidro 11.0;
  • системи управління проєктами Babka 3.0;
  • контейнерів Docker, Kubernetes і Mishok;
  • систем розпізнавання облич (потрібно буде розрізняти всіх сусідів і родичів бабки);
  • Tractor Studio (буде плюсом).

Тебе чекає:

  • тимбілдинг на природі;
  • вільний графік;
  • 6-годиннийденний робочий тиждень;
  • лише нові сорти картоплі;
  • можливі відрядження на город сусіда.

Резюме разом з прикладами вирощеної картоплі надсилайте «Укрпоштою».

Офтопчик

Поки дід і внучок садили картоплю, бабка з доцею збирали конопельки й наспівували веснянку.

Селянам так сподобались ці співи, що доцю вирішили відправити у Місто на пісенний конкурс KartoplyaVision 2021.

А далі ви знаєте.

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

Junior vs Senior Developer

Авторський колектив:

  • Олександр Краковецький, тексти;
  • Ігор Антонішин, дизайн;
  • Володимир Краковецький, технічний супровід.


Також стежте за новими випусками: Patreon, Facebook, Telegram, сайт, Instagram або замовляйте брендовану продукцію.

👍ПодобаєтьсяСподобалось38
До обраногоВ обраному4
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Реально креативно і зрозуміло навіть дітям :). І взагалі, пояснювати складні речі простими словами — один із найскладніших скілів. Ваша стаття — крутий продукт ;).

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

Популярні команди виходу з циклів break та continue насправді є безумовними переходами на кінець циклу чи на наступну його ітерацію відповідно.

як завжди, неперевершено )))

Наступного дня дід приніс на город лопати.

🤣 Гарно написано, автор молодець 👍

Неймовірно круто! Дякую.

Клас, Картоплявіжн взагалі куль, аж в голосі заграла Весняночка :-)
А від футбольного картофасика (ну копаний же м’яч!) оце www.youtube.com/watch?v=5uMJR2li2Tc

з 11 метафор проєктного менеджменту 4 некоректнi. Але зроблено круто!

можна додати 12у:

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

це будуть данi про виконану роботу (Work Performance Data)

Зроблено чудово, такі статті потрібно публікувати в основній стрічці!

Автор — хороша людина і по життю няша

Підписатись на коментарі