Pull to refresh

Comments 34

А что насчет оценки бюджета и сроков на составление ТЗ?))

Присоединяюсь к вопросу. Это пожалуй самый болезненный вопрос. Как при рамочном ТЗ реалистично оценить сроки и бюджет?

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

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

Выставляются отдельно.
В некоторых "особо запущенных" случаях, прежде чем заключить договор на разработку собственно ПО — заключается договор на разработку ТЗ, со своими сроками и бюджетом...

Я уже начал практировать услугу предварительного аудита проекта за символическую плату в 200 - 400 Евро. Отлично отсеиваются неадекваты, прощупывающие рынок и халявщики.

Кстати, количество аудитов на самые разные темы уже к десятке приближается и пока не было недовольных, хотя далеко не все итоги можно было считать положительными. Кому тоя просто открыл глаза на реальную трудоёмкость и стоимость проекта, кого то убедил в нежизнеспособности идеи... Люди не заработали денег, но зато и не ввязались в крайне сомнительную авантюру риск в которой потерять всё выше 95 процентов.

Как именно аудит проводите? Куда ездите, с кем беседуете? Мне случалось уже после начала проекта ловить за пуговичку в соцсетях предположительного пользователя, чтобы проверить «пользовательские истории».

Текст хороший. В идеальном мире, наверное, возможно и ТЗ нормально сделать, и сроки адекватные поставить, и бюджет выделить соответствующий.

В реальности же (причём не только в ИТ и разработке) обычно срок «ещё вчера», денег в два раза меньше, а ТЗ меняется десяток раз прямо перед дедлайном по принципу «все херня, давай сначала, но денег не дам». Как результат - херачить в режиме «херак-херак-и-в-продакшн» 24/7 под постоянным давлением свыше. Особенный шик, если это все приправлено сверху эффективными менеджерами с KPI, канбанами и прочей новомодной сранью.

Все строго по канве анекдота: "Вам, мышам, нужно стать ёжиками".

Основная проблема подходов "как правильно написать ТЗ" заключается в убеждении, что есть кто-то (человек, группа лиц) - которые уже имеют в голове описание решения задачи, и могут в структурной форме его изложить. Но это только одна из ситуаций, причем довольно редкая.

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

И тогда составление ТЗ превращается в цирк с конями: сам бизнес никакое ТЗ составить не может, а если составляет ИТ - то бизнес тупо подписывается под всем что принесли (не в силах понять что там написано), а потом начинаются разборки, ближе к концу...

Поэтому, работайте по аджайлу! Когда вы притащите бизнес-заказчику кривую-косую, но хоть какую-то версию приложения с которой они могут начать взаимодействовать - на вас обрушится поток критики: "то - не так, это - невозможно, так - нельзя, это - неудобно", и т.д. И вот уже из этого потока можно начинать лепить картину того, что им объективно нужно. Психологически - это тяжело, но нужно просто понимать - что люди от бизнеса в большинстве своем не умеют в абстракции. Им физически тяжело обсуждать что-то, чего в реальности не существует. Поэтому итеративная разработка и постоянная коррекция - спасают положение лучше, чем крепко подписанное ТЗ... Более того, иногда бывает дешевле объяснить программистам бизнес-задачу, а потом выстроить бизнес-процесс заново вокруг хорошего решения.

Если вы запускаете ракету (или самолет, или автомобиль) или делаете инсулиновую помпу, или что-то еще в таком духе - ни в коему случае не следуйте выше приведенной рекомендации. У вас в отраслях есть свои стандарты, и им ДЕЙСТВИТЕЛЬНО необходимо соответствовать! Спасибо!

В моей практике происходит именно то, что вы описали. С учётом того, что я работаю не в сфере чистого IT, а разрабатываю электронной оборудование то приходится сталкиваться ситуация в которой на этапе составления ТЗ особо не ориентируешься в задаче. Дают тебе гидравлическую схему какого то оборудования, заранее подобранные датчики и исполнительные механизмы. В результате оказывается что в собранном для тебя опытном образце стоит не то, в алгоритме ошибки, интерфейс не проработан и пошло поехало...

