Пока ходил на собеседования, с удивлением открыл для себя странный факт: люди склонны путать понятия. Искренне заблуждаясь (надеюсь). Наиболее "хитовый" пример: перепутать резкость и конкретность в конкретном кандидате.
работа
Пост про то, как надо писать ТЗ
Периодически мне приходится в том или ином виде консультировать разные компании по поводу такого замечательного документа, как техническое задание на информационную систему.
И часто встречается ситуация, когда в роли ТЗ выступает все, что угодно... кроме, собственно, ТЗ. Почему так? Да потому, что ТЗ - это задание, на основании которого должна быть подготовлена система автоматизации. Не более - но и не менее. В роли ТЗ в общем случае не могут выступать прототипы экранов, список пожеланий и т.д. - потому что в итоге получится нечто, соответствующее ТЗ - но полностью или частично не соответствующее ожиданиям заказчика. Как избежать такой радостной ситуации?
Во-первых, всегда помнить - система, разрабатываетмая по ТЗ, автоматизирует процесс (напомню, речь идет о ТЗ на информационную систему - от интернет-магазина до ERP). Соответственно, в ТЗ обязан быть прописан процесс, который автоматизируется. Иного просто не дано: не понимая процесса, невозможно описать систему.
Второй аспект: ТЗ должно описывать результат "на выходе". И из этого следует еще один очень важный вывод: в ТЗ должны присутствовать варианты использования системы. То есть, должно быть описано, кто (какая роль) выполняет какой надор действий в системе. Да, и это должно коррелироваться с процессами, которые система автоматизирует.
Следующее, на что надо обратить внимание - это то, что будет автоматизироваться, а что - выполняться вручную. Отсюда должны роддиться требования к интеграции и функциональным модулям информационной системы (если применим).
Дальше имеет смысл расписать требования к формам и дизайну. Требования к формам, в идеале - это выделение критически важной информации длдя процесса, с анализом - когда, кто и в каком объеме поставляет нужную информацию. Требования к дизайну тут получаются вроде бы как не очень логичны... но логичны, потому что важно не только то, что будет нести форма в себе - но и то, как она будет выглядеть. Хотя требования к дизайну можно вообще поставить в конец ТЗ, или сделать ссылку на brandbook - тут вариантов масса.
Следующее, что нужно для разработки ИС - определить этапность. Что делаем и что запускаем в первую очередь, что - во вторую и т.д. Это очень важно - так как позволяет четко очертить пожелания Заказчика к тому, что должно работать в первую очередь, а что должно быть запущено в последнюю очередь. Кстати, если есть сроки - то им место тут же.
Дальше, собсвтенно, если есть понимание на какой базе строим ИС - нужно расписать это. Если ИС создается "с нуля" (бывает и такое) - то указать, на каком яыке она пишется, какие библиотеки требует и т.д.
Дальше, моделируем ситуацию, когда готов прототип. В ТЗ на этот случай надо указать, кто и как тестирует, желательно - порядок работы с замечаниями (по хорошему, это в устав проекта идет, но на край можно и в ТЗ).
Дальше, нужно описать, что надо будет сделать, чтобы ввести систему в эксплуатацию.
Дальше приводятся так называемые "потребительские характеристики системы" (время отклика, число кликов по основным операциям и т.д.). И приводится то, что влияет на эти характеристики - например, конфигурацию серверного оборудования, операционные системы, лицензии и т.д.
Дальше, прописываются требования к тому, что будет включено в понятие "результат". То есть, что и в каком виде будет передано Заказчику - документация, исходные коды, скомпилированные модули и т.д. Исходя из этого, следующий логичный пункт - состав и структура документов, которые будут переданы Заказчику по окончанию процесса разработки / внедрения. Тут имеется в виду как "пользовательские" документи, такие, как ролевые инструкции, инструкции по профилактике, обслуживанию, устранению типовых ошибок и т.д., так и общетехнические документы - описание архитектуры решения, проектная документация.
Финальным аккордом нужно описать процедуру приемки-передачи системы (в целом и по каждоому этапу). А также привести требования к информационной безопасности.
Получилось довольно много? Да, а кто говорил, что будет просто? На данный момент я написал, наверное, более сотни разных ТЗ - и по итогам работы над этими докумнетами пришел к выводу о том, что если писать документ не ради документа, а ради работы - то он по любому получится большим. Не потому что я так хочу, а потому, что по-другому просто не получится. Тут или качество, или расходящийся процесс.
В общем, получился почти на тему "как написать ТЗ" :) И, прошу отметить - никакого ГОСТа. Хотя структура получилась в чем-то похожей на то, что трбует ГОСТ 34 от ТЗ. Но, наверное, его проектировали, исходя из аналогичных (или в чем-то похожих) соображений.
Про самоорганизацию
Ну, очередной пост про "организацию" :) На сей раз - про организацию себя, любимого.
Сразу же скажу, что искренне считаю, что вся жизнь человека состоит в непрерывной борьбе с ленью. Соответственно, задача человека - найти внутри себя мотивирующие факторы с тем, чтобы не лениться. Или лениться как можно меньше. А чтобы лени было меньше, а дела больше - нужно организовать себя внутри. То есть заняться самоорганизацией.
Что есть самоорганизация? Во-первых, внутренняя система приоритетов. Причем, они должны быть четкими, ясными и однозначными для самого себя. Не стоит себе врать, честное слово. Во-вторых, желание получить результат. Тут вроде как без комментариев, кроме того, что этому обычно лень и мешает. В-третьих, понимание пути - хотя бы в небольшой перспективе. Пути себя. То есть - как достичь желаемый результат, в соответствии с приоритетами, прикладывая те или иные усилия.
И для всего этого нужно одно - единственное: подвинуть себя. Дать легкого или не очень пинка. Встать, взять и сделать :)
А это порой бывает непросто - мешает... мешает все. И для того, чтобы получить результат - нужно, как это не банально звучит - его захотеть. То есть проявить интерес к результату. Или интерес к процессу (что лучше - это отдельный вопрос и вечные дебаты). Кстати, бывает, что "торкает" в процессе. И тогда "подхватывается" дело, и идет, идет, идет...
Как успеть много? Да, наверное, поменьше лениться - и побольше делать. Хотя, с другой стороны, поспешность - не лучший советчик. Скорее, даже - из худших советчиков. И борьба с ней - тоже один из элементов самоорганизации. Потому что - мир сейчас устроен так, что все хотят быстрого результата. Иногда, конечно, получается - но как-то далеко не всегда. Поспешность - великая разрушительная сила.
В общем, к чему я это? Да к тому, что самоорганизация начинается там, где заканчивается или хотя бы отступает лень. Причем, лучше, чтобы она это делала добровольно.
Как-то так.
Про самореализацию
Как меня порой "прет" от таких вот тем :)
Что такое самореализация, никто не задумывался? Конечно же, скажут психологи - это, по Маслоу,- реализация своих талантов и возможностей. Правда, никто не скажет, что именно надо делать для реализации этой реализации (простите за тавтологию). Скажут - "хочешь заниматься танцами? - танцуй!". Ну, хорошо, когда человек понимает, чего он хочет. А когда нет? Значит, надо захотеть. А если никак? А значит, надо придумать чего хотеть - и захотеть. Ну и так далее.
Особенно мне нравится про самореализацию на работе :) Бывает, конечно, что то, что человек делает на работе, совпадает с его представлениями о том, чего он хочет и может. Но часто ли так бывает? Чаще работа говорит человеку: надо делать вот это и вот это. Талант - это хорошо, но надо-то здесь и сейчас. Делай.
Справедливости ради скажу, что так бывает далеко не всегда. Мне везло работать в компаниях, где людей старались определять к работе согласно тому, к чему они больше склонны. Довелось поработать и в компаниях, которые полностью игнорировали склонности человека: "руки-ноги на месте? голова есть? работай!".
Что получалось в итоге? Да ничего хорошего. Работали, конечно. Но без огонька, без задоринки. Делали свое дело ровно настолько, чтобы претензий не было. Такая "средняя" позиция.
Так вот, возвращаясь к самореализации. Работая в разных компаниях, и занимаясь разными проектами я пришел к удивительному открытию: самореализация (или ее подобие) начинается с интереса. Попробуй искренне заинтересоваться своей работой, разобраться в том, что происходит, и реализация, которая "само" - будет чуть ли ни автоматом. А интересное... интересное можно найти даже в самой скучной работе, наверное. Хотя, конечно же, считается традиционно, что для реализации себя нужна работа творческая.
А, простите меня великодушно, что есть творчество? Почему-то сразу представляется такой художник, гениальными движениями накидывающий будущую картину... Но увы, большинство работ такой возможности не дает. Зато дает возможность привнести что-то новое в то, что ты делаешь (даже если это рутинная работа), взглянуть на свою работу под другим углом, и в конце концов просто радоваться и получать определенный кайф от хорошо сделанного.
Получается, что залог самореализации - умение радоваться. Причем, внутри себя. А при таком раскладе получается, что действительно в общем случае не важно, чем занимается человек - если его действия приносят ему радость, то он гармоничен и цел. И, при таком раскладе самореализация - это всего-навсего ощущение внутренней радости. Не более - но и не менее. Так?
PS Это был очередной неструктурированный поток сознания.
Бесплатные аналоги MS Visio
В общем, смотрели на работе на разные системы, которые позволяют рисовать диаграммы и процессы. Что нашлось:
- Dia (http://dia-installer.de/) - opensource десктопное приложение под Linux и Windows. Часть Gnome office.
- Cacoo (http://cacoo.com/) - онлайн редактор диаграмм, на мой взгляд - тяжелый
- draw.io (http://www.draw.io/) - онлайн редактор диаграмм. Быстрый, легкий. Умеет писать диаграммы на Google Drive.
Да, все они с горем пополам умеют экспортировать в SVG - который, в свою очередь может быть конвертнут в VSD. Но, скажем честно, экспорт в SVG - не самая сильная сторона этих редакторов. А вот картинки они хорошо сохраняют.
По мере поступления новой информации список будет дополняться.
Как я не попал на "Второй план Б" и что из этого вышло
Нет, я не тормоз:) И лучшее тому доказательство - что я все-таки сел писать этот пост. Несмотря на то, что времени прошло почти 3 месяца. Но - обо всем по порядку.
23 февраля 2013 года славная компания Яндекс проводила мероприятие под названием "Второй план Б". Я туда подал заявку на спикерство, но - пройдя несколько итераций был забракован, как "не формат". Впрочем, что не делается - к лучшему: 23его я оказался категорически занят. А так на меня и не рассчитывали. В общем, все бы было неплохо, если бы не одно маленькое "но": я готовился, и готовился очень серьезно. Презентация, которая получилась на выходе, мне лично казалась довольно удачной ... в итоге, подумав, решил, что презентация стоит того, чтобы выложить ее тут. В конце концов, она делалась, чтобы стать достоянием общественности. Так почему нет?
В общем, вот: Второй план Б - презентация
Ну и пользуясь случаем, сформулирую несколько очень важных моментов, так или иначе следующих красной нитью через презентацию:
- Управление проектами - это то, чем занимаются руководители проектов, а не то, что воплощают в себе методологии и программное обеспечение. (Цитата отсюда)
- Проект - это то, что должно быть реализовано целиком. Но если сначала реализовать самое важное, то будет немного проще.
- Не все задачи в проекте самоочевидны;
- План всегда будет скорректирован;
- Эффективный руководитель проектов - тот, который в срок запустил проект, не выйдя за границы бюджета;
Про удаленную работу, ИТ и обобщая опыт...
Итак, опять про работу :) Так получилось, что по долгу службы несколько раз мне пришлось налаживать взаимодействие между территориально распределенными офисами, а еще один раз - выступать в роли заказчика удаленной работы (то есть работать с фрилансерами и удаленными подрядчиками).
Основной вывод - эффективная удаленная работа возможна! Условие/дополнение: возможна, при наличии адекватных людей как со стороны Заказчика, так и со стороны Исполнителя.
Поясню. С моей точки зрения, при организации удаленной работы как в случае распределенных офисов, так и в случае работы с фрилансерами есть одно общее правило: работа строится по принципу сервисной модели. По сути, это означает, что одна сторона предоставляет другой сервис (разработки ПО; создания документации; анализа и т.д.). В роли SLA в этом случае выступает договор, в котором зафиксированы обязательства каждой из сторон. Конечно, если это не взаимодействие офисов - тогда роль SLA играет либо устно сформулированные, либо зафиксированные на бумаге правила: такие-то запросы отрабатываются тогда-то, такие-то - тогда-то и так далее...
Тут надо вспомнить, что в самом безупречном договоре бывают "дыры". Без этого никуда - невозможно в юридическом документе предусмотреть все возможные варианты.... после чего вспомнить про требование "адекватности". Оно в общем имеет два аспекта:
- "Нормальный режим", когда сервис предоставляется в штатном режиме, то есть подпадает под "SLA" (скобки - потому что SLA может быть совсем не SLA - я писал об этом выше);
- "Нештатный режим", когда сервис предоставляется "за рамками SLA" - то есть не когда SLA нарушается, а именно, когда требуется что-то, что в "SLA" не входит;
В каждом из этих аспектов "адекватность" людей, обеспечивающих сервис, получается ключевым фактором. В первом случае - потому, что даже в штатном режиме предоставление сервиса можно превратить в ад для Заказчика; во втором - потому-что нестандарные ситуации требуют инициативы и ответственности. Точнее, умения принимать на себя ответственность. Когда это сходится, получается - адекват. Когда нет - не обязательно надекват, но проблемы гарантированы.
Если же чуть отойти от "людей", то вторым важным фактом является обеспечение коммуникации. Это и "голос" (достаточно, кстати, Skype или корпоративного SIP) и общее защищенное хранилище файлов, и система документооборота (не обязательно все сразу, и в зависимости от задач - могут быть варианты), и - самое главное - желание их использовать. Опять упираемся в "адекватность".
Получается - "кадры решают все", и в этом был прав Лучший Друг Советских Физкультурников?