Tags: Флекс скоуп

Игра, забытая временем. Или как просрать 13 лет жизни

Полезный видосик о том, как чувак проебал 13 лет жизни, делая игру, которая нахуй никому не нужна.




Сам автор выделил шесть причин пиздеца:
1. Амбиции. Слишком сложного и слишком многого хотел. Все уровни были разными со своей уникальной механикой. Это фичеризм по-нашему.

2. Самонадеянность. Чел не знал, что делал. Сначала настраивал готовый движок, потом плюнул и переписал всё с нуля. Это простой непрофессионализм. Браться и делать, чтобы научиться — это ок, но нужно уметь оценить свои силы.

3. Сложная графика. Решил сделать честное освещение, для этого пришлось сделать две версии всех текстур. Это тоже фичеризм.

4. Взросление. Всё это время он совершенствовал программистские и графические навыки. В какой-то момент его начинал бесить старый вариант, и он его переделывал. Например, он сделал пиздатеньким поясок. Тут и страх запуска. И непонимание ограниченности времени. И опять фичеризм.

5. Жёстко следовал плану. Чувак сделал всё, что изначально запланировал. Жаль, что он не знал главный миф о проектах.

6. Не мог бросить начатое. Каждый раз ему казалось, что раз он уже въебал 5-7-10 лет, то теперь не может просто так бросить. Само по себе это неплохо, жаль, что он не умел флексить.

Надо отдать чуваку должное, он-таки построил летающий асфальтоукладчик. И потратил всего 13 лет. Другие, вон, 54 года хуярили.

Если вы не поняли, что такое «фичеризм», «страх запуска», «главный миф о проектах», «флекс», «летающий асфальтоукладчик», и не хотите оказаться на месте этого чувака, записывайтесь на курс:
http://artgorbunov.ru/educenter/fff/

Я знаю, вы все ждёте: Купер не понравился

Конечно же не сам Алан. Он очень милый и приятный человек. И организация мероприятия была крутая. Мне не понравилось то, что Купер рассказал. А то, как все поняли его слова, меня не просто убило.

По всей видимости, эта тема растянется на несколько постов, потому что в процессе срача бурного обсуждения сабжа, я  пойму что-нибудь новое. Так что будем считать этот пост только началом.

Я бы очень не хотел, чтобы вы подумали, что я такой вконец охуевший тип, которому наплевать на всех и даже на ребят вроде Купера. Когда я стал работать в бюро и познакомился, например, с Ильёй Бирманом, это было для меня очень круто. То, что я когда-нибудь увижу, скажем, Людвига или Самизнаетекого, я иногда себе представлял возможным. Через N лет случайно по работе. О том, что я смогу поговорить с Аланом Купером я не думал никогда. Даже как он выглядит не представлял и не интересовался. Потому что, когда ты по физике читаешь про закон Ома, мысли встретиться с Омом не возникает. Это просто абстрактный крутой персонаж, который существует или существовал в другой галактике. То есть мне даже трудно объяснить степень моего уважения к Алану.

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

Я спросил дословно следующее (я готовил вопрос, поэтому текст остался):
It's not a secret that in design company the personality and skills of a leader are crucial. And this can slow down the growth of a company.
What was the smartest and most effective decision you made to grow from several employees company to several dozens of employees company?

Таня Мисютина спросила сколько человек в его фирме работает.

Однако, хотя на все вопросы он ответил: «Гуд квесчн», ответы на них он не дал. И давать, как мне показалось, не собирался, потому что, как мне показалось, заданные вопросы на заготовленный рассказ не сильно повлияли. Как расти — не рассказал, сколько людей в компании — не ответил (Крис потом поделился: 12 человек основных, 6 пар, они парами работают, потом расскажу отдельно).

Это было предисловие. Теперь суть.

Суть рассказа Алана была такой (он это все подробно разложил по полочкам, объяснил и пр., тут я все сильно сокращаю):
Мир программного обеспечения (дизайн — это часть ПО, понятно) устроен совсем не так, как предыдущий индустриальный мир. Если раньше все побеждали уменьшая издержки на производство продукта, снижая цену и обходя, таким образом, конкурентов, то теперь это не катит. Теперь побеждает тот, кто делает продукт правильным. При этом не важно, кто будет первым, важно кто сделает то, что будет нужно. Пример — айфон. Не важно, что он запускался на рынке, где успешно работали десятки фирм. Не важно, что Эппл к нему шел десяток лет. Он оказался правильным и победил всех.


И дальше:
Откуда берутся правильные продукты?  Они строятся на основе охрененных крутых идей и отличных реализаций. А все эти охрененные штуки имеют одно свойство. Их невозможно придумать за фиксированное время. Никто не может гарантировать, что он изобретет айфон за два, пять или десять лет. Невозможно гарантированно сделать супер штуку и уложится в срок, потому что разработка — это как минное поле. Иногда ты пройдешь по тропинке сразу к результату, а в другой раз ты будешь наступать на все мины, которые будут тормозить тебя на неопределенное время.

