CTO на кухне: "поляна" для компании
Итак, вчерашний вопрос показал, что люди любят посмеяться. Это - супер! На самом деле!
Предыдущий пост был тяжелым для восприятия - знаю. Разрядим обстановку.
Я пообещал продемонстрировать IT-подход к готовке. Начну наверное с самого элементарного и знакомого всем - пришли гости, накрываем “поляну”.
Сначала условия задачи:
Нужно накрыть стол на трёх парней и трёх девушек. Два пьют водку, один - пиво, девушки - вино. Алкоголь свой. Еда - на нас. Время - вечер. Силы - ноль.
Первая мысль: “надо что-то серьезное готовить”. Вторая: “кому что понравится?”. Поздравляю! Обе - неверны. Готовить под каждого - упороться наглухо на кухне с тремя разными меню.
Это как делать отдельный интерфейс под Windows, Debian и iOS. Работает. Но вы потом неделю на взводе: 100% гарантия баг-репортов и обсуждение косяков проекта в закрытых чатах.
Правильный подход - спроектировать стол как систему.
Пользователи
Водка - Windows: непредсказуема, глючит, требует простого и жирного. Два пользователя. Пиво - Debian: стабильно, без наворотов, работает под нагрузкой. Один пользователь. Вино - iOS: закрытая экосистема, молодые, высокие ожидания к UX, низкая терпимость к багам. Три пользователя.
Архитектура.
Базовая шина - то, что идёт всем: сыр, гренки, овощи. Специфичные модули - то, что закрывает потребности каждой группы: сало и фри под водку, креветки и орешки под пиво, мягкий сыр и виноград под вино. Адаптер - нарезка. Один продукт, работает для всех операционок.
Подгрузка библиотек
Нарезаем репчатый лук, зеленый лук, укроп, несколько слайсов лимона. Рубленный тунец смешиваем с размятым сыром фета.
Алгоритм
Фри - в духовку: ей надо побольше времени на компиляцию. Селедка - ей тоже нужно время на компиляцию: сливаем масло, перемешиваем селедку с половиной лука, добавляем нерафинированное масло и пусть пропитывается. Маринованные опята - сливаем маринад, перемешиваем с оставшимся луком, добавляем нерафинированное масло: пусть компилируются. Нарезка - сыр, мягкий сыр, копченая колбаса. Хлеб - нарезаем, отправляем на разогретую сковороду - обжариваем несколько минут с двух сторон. Креветки на сковороду - компилируются быстро, потому в последнюю очередь.
Сборка UI
Нарезка, гренки, виноград, орешки - на тарелки - они самодостотачны - готово к проду Селедка и опята - сверху слегка присыпаем зеленым луком - готово к проду Режем помидоры и свежие огурцы крупно - украшаем укропом - готово к проду Подключаем библиотеку “тунец с сыром” к тарталеткам, сверху немного укропа - готово к проду Креветки на блюдо, подключаем библиотеку “слайсы лимона”, сверху украшаем укропом- готово к проду Достаем картошку фри - готова к проду без внешних библиотек
Деплой
Начинаем выкатывать на продакшн стол последовательно все, готовое к релизу. Но не забываем добавить readme.md - что нужно солим.
Цена ошибки.
Без системы - не понятно сколько у плиты + iOS наверняка уходят голодными. С системой - 50 минут, вы за столом, все сыты. Разница - не в таланте. В порядке операций.
Вариант MVP
Есть базовая шина и адаптеры. Всё. Если у вас только майонез и пельмени - это не провал. Запускайте в прод и смотрите, какая OS останется на вашей платформе. Спойлер: iOS вероятно не потянет.
Открывайте холодильник.
Инвентаризация - пять минут. Дальше - по схеме. Алкоголь принесут сами. Ваша задача - не готовить, а проектировать максимальную масштабируемость с минимальными временными затратами. Ваша задача - чтобы Windows не упал, Debian не заскучал, а iOS не ушёл к конкуренту.
Считаем что получаем в итоге
Итого на столе: селедка, опята, сыр, мягкий сыр, гренки, огурцы с помидорами, колбаса, сало, фри, овощи, орешки, тарталетки, виноград, креветки. Считаем: Windows - девять, Debian - семь, iOS - семь
Перекос в сторону водки? Это - не ошибка. Windows требует больше “пакетов данных”, иначе упадёт и утащит стол за собой.
Себестоимость проекта
Порядка 1500-2000 (навскидку) рублей, если брать в разумных пределах не в премиум-магазине, временные затраты - менее часа рабочего времени.
Прогноз на следующий релиз
Заинтересованность новеньким iOs :)