Немного предыстории
Хочу рассказать уважаемому сообществу о своем первом проекте, на который я потратил это лето, и о выводах по его следам. Не то чтобы я раньше никогда не вел никаких проектов, но делались они по остаточному принципу, а сроки были очень свободные. Например, проект по переходу на Универсальный транспортный адаптер для обмена файлами с ЦБ РФ я не спеша пилил больше года (в итоге, все заработало вовремя и работает хорошо).
Надо заметить, что я не указываю названия и некоторые подробности, потому как иначе затрону информацию, относящуюся к ДСП.
Но в этом году я сменил работу с саппорта на управление проектами и понеслась. На новом месте работа над всяческими внедрениями и улучшениями идет прямо-таки в конвейерном режиме, в очень сжатые сроки. Не прошло и недели, как мне вручили1 частично проработанный проект внедрения софта, предназначенного для эммм… собирания и структурирования информации из разных источников по разным объектам – физ и юр лицам. Вручили мне его с посылом «эта штука может все, внедряй, дело верное». Разработчики тоже сказали «мы можем все!» и в подтверждение уверенно ударили себя пяткой в грудь. Я очаровался и начал работать. 2
Этапы проекта
Предварительно проект был успешно сосватан в одно подразделение, но цена оказалась неподъемной и пирог решили делить на всех. Надо было набрать заказчиков из разных подразделений. Тут я столкнулся с ранее незнакомой саппорту деятельностью под названием «холодные звонки». Люди, до настоящего момента, ничего не слышали обо мне, о предлагаемом проекте, вообще заняты и нет времени. Почти никто не хотел участвовать в тестировании.3 Я врубил фантазию и под девизом «эта штука может все» написал презентацию о теоретических возможностях для самых разных задач. Мой начальник врубил административный ресурс, дело задвигалось, добровольцев начали назначать. Так прошло две недели.
После того, как люди в добровольно-принудительном порядке заинтересовались проектом, нужно было убедить их в его полезности. Для этого придумали со всех собрать задачи, которые они могли бы решить с помощью разрекламированной мною системы, выслать разработчикам чтобы они подготовились и показали. Так прошла еще примерно неделя (а может и две), по результатам которой появился список из примерно двадцати задач. Я отправил список разработчикам, они виртуально покивали головой – «да, можем, сделаем». Начальник надоумил меня предварительно посмотреть что у них получается 4
Тут меня ждал первый облом и первый звоночек. Да что там звоночек – целый набат и корабельная сирена. Несмотря на заверения, что-то примерно похожее на решение было продемонстрировано на 2х из 20 задач. По остальным не было ничего, кроме слов «вы нам скажите как и мы вам доработаем». Я был уже готов ругаться с разработчиками и заворачивать проект, но тут опять вмешались высшие силы и сказали: «показывай как есть, надо внедрять, оценивай стоимость доработок». Ок, не посылать же новое начальство на половине испытательного срока. 5
Пошли показы для потенциальных пользователей. Результаты были от легкого недоумения, до полного разочарования, а один из участников тестирования до сих пор не отвечает на мои звонки и письма (нет, он не уволился и не в отпуске). Что поразило воображение – так это стоимость доработок, которая в 4 (четыре) раза превысила стоимость самого софта (тоже очень немаленькую).
Итоги проекта
Закончились показы, пошли переговоры и выяснение «почему так». Где-то удалось отвоевать несколько процентов скидки, но в целом разработчики стояли насмерть, высоко ценя свой продукт. В процессе удалось-таки выяснить архитектуру системы (что надо было сделать, конечно же, гораздо раньше). По факту оказалось, что для получения информации в более-менее читаемом виде систему нужно вручную программировать под каждый источник, а использовать выдачу поисковиков, например, невозможно в силу архитектурных особенностей системы. Притом, программировать придется силами разработчиков (и платить им снова), потому как, несмотря на наличие SDK, понять что-либо сходу в системе решительно невозможно, а работоспособность с собственноручными доработками не гарантируется и в техподдержку не входит.
Тщательно зафиксировав результаты и выводы, я написал заключение по проекту. Прочитав все это, директор по ИТ выполнил quad facepalm и проект был закрыт.
______
1 Не то чтобы неправильно сразу давать большой проект, я сам сторонник принципа «винтовку добудешь в бою», который отлично работал в саппорте при обучении новых сотрудников. Но в проектах я бы дал «для разгона» что попроще и менее эпическое.
2 На самом деле, начать стоило с того, чтобы углубиться в саму систему и ее функционирование, а не в презентационные материалы и мнения из вторых рук.
3 Тут ошибка, пожалуй, в том, что сначала «придумали крутую идею», потом стали искать кому она нужна.
4 И был прав, я теперь всегда так делаю. Помогает избежать внезапных разочарований.
5 «Пилить дальше, вместо того, чтобы разбираться в причинах» Вот тут точно была ошибка начальства, которая привела к еще полутора месяцам работы впустую.
_____
Выводы
Проект изначально пошел как-то криво — не от потребностей пользователей, а от идей проектного отдела. Не от архитектуры системы, а от рассказов и идей о ней. Да и начат он был не мной, что тоже наложило свой отпечаток. Итого:
- Не верь презентационным материалам, смотри сам как все работает, на живой системе.
- Не позволяй другим вмешиваться в твой проект. Заказчики/начальство могут предъявлять требования к результатам и срокам, но как ты получаешь результаты — не их дело.
- Не затягивай процесс — пинай, ускоряй всех, до кого дотянешься. До кого не дотянешься — ищи рычаги влияния и тоже пинай. Лучше иметь запас сверх плана, чем идти строго по плану и оказаться в непредвиденной ситуации без резервов по времени и т.д..
- Не очаровывайся идеей, смотри как она реализуется.
- Не выдумывай за людей их потребности — спрашивай.
Хотелось бы услышать мнение уважаемого сообщества — ничего ли я не забыл, все ли выводы сделал? Это мой первый пост на Хабре, так что прошу особо не пинать, если что не так :)
Автор: Ns2033