И вывод:
В современном мире софта рулят вещи, сделанные правильно. Никто не может делать правильные вещи за фиксированное время. Поэтому для разработки современных софтовых проектов команды нельзя искусственно ограничивать во времени (и в деньгах, ессно, тоже).

Вот так. Это на 180° отличается от подхода бюро. Флекс тайм, флекс баджет, райт резалт. Как и когда должен заканчиваться проект? Ответ: Сама команда должна решить. 

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

Кстати, другой пример, который привел Алан — Гугль:
На открытие Гугля понадобилось 50 000 долларов США. А что если бы понадобилось 500 000? Или даже 5 000 000? Пять миллионов — это капля в море для сегодняшнего Гугла и если бы нужно было потратить 5 миллионов, то, конечно, надо было бы их потратить и сделать этот супер классный поиск, который потом сделал Альтависту и всех остальных.

Короче, первое время я конкретно задумался. Но потом мрак рассеялся и я понял, что Алана неправ. 

Почему неправ? Возьмём пример с Гуглем. Если бы Гуглю нужно было 5 000 000 $, чтобы открыться, то... то не было бы никакого Гугля, а Сергей Брин, не найдя денег, отправился бы работать в Макдональдс. Я утрирую, понятно, но суть такая. 

А причина этому очень простая и фундаментальная. В пределе подход Алана означает, что разработчикам надо дать бесконечное количество денег и времени (мы же не знаем количество мин, на которые они наступят). А так не бывает в этой вселенной, ребята.

Даже если представить, чисто теоретически, что денег есть неограниченное количество, то времени — нет. По очень простой причине. Люди живут не бесконечно долго. И если ты будешь делать что-то и тебе не повезет с «минами», ты будешь постоянно на них наступать, но всё равно будешь упорно идти к цели, зная, что «правильный» продукт всегда побеждает, то в какой-то момент ты просто умрёшь, тебя закопают в землю и тебе там, когда тебя будут жрать червяки, уже будет совершенно похуй на все и на червей и на проекты и на «дуинг ит райт».

Даже если потом, после твоей смерти, продукт получится и всех победит, тебе будет похуй. Ты уже труп.

В понимании этого, кстати, и есть основа фикс тайма и флекс скоупа. Дело не столько в том, что он позволяет укладываться в сроки и прочее. Самое главное, что он позволяет сделать что-то полезное (чем больше, тем лучше) за ограниченную жизнь. Кстати само слово «дедлайн» как бы намекает.

Да, Джобс понимал, что важно сделать правильный продукт. Да, он шел к тому, что у нас есть сейчас годами. Это все так. Но он всегда умел, блять, стать реалистом (книга про фикс тайм и флекс скоуп так и называется «Геттинг риал»). 

Именно поэтому в первом айпаде не было камеры, а в первой айфоне крутого экрана Ретина и еще кучи штук. Там было правильно сделано ядро. Было минимальное полезное действие достигнуто. Зато они появились, вытащили компанию из жопы (Насколько я помню, в момент появления первого Айпода Эпплу было 4 месяца до банкротства, что было бы, если бы не успели? Смерть.), дали деньги на новые версии, дали кучу фидбека и опыта. Можно продолжать долго и все это будет про фикс тайм и флекс скоуп.

Я очень жалею, что возможности обсудить это с Аланом почти не было, поэтому по результатам обсуждения этого поста я напишу ему письмо. Я не верю, что Алан не понимает того, что я тут написал и что правда предлагает дать разработчикам столько времени, сколько им нужно. Я думаю, что он просто не совсем правильно донес до нас его понимание или мы не так его поняли.

А то, как его поняли ребята, вообще заслуживает отдельного рассказа. Я больше, чем уверен, что половина слушателей поняло всё так:
Правильно и православно давать разработчикам столько времени, сколько надо и столько денег, сколько требуется, а эти пидорасы менеджеры, обученные по программам, которые годились для индустриальной эпохи (а у нас все такие, сомнений нет), ставят сроки и убивают все инновации.

В конце второго дня, когда были вопросы, lenadronova подтвердила мою догадку, спросив следующее:
Алан, вы все круто объяснили и я с вами полностью согласна. Но в реальном мире же так не получается. В реальном мире менеджеры... Как быть?

Алан ответил так, что сомнений в том, что во всём виноваты уродские менеджеры, кажется, больше ни у кого не осталось. Он перешел натурально на крик, так что я чуть в штаны не наделал (мало ли, чего ждать), и сказал следующее:
Всем нам надо работать и кормить семьи и прочее, но, блеать (это мой вольный перевод, крик начинается тут), ни на секунду не позволяйте людям, которые ставят сроки в софтовых проектах, думать, что они живут в реальном мире. В реальном мире время нельзя фиксировать, поэтому это они живут в мире иллюзий.

Булшит! Ограничения во времени — и есть реальный мир. Дедлайн — фундаментальная основа этого мира.

“Your time is limited, so don’t waste it living someone else’s life.” — Steve Jobs

