Создаем свою информационную систему Всегда одинаково…
Создаем свою информационную систему
Всегда одинаково…
Неожиданно для себя, натолкнулся на странную, и в тоже время
очевидную мысль. Начиная каждый новый проект, я действую одинаково… Т.е.
совершенно одинаково.
Попробую объяснить.
Первое, что случается, как правило, еще до начала проекта,
это объявление темы. Объявление, в данном случае, это либо факт
возникновенияинтереса, либозапрос откакого-то заказчика.Сейчас, я
говорю про новые проекты и направления, хотя, со старыми, направлениями происходит то же самое, ноне так интенсивно. Очень часто объявление
приходит от какого-нибудь коллеги, или дальнего знакомого, в форме «ты знаешь
то-то?», ну например по ICQ,
SKYPE или по почте.
И тут у нас вариантов несколько.
1. Ответить «не знаю», «не занимался», ина этом остановить развитие темы.
2. Двигаться дальше в двух направлениях.Поиск информации, поиск коллег, ктос этим мог сталкиваться. В общем-то,
суммарный опыт может в разы превышать индивидуальный.
Очень часто у вас есть не более 2 часов, на то чтобы решить
рассматривать ли тему вообще.
Предположим, что мы решили не отказываться от темы с первого
же вопроса…
Следующая фаза, на самом деле, одна из самых интересных. Я
бы назвал ее «РАЗВЕДКА».
Идет интенсивный поиск информации потрем направлениям.
Поиск
описаний и технической информации (частов проекте есть оборудование, поэтому поиск технической информации
связан с нахождением и регистрацией на сайтах производителей оборудования,
с целью добраться до технических ресурсов). В любом случае надо отсмотреть
хотя бы десяток статей на заявленную тему в интеренет
ресурсах.
Поиск
аналогов. Иногда,потенциальный
заказчик сам выдает какой-то список аналогов, но это далеко не всегда.
Вообще знакомство с аналогами ( желательно хотя
бы 2-3) оченьбыстро поднимает уровень понимания проблемы. И в
последующем позволяет минимизировать ошибку в оценке денег и сроков.
Поиск
исходников.Я очень часто использую разработки OpenSourceи исходные коды
примеров. Тут есть несколько совершенно незаменимых ресурсов, например SourceForge, CodeProjectи т.п. В этой фазе задача
посмотреть, есть ли стартовая площадка, от которой можно оттолкнуться. Понятно,
чтона N- ыйгод работы в области разработки ПО и своих наработок и подходов, хоть отбавляй, и
конечно надо иметь их ввиду. Но часто какой-то изюминки, или мелочи не
хватает.Я могу с уверенностью
сказать, что на сегодняшний день парк исходных кодов, очень велик. Это не
снимает проблемы работы с чужимикодами и желания все срочно переписать, так характерного для
молодых программистов, но при
необходимости это может дать нам выигрыш в 3-4 недели, а
то и в пару месяцев. Даже если у нас будет просто возможность не наступать
на все грабли подряд, а подсмотреть что-то у других.
Вообще стадия разведки должна бы заканчиваться появлением
самого простого сампла, который говорит, что
технология работает. Часто это невозможно (нет в наличие оборудования). В этом случае, приходится положиться на наличие
документации и исходных кодов примеров. Хотя часто помогает работа с
поставщиками оборудования, которые заинтересованы в его продаже, и ради этого
иногда готовы предоставить возможность «потрогаить»
оборудование на программном уровне.
Думаю не надо говорить, что «РАЗВЕДКА» идет вусловиях жуткого цейтнота, фактически у нас
естьот 24 до 48 часов – это время,
которое заказчик может подождать технического предложения.
Вообще, я думаю, что такому варианту разведки и надо
учить«студентов» прежде всего. Материалов
уже достаточно. Надо уметь искать и отсеивать пустые,
выбирая полезные.
Следующая стадия носит скорее формальный характер это «ПРЕДВАРИТЕЛЬНАЯ ОЦЕНКА». Предварительная
оценка состоит, как правило из 2-3 документов. Как
минимум этопроджект(диаграмма ганта)
с расчетом времени и стоимости. При его составлении хорошо бы владеть
терминологией заказчика. Часто с ним можно подробнее поговорить. Иногда даже
удается встретиться и поговорить, но редко. Чаще могут прислатьдокумент с общими желаниями.
Надо хорошо понимать, чтомы на рынке. Мы не знаем, что готов заказчик потратить. И, на самом деле,
мы не знаем точно чего хочет заказчик. Не надо этого бояться. Считайте исходя
из своего опыта иреальных требований
проектов. Надо понимать, где мы можем экономить за счет технологий, а где мы
можем выходить за рамки из-за новизны задачи.
Поймите главное, если вы получите заказ, едва ливы сильно переоценили стоимость. Рынок есть
рынок, но вот недооценить могли и соответственно есть опасность попасть внекую неудобную ситуацию невыгодной для себя
работы. Если не получили заказ, то
вариантов два. Либо ожидания заказчика слишком завышены, а деньги ограничены (и
значит он едва ли найдет себе исполнителя, и за
заказчиком надо следить не теряя его из виду), либо наши оценки сильно завышеныи нам надо работать надрыночной стоимостью.
В любом случае, старайтесь выдать предварительную оценку как
можно более точной ( лучше слегка завышенной) и
минимальные сроки. Сразу предупреждайте, что оценка предварительная и
необходимо ее лично обсуждать.
Следующая стадия «ТОРГОВЛЯ».Торговля фаза довольно интересная.Часто у меня она сводится к разговору и
ответу начестный вопрос: « Сколько у
вас есть денег на реализацию проекта?» И
дальше вопрос только в том есть ли возможность реализации за заявленные деньги,
или нет. Это хорошо работаетсо знакомыми, с новым заказчиком может быть
немного сложнее.
Если предварительные стадии пройдены удачно, то появляется
шанс приступить к реализации проекта.
Фактически к началу проекта уже должно быть полное понимание
того, как решаются все тонкости и технологические проблемы проекта. В идеале
иметь прототип, который можно показывать при разговоре с первых дней реализации.
Я практикую показ прототипачерез две
недели от начала проекта, но бывают ситуации и с 24 часовым показом. Тут без технологии разработки просто не
обойтись.