Главный вопрос - как рассчитать бюджет и время исполнения при работе по аджайлу.

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

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

Либо заказчик соглашается платить по принципу Time&Material - либо делить проект на итерации и оплачивать итерации. Второе совсем плохо, потому что кратно увеличивает бюрократию на проекте. В итоге, может оказаться что от проекта где никто не понимает что нужно - но дает фиксированные деньги (и нет 2-4-10x запаса) приходится отказываться. Или делать фактически за свой счет, но с пониманием, что эта задача нужна и другим заказчикам - и можно отбить начальные вложения за счет тиражирования решения на рынке.

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

  1. Оцененный изначально бюджет проекта таким образом проедите примерно к середине второй итерации. Потому что трудоёмкость оценивалась на основании того объёма требований, которые были в самом начале. А итераций меньше трёх-четырёх не бывает. Т.о. заказчик просто переплатит в несколько раз по сравнению с ожидаемой суммой.

  2. С большой вероятностью, "мелочи", которые всплывут примерно на четвёртой итерации, окажутся ключевыми требованиями к системе. "Да, мост хороший и удобный, только нам надо не через Малую Соплю, а через Керченский пролив, а так всё замечательно, немножко поправьте и всё, вам разве не всё равно?".

А так всё правильно, да...

;)

Тут уже взаимная ответственность заказчика и исполнителя. Если отрабатывали на итерациях расположение и форму кнопок на панели HMI, а не концепт системы (хотя бы и с кривым интерфейсом) - ну кто виноват-то тогда?! Это уже опыт заказчика и опыт исполнителя должен быть. А без опыта - что угодно запороть можно - проверено и на себе в том числе! :-)

А что делать с заказчиками "без опыта" прикажете? Когда работаешь не с корпорациями, а с мелкими конторами и тем более частными лицами, таких большинство!

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

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

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

Совсем маленький вопрос остаётся, как это объяснить заказчику. Когда общаешься напрямую с собственником, ещё куда не шло. Но в ситуации когда не получается выйти на уровень выше технического директора(ещё не худший вариант) попытка рассказать заказчику что мало того, что ему необходимо заплатить за разработку, так и бизнес процессы надо поменять что выходит за рамки его компетенций редко оканчивается удачей.

О! Это отдельная тема. Тут нужно или иметь с компанией наработанные отношения, чтобы они тебя по-умолчанию слушали, а не считали что ты с них пришел просто денег срубить... Или надо чтобы у них реально заболело не по-детски. Как, извините, с докторами - которых условно здоровые люди обычно не воспринимают.

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

Вообще B2B продажи - это отдельная песня... Всех продажников накачивают продавать товар/услугу любой ценой - а это не совсем верно. Я считаю, что в B2B надо идти тогда, когда ты готов посмотреть на ситуацию глазами заказчика и честно сказать, что сейчас ты не видишь смысла внедрять свое решение (если так оно на самом деле и есть). Тогда тебе поверят и в той ситуации, когда ты скажешь что внедрять нужно...