P. S.
Через день после того, как я это написал, я понял, что подход Алана отлично живет в фикс тайме и флекс скоупе. Да, сделать правильный продукт очень важно. И действительно, хуй его знает, какая дорожка тебя к нему приведет. Поэтому если ты эту дорожку разрежешь на фиксированные куски времени — ничего плохого произойти не может. Ведь это разрезание никак не влияет на то, что в конце ты получишь правильный продукт и всех сделаешь. Зато разрезание дорожки на куски может нехило помочь. Ты можешь получить средства на дальнейший путь (пахать два года живя на заплату жен, как разработчики библиотеки Qt, не каждый сможет), организуешь и оптимизируешь свою работу, сможешь раньше избавиться от говна и исправить ошибки. 

Летающий асфальтоукладчик

Сходил в План-Б и рассказал про флекс скоуп.

План рассказа был такой:
1. Приветствие.
2. Отмазаться, что не готов.
3. В чем профит флексскоупа.
4. Рассказать, что рассказ будет построен на сравнении обычного подхода и флекс скоупа.
5. Обычный проект.
6. Откуда взялся флекс скоуп.
7. Проект по флексскоупу.
8. Как объяснять заказчику про сабж.
9. Трудности.
10. Спасибо.

Мне понравилось, вода из кулера была классная. Собравшимся спасибо.

Еще я там узнал, что сайты подразделяются на «корпоративные сайты» и «сервисы». И было озвучено мнение, что для сервисов или тех, кто что-то продаёт флекс скоуп может катить, а для корп. сайтов — нет.

Я обдумал. Это хуйня. Все кроме чиновников, которые делают сайты, чтобы сединоросить бабла, и директоров школ, которым сайт нужен, чтобы районо не дало пизды, делают сайты чтобы что-то продать в конечном счете напрямую или косвенно — не важно.

P. S.
Только не спрашивайте, что значит... :)

Вы все работали по принципу флекс скоуп

Только что до меня дошло, что все вы прекрасно знаете и умеете работать в системе фикс тайм, фикс баджет и флекс скоуп (давайте что ли называть этот подход «флекс скоуп»?), по которой у многих было так много вопросов (см. http://artgorbunov.ru/bb/soviet/20110617/ и ksoftware.livejournal.com/171873.html). А большинство, я уверен, работают по этому принципу прямо сейчас, только не понимают этого.

Вот скажите, вы как зарплату получаете? Раз в месяц и фиксированную? Значит фикс баджет есть. А получаете регулярно? Значит и фикс тайм присутствует. А  всё, что просят за месяц успеваете? Или что-то в следующем месяце за новую зарплату делалаете? Вот и флекс скоуп появлися.

Итак самая обычная работа с зарплатой раз в месяц — это и есть самый что ни на есть подход под страшным названием «fix time and budget, flex scope».

Единственное отличие от описанного Артёмом подхода только в том, что гибкость функционала во флекс скоупе гораздо жестче, чем в обычной работе. Можете представить себе это как жесткого менеджера, который очень четко решает, что если вы в этом месяце что-то не успеваете сделать хорошо, значит вообще не делаете. И еще, пожалуй, итерации очень явно отделены друг от друга.

При таком сравнении можно найти ответы на множество вопросов. Ну, например: 
 
1. Флекс скоуп выглядит так, что исполнитель может нихуя не делать, а потом в конце сказать, что типа времени нет и давайте всю функциональность выкинем. Сравниваем с обычной работой. Скажите, что будет, если сотрудник днями будет сидеть на Однокласниках, в Вики, в ЖЖ, а потом скажет, что ничего не успел? Правильно, он пойдет нахуй искать новую работу. Также и при работе по флекс скоупу. Если заказчик увидит, что мы халявим, он всегда может нас послать.
 
2. Как быть с тем, что вся ответственность якобы на заказчике, а мы в шоколаде сидим и ничем не рискуем? А как в обычной работе? Вот вы взяли чела на зарплату. Вы чем рискуете, если он не сделает работу? Очевидно, что всем проектом, потому что за проект официально ваша фирма отвечает, а не этот чел. А чем рискует работник? Он рисует своей работой (могут выгнать, если будет халявить), репутацией. За проект он не может отвечать, потому что в договоре не его имя. То есть если человек ответственный он может сделать всё, что от него зависит, помогать принимать решения, но в конечном итоге за проект будите ответственны вы.
 
3. Можете представить ситуацию, что вам на работе дали задание, вы за месяц его не сделали и начальник вам приходит и говорит: меня не ебет, ты обещал, значит следующий месяц будешь работать бесплатно, пока всё не доделаешь? Будите работать месяц без зарплаты? А два? Этот пример объясняет зачем нужен флекс скоуп.

Дальше сами можете попробовать по проводить аналогии.
 
UPD:  Кстати, используя эту аналогию можно понять кто принимает важные решения и отвечает за их принятие. В обычной фирме — это, конечно, директор. Во флекс скоупе — это заказчик.