Pull to refresh

Не по ТЗ

Reading time 4 min
Views 39K


Умоляю, уберите скорее от экранов перфекционистов и беременных своей чудесной идеей заказчиков. Пост содержит боль. И вообще, проконсультируйтесь с вашим психотерапевтом.

Я — аналитик и уже привык: все и всегда происходит не по ТЗ. Это норма, и удивления давно у меня не вызывает — я уж стал думать, что так оно и надо. И тут внезапно увлекся машинным обучением, пошел на курсы, а там надо сделать задание по программированию, а потом проверить три чужих таких же. Я посмотрел на то, как разработчики выполняют учебные задания, и в голове сразу же сложился пазл, как же это все так получается-то.

Сразу же хочу ответить на несколько важных вопросов.

А может, это не настоящие программисты, а просто начинающие безрукие упыри?


Нет! На этих курсах есть этап знакомства, и там все обычно пишут, что давно в разработке и решили квалификацию повысить. Да и сами курсы — довольно-таки зубодробительные, с большим количеством матана и линейки. Не для джуниоров совсем.

А как же можно проверять чужие задания, если ты сам не шаришь?


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

В чек-листе примерно 40 вопросов, в духе: “В задании просили вывести 12 признаков, а не 13. Проверьте, действительно ли признаков 12.”.

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

Ну хорошо, ты проверял задания разрабов, с каким-то опытом, и что же тебя там так поразило?


А поразило меня, ребята, повальное наличие 13-ого признака. Просто никто не стал заморачиваться!

40 тестовых вопросов я бы разделил на группы:

* Нужно использовать какой-то метод, о котором написано. Обычно, все справляются.
* Нужно реализовать какую-то задачу. Обычно, тоже справляются.
* В этой задаче нужно учесть важные детали. Есть детали простые, например, подписи к графикам. На это все забивают. Хотя в каждом чек-листе на проверке есть пункт “А есть ли у графиков подписи?”. Сижу, проверяю задания — ни у кого нет подписей!

Дальше есть мелочи, о которых не сказано, как они делаются. Ну, например: “Вывести коэффициент альфа”. Чтобы его вывести, нужно немного вкурить доки или догадаться. Почти все забили.

И еще есть мелочи, с которыми нужно задолбаться: “Вывести минимальный коэффициент альфа для каждого столбца”. А такого метода нет, нужно делать вручную — никто не стал заморачиваться.

Ну это же мелочи! Главное, ведь, понять принцип во время обучения! Что ты привязался?


Во-первых, посмотреть, например, альфы просто необходимо для понимания принципов. Во-вторых, есть еще вопросы типа “вывод”, и если неряшливо относиться к мелочам, то в выводах начинается жара. Например, у человека на графике “шпилька” в потолок, а он в выводах пишет, как все красиво сходится к теоретическому нормальному распределению.

Ну ладно гнать! У тебя у самого, что ли не было багов?


Были. У меня тоже ничего не сходилось. Это было видно, и я переделывал. Я замучался с 13-ым признаком, замучался с альфами.

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

И тут меня впечатлил второй важный момент. Для того чтобы вкурить, как все работает, приходилось много гуглить. И, естественно, попадались чужие проекты. Многие даже в Гитхабе. А какие-то — висящие на домене какой-нибудь конторы, которая предлагает свои услуги по разработке. Хотя вываливать задания, конечно, запрещено. Но кто читает правила? Ну так вот, мое грустное открытие в том, что очень многие авторы этих проектов бросили обучение год, два или более назад.

Да что там говорить! Был даже парнишка, который заморочился и выбросил-таки 13-ый признак из списка, и даже одну альфу вывел. Вот, правда, под конец этот супермен подустал, поэтому забил на графики вообще, а в выводах написал: “Ну тут все аналогично.”

Благодаря этому опыту, у меня родилось понимание, как же все происходит не по ТЗ


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

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

Да знаю я этих рукожопов, я не такой!


Конечно, иногда попадаются разрабы высокой четкости. С ними есть сложность: они как посмотрят на ТЗ, в котором есть мутные места, так сразу говорят: “Тут какой-то бред, я с таким не работаю!” Год не работают, два не работают, начинают голодать и таки ввязываются в какой-то ад. Ну или думают: “Ну его нафиг! А стану-ка я лучше инструктором по парашютному спорту или скалолазанию”.

А бывает еще такой вариант. В ТЗ все — очень четко, разраб забил и давай юлить: “Ой, у тебя запутано! Ой, а я думал не так, а по-другому.” И клиенты тоже любят: “Ой, а мы думали, что это само собой разумеется.”

Вместо заключения: “И как с этим жить?”


Да так же, как и раньше жили:

— обязательный чеклист по каждой задаче;
— мало пунктов на каждый этап;
— обязательное обсуждение каждого пункта голосом;
— короткие спринты.

Конечно, заказчик хочет полный фарш, и чтобы ему показали обязательно готовую систему. Надо этому сопротивляться и с болью формировать чеклист из малопунктов на короткий этап. И да, я люблю голосом проговорить каждый пункт и с заказчиком, и с разрабом. А еще люблю прописать прямо в ТЗ, что реализовано не будет.

А бывает, забью на что-то из этих светлых принципов зачем-то и страдаю…

PS: zharikovpro дополняет, про чеклисты на основе макета:
Only registered users can participate in poll. Log in, please.
Как вы грешите?
14.38% Не читаю ТЗ вообще 43
33.78% Читаю ТЗ по диагонали 101
17.06% Читаю ТЗ и сразу забываю 51
12.37% Читаю ТЗ, но не пытаюсь понять его 37
29.1% Читаю ТЗ, но не согласен! Я лучше знаю что нужно заказчику! 87
34.78% Перед сдачей работы не проверяю все ли сделано по ТЗ 104
22.74% Мелочи для слабаков, опускаю их 68
9.03% Напишу свой вариант в комментах 27
299 users voted. 248 users abstained.
Tags:
Hubs:
+19
Comments 101
Comments Comments 101

Articles