И это я еще не говорю о взятках и откатах, которыми славен российский корпоративный рынок (причем, как со стороны вендоров дающих, так и со стороны заказчиков вымогающих). :-(

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

И тут на них обратило внимание Роснано. В чистом виде Белые Рыцари. Выдав кредит втянули в очень сомнительный проект с Билайном с нереальными сроками и финансированием. Он естественно лопнул. Как результат, отжали у них помещение. Арендовали в научном центре. Перевезли. Первым делом уволили основателя, который по совместительству был разработчиком этой технологии. Потом пнули коммерческого и весь остальной "биомусор" - оставили только электрика и завлаба из старой гвардии. Понаставили какого-то бушного оборудования и заявили что теперь они будут заниматься не производством, а исследованиями. Привлекли каких то очень мутных "профессоров" которые начали рекомендовать абсолютно абсурдные вещи, типа покупки на митинском рынке медной оплётки для отсоса припоя и использования её в качестве выравнивающей поверхности при монтаже полупрводниковых элементов модулей Пельтье...

Когда я случайно пересёкся с одной комиссией из Роснано и они возмутились почему в стенде по испытанию модулей Пельтье (надо было стабилизировать токи до 60 ампер в широком диапазоне нагрузки) идёт подводка такими толстыми проводами, я попытался объяснить... В ответ получил ценную рекомендацию к следующему разу перестроить установку таким образом, чтобы передавать энергию по блютусу.

Тут я понял, что пора заканчивать работу с этими ребятами, тем более что они уже и платить перестали...

Ещё несколько лет эта загадочная контора проработала, привлекая за небольшую плату сотрудников соседних лабораторий для имитации деятельности в момент визита очередной комиссии от Роснано. Потом мои связи с завлабом разорвались, не знаю чем всё это закончилось...

Вот такие бывают заказчики!!!

P. S. с тех работаю только с частными конторами...

Ну тут ох!.. Если в частном секторе МОГУТ требовать и предлагать взятки - то в (около-) государственном - они смысл жизни видят в попиле и откате. :-(

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

Ну бывает и ещё веселее. В проекте сорваны все сроки, бюджет растрачен, сделанное глючит невероятно, половина команды разбежалась, разок случалось что не оставив исходников, пара опытных экземпляров табачных автоматов стоят в Цюрихе, ещё три в Польше и если польские выдают что-то отдалённо похожее на ожидаемый результат, то расположенные в аэропорту Цюриха гонят полный неадекват и периодически намертво зависают.

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

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

Декомпиляция это круто вообще. И чем закончилось?

Мы просто код переписали.

Но в итоге дело совсем не в коде оказалось, а в клубке взаимовлияющих аппаратных и программных проблем.

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

Декомпилировал. Некоторые места пришлось пройти разными декомпиляторами, т.к. если не helloworld, то результат декомпиляции не всегда обратный и читаем. Около сотни классов красные в ide. Сел, начал разбираться, через неделю удалось собрать и запустить проект. Еще неделю проверял соответствие требованиям. Кое-что пришлось исправить. А далее уже развитие и доработка под новые требования.

Снимаю шляпу перед такой работой.

Я в схожем случае просто наследовался от существующих классов, переопределяя методы по мере надобности (предварительно их открывая для переопределения).

Тут уже писали про быстрое прототипирование, вставлю тоже свои 5 копеек. Быстрое прототипирование, в котором учтены самые тонкие моменты.

Например, в моем случае (работа с 3D в Web) - это когда в задаче кроме знакомых элементов используется что-то новое. В этом случае я быстро гуглю, щупаю новую для себя технологию убеждаюсь что она работает и я могу ей управлять. И только после этого начинаю разговор с заказчиком о цене и сроках.

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

Было в моём последнем проекте и быстрое прототипирование. Запустили экземпляр с упрощённым алгоритмом работы. Даже TFT контроллер запустили.

Но потом понеслось - вышли панели с графускорителем нового поколения. Мы посчитали что разница незначительная, а она оказалась офигенной с учётом того, что пришлось переходить с псевдографики на графику, а там возникла часть проблем. Среда разработки для нового контроллера оказалось кривой. Примеров практически нет, хотя для старого было дочерта. Немцы отказались поставлять часть комплектухи, пришлось искать замену. Потом другую часть отказались поставлять корейцы. Программист с которым я сотрудничал стал сотрудничать с яндексом и увеличил ценник за свои услуги в два раза. У заказчика пошли проблемы с основным бизенсом по вполне понятным причинам, там все замороченные и получить от них ответы на возникающие проблемы стало почти невозможно... В рамочном задании по графинтерфейсу начали всплывать подводные камни и вразы типа "предусмотреть то-то" иной раз занимали от двух до 4 недель кодинга...

Словом, всё пошло не так и заложенные в проект риски возросли в несколько раз...

Тут могу только посочувствовать. И у меня подобное было. Когда затраты времени на проект в 3 раза превышают оценку которую ранее дал клиенту. Моя методика не гарантирует что подобное можно избежать, она всего лишь снижает риски.

Не так страшны первые 80% проекта, как вторые 80%

Мне особенно тяжело даются третьи 80%

UFO just landed and posted this here

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

Sign up to leave a comment.

Articles