Спрашивали - отвечаем. Дело было на предыдущей работе, откуда меня после испытательного с треском и почти скандалом выперли пинком под зад.
Сначала хотел раскрыть все имена и названия, потом решил всё-таки не делать этого.
Для начала прелюдия. Занимался я сайтом компании и различными веб-сервисами для внутреннего употребления. Пример - вывод статистики с внутренней АТС, в удобном виде, с выборкой по отделам и сотрудникам, с некоторой аналитикой даже.
Сайт был сделан на собственном движке компании. Движок внутри представлял собой нечто навороченное, а снаружи - фактически поля для ввода сырого HTML-кода, никакого WYSIWYG и близко нет. Из средств автоматизации - некоторая инкапсуляция вывода скриптов, и макросы, то есть повторное использование кода. Параметрических макросов не было, я их эмулировал, вроде такого: [MACRO_[PARAM]]. Сначала вычислялось значение PARAM, затем подставлялось и вычислялось уже значение всего макроса. Что характерно, начальник офигел от такого использования системы, хотя как мне кажется, такой любой настоящий perl-программист просто не может не думать подобным образом.
Так вот. Поступает задача от директора по маркетингу. Дословно не перескажу, надо было сохранить, потому что там формулировки большую роль играют. В общем, ей надо было редактировать документы. Пресс-релизы, описания продуктов, даже новости наверное. Нужна была возможность доступа нескольких людей к документам, поддержка версионности (всегда можно посмотреть, кто, что и когда менял), и полуавтоматическое выкладывание этих документов на сайт, желательно автоматической вёрсткой в PDF. Да, и документы должны состоять из частей (макросов), чтобы скажем шапку и подпись можно было создать один раз.
Я, признаться, не сразу понял, что требуется. Начал работать, как мне сказал начальник. Сказано - версионные макросы, значит я пишу надстройку над движком сайта, с поддержкой версий, с откатами, с просмотром diff-ов. И знаете - фигня получалась. Ну прежде всего я напоролся на кучу проблем. А что, если кто-то отредактирует макрос из места, которое не умеет версии? Из старой CMS? Ну и так далее. И вообще, получалось как-то не очень. Некрасивая получалась система. К тому же, первые отзывы от заказчика - директора по маркетингу - означали примерно "ой, а что это?". Йа начал думать. Думал четверг, думал пятницу, но больше всего думал субботу. (просто я запомнил, что это был конец недели). И до меня доходит. Не зря я в банке пять с половиной лет интернет читал!
В понедельник начинаю частную переписку с заказчиком (директором по маркетингу). Выясняется, что да, она хотела систему редактирования документов. Что да, и она, и менеджеры в гробу видели наш HTML, наши управляющие конструкции и прочую хрень. Что ей нужно Groupware. Что ей нужно Document Workflow. Документы, которые редактируются совместно (в визуальном режиме, никаких HTML!), в которых можно видеть, кто какой вклад внёс, которые утверждаются и публикуются. Ну блин! Я уже даже нашёл два решения - на MS Office и на OO.org (про Domino.doc я не вспомнил, оно и к лучшему, пожалуй). И описал результаты разговора и свои предложения в трекере по задаче.
За это, что характерно, получил по ушам. Мне было сказано, что такие решения нельзя принимать до технического задания (sic!). Ну и чуть погодя мне было заявлено, что наши дальнейшие пути расходятся.
В конце, в последний рабочий день, я всё-таки написал в трекере, как я вижу требования заказчика, и что решания принимаются не на основе техзадания, а на основе спецификации требований. Жаль, не догадался написать, что при готовом техзадании уже не принимаются решения, техзадание просто выполняется.
PS Постарался написать максимально общими словами. Чтобы было понятно людям, которые, к моему великому сожалению, ничего не понимают в IT.
Сначала хотел раскрыть все имена и названия, потом решил всё-таки не делать этого.
Для начала прелюдия. Занимался я сайтом компании и различными веб-сервисами для внутреннего употребления. Пример - вывод статистики с внутренней АТС, в удобном виде, с выборкой по отделам и сотрудникам, с некоторой аналитикой даже.
Сайт был сделан на собственном движке компании. Движок внутри представлял собой нечто навороченное, а снаружи - фактически поля для ввода сырого HTML-кода, никакого WYSIWYG и близко нет. Из средств автоматизации - некоторая инкапсуляция вывода скриптов, и макросы, то есть повторное использование кода. Параметрических макросов не было, я их эмулировал, вроде такого: [MACRO_[PARAM]]. Сначала вычислялось значение PARAM, затем подставлялось и вычислялось уже значение всего макроса. Что характерно, начальник офигел от такого использования системы, хотя как мне кажется, такой любой настоящий perl-программист просто не может не думать подобным образом.
Так вот. Поступает задача от директора по маркетингу. Дословно не перескажу, надо было сохранить, потому что там формулировки большую роль играют. В общем, ей надо было редактировать документы. Пресс-релизы, описания продуктов, даже новости наверное. Нужна была возможность доступа нескольких людей к документам, поддержка версионности (всегда можно посмотреть, кто, что и когда менял), и полуавтоматическое выкладывание этих документов на сайт, желательно автоматической вёрсткой в PDF. Да, и документы должны состоять из частей (макросов), чтобы скажем шапку и подпись можно было создать один раз.
Я, признаться, не сразу понял, что требуется. Начал работать, как мне сказал начальник. Сказано - версионные макросы, значит я пишу надстройку над движком сайта, с поддержкой версий, с откатами, с просмотром diff-ов. И знаете - фигня получалась. Ну прежде всего я напоролся на кучу проблем. А что, если кто-то отредактирует макрос из места, которое не умеет версии? Из старой CMS? Ну и так далее. И вообще, получалось как-то не очень. Некрасивая получалась система. К тому же, первые отзывы от заказчика - директора по маркетингу - означали примерно "ой, а что это?". Йа начал думать. Думал четверг, думал пятницу, но больше всего думал субботу. (просто я запомнил, что это был конец недели). И до меня доходит. Не зря я в банке пять с половиной лет интернет читал!
В понедельник начинаю частную переписку с заказчиком (директором по маркетингу). Выясняется, что да, она хотела систему редактирования документов. Что да, и она, и менеджеры в гробу видели наш HTML, наши управляющие конструкции и прочую хрень. Что ей нужно Groupware. Что ей нужно Document Workflow. Документы, которые редактируются совместно (в визуальном режиме, никаких HTML!), в которых можно видеть, кто какой вклад внёс, которые утверждаются и публикуются. Ну блин! Я уже даже нашёл два решения - на MS Office и на OO.org (про Domino.doc я не вспомнил, оно и к лучшему, пожалуй). И описал результаты разговора и свои предложения в трекере по задаче.
За это, что характерно, получил по ушам. Мне было сказано, что такие решения нельзя принимать до технического задания (sic!). Ну и чуть погодя мне было заявлено, что наши дальнейшие пути расходятся.
В конце, в последний рабочий день, я всё-таки написал в трекере, как я вижу требования заказчика, и что решания принимаются не на основе техзадания, а на основе спецификации требований. Жаль, не догадался написать, что при готовом техзадании уже не принимаются решения, техзадание просто выполняется.
PS Постарался написать максимально общими словами. Чтобы было понятно людям, которые, к моему великому сожалению, ничего не понимают в IT.