Спасибо за письма, которые пришли и приходят от
читателей рассылки. Большое спасибо за дельные советы, рекомендации и
добрые
пожелания.
Мне не всегда удается сразу ответить на приходящие
письма, поэтому если ответ задерживается, вышлите, пожалуйста, повторное
письмо.
Некоторые из писем и переписку с читателями, я хотел
бы
опубликовать в выпусках рассылки. Поэтому, пожалуйста, указывайте в
письмах
можно ли направлять Ваше письмо в рассылку.
Константин Берлинский прислал свою книгу, в которой
ему
удалось собрать и упорядочить материал из десятка других источников о
разработке ПО. Очень рекомендую.
Я попросил Константина сделать небольшую презентацию
своей книги и самого себя:
Опубликована электронная версия книги
"НАБОР СЕРЕБРЯНЫХ ПУЛЬ. Справочник удачных проектных решений при
разработке ПО".
Книга расположена по адресу:
http://www.vbstreets.ru/Projects/NSP_Book/default.aspx
Обсуждение на форуме:
http://bbs.vbstreets.ru/viewtopic.php?t=8337
Аннотация:
Войны ИТ-методологов не затихают.
Каждые
несколько лет нам преподносится совершенно новая,
быстрая,
легкая, простая, эффективная методика
(или новая версия "старой"). И уж она наконец-то решит
главную
проблему - построение качественного ПО
в
срок.
Я думаю, что правда о методологиях
заключается в том, что их не существует-
Есть лишь УПР - удачные проектные
решения, - которые могут сработать (или нет) в конкретной
ситуации
и проекте. Цель этого справочника -
собрать их вместе, дать им краткое описание, и
подвигнуть
ИТ-сообщество к дальнейшему их поиску
и
классификации-
Об себе:
Константин Берлинский, разработчик ПО
ИТ-отдела компании Maximum, Республика Молдова.
Возраст - 24г./опыт коммерческой
разработки ПО - 3г./5 реализованных проектов
(автоматизация
документооборота, бухгалтерии,
торговых и
складских операций).
Профессиональные интересы: разработка
КИС, ООП, паттерны, .Net, C#, MS SQL, Remoting, CASE (продукты
Rational)
Оч
ень
рекомендую прочитать эту книгу. Кстати в конце книги приводится список на
полезные ресурсы инета. Скажу сразу, что, только начав читать книгу
Константина, у меня тут же появилось желание поделиться с автором парочкой
полезных ссылок на этот счет.
И
что самой забавное, оказалось, что все эти и многие другие ссылки уже были
приведены в конце книги. Супер!
Те
перь
можно вернуться к процессу разработки проектов.
В
предыдущих статьях я подробно описал, что за документы я веду для своей
команды и их содержание.
Но
сами по себе эти документы бесполезны, если они не включены в процесс
разработки проекта. Спецификации в сторону и с головой в
девелопмент.
Ещ
е
раз повторюсь. Здесь я говорю о разработке средних и крупных проектов, где
задействовано от 5-10 человек в девелопменте и срок пол года и больше.
Ме
лкие
проекты довольно просто умещаются в голове одного разработчика, где он же
менеджер, программист и тестировщик в одном лице.
Ещ
е
раз. Для команды процесс выпуска программного продукта выглядит немного
по-другому, чем для свободногохудожника - разработчика.
Да
,
надо сделать еще одну оговорку. Мы в основном занимаемся разработкой не
коробочной продукции. Наши проекты переживают новые версии каждые 2-3
недели.
Если бы я был строже, то этот период был бы не чаще чем 1 раз в
месяц.
Но
клиенты, есть клиенты, есть рынок и есть конкуренция. И надо быть быстрее
и
лучше что бы работать с крупными клиентами.
Вс
е
верно скорость и качество не всегда проходят безболезненно. Но что делать.
Сложности лишь помогают выявить слабые звенья в команде и повысить ее
профессионализм.
В
начале своей профессиональной деятельности меня пугали и приводили в
оцепенение требования клиентов и настойчивые <просьбы> менеджера продукта
решить задачу прямо сейчас и что бы все было гладко.
Эт
о
еще только вступление такое. Дальше будет веселее, так как задачи мы все
таки
решализа то время,которое нам ставили. И знаете что? Мы
находили решения, от которых потом приходили в
восторг.
Та
к
что сжатые сроки и высокие требования лишь помогают генерировать
гениальные
идеи, если конечно разработчики остаются, <живы> после таких
авралов.
Да
и что самое главное, все это способствует развитию проекта и команды,
конечно
же.
Те
перь
ближе к самому процессу.
Да
еще немного отступления. Я получил отзыв на один из выпусков. Один из
читателей спросил, зачем снова изобретать трехколесный велосипед.При переписке с ним мы в итоге сошлись
на
мнении, что если используемый мной подход работает, то и хорошо.
В
качестве аргумента мне было предложено использовать мировые стандарты. И в
качестве такого стандарта был предложен UML в обрезанном виде.
Чи
татель
рассылки писал, что с клиентами они рисуют схемы, связи и обсуждают их. И
что
клиенты довольны и все понимают.
Я
в
начале не могпонять почему это не
будет работать у меня. Так вот это не будет работать для меня по одной
простой причине.
На
ш
клиент - это несколько компаний в лице 20 менеджеров, которые оцениваю
функционал и вид.
И
блоков со стрелками им просто не достаточно что бы понять, что же в итоге
будет разработано.
Эт
и
блоки, взаимосвязи и тому подобное, я использую в спецификации в том или
ином
виде для того, что бы показать проект целиком. А потом детализирую каждый
из
блоков.
По
дход
читателя справедлив только при первом или втором обсуждении концепции
проекта, но не больше. Но потом клиент хочет видеть
картинки.
А
блоки и стрелки, это не картинки. И сколь большим воображениемне обладай, все равно не представишь,
как
на форме будут расположены элементы управления.
Та
к
вот моя функциональная спецификация включает в себя диаграммы, но только
как
вспомогательные элементы, для видения картины целиком.
А
дальше? А дальше детали, детали и еще раз детали.
Пр
очитав
подход Microsoft по
разработке ПО я был восхищен. Стадии, этапы, контроль рисков, выпуск
версий и
т.д.
В
учебникепо Micros
oft экзаменам все выглядело просто супер и мне не
терпелось внедрить это у себя. Особенно мне понравились пончики, которые
приносили особо дружелюбные сотрудники на совещания.
По
сле
имплементации всего этого процесса у себя пришлось лишиться пончиков, но
зато
вот что получилось.
В
начале процесса разработки мы собираем требования. Здесь все стандартно.
Чем
больше информации тем лучше. Главное суметь ее обработать всю и не забыть
то,
что получили от клиентов. Ведь информация поступает как: через почту,
через
систему ведения проектов, через личное общение, через документацию, через
msn и yahoo ну и
еще
есть пару способов, о которых лучше не вспоминать.
Сл
едующий
шаг это первая версия спецификации с копиями пользовательских экранов. А
потом еще и еще версия.
В
одном из проектов количество ревизий доходило до 100 итераций. И это была
отлаженная работа от менеджера продукта до
дизайнера.
Че
м
больше уточнялась версия, тем больше приходилось уделять времени внешнему
виду. Для веб-проектов готовили сразу PSD и вставляли их в спецификацию в обработанном виде.
За
тем
отдавали PSDшники
HTML
span> кодеру и готовили презентационные HTML
span> версии.
Сп
ецифика
была такова, что работали удаленно. Т.е. надо было решать вопрос о едином
хранилище данных. Ну что же пришлось воспользоваться глобальной кладовой
знаний и опыта - интернетом.
По
исковики
выдали тысячи ссылок. В форумы были отправлены десятки сообщений.
Од
ним
из требований было: решение должно быть дешевым или еще хуже бесплатным. И
что вы думаете, - мы его нашли.
Во
лшебные
три буквы нас выручили.Ничего
вульгарного. CVS -
система
контроля версий файлов. Она была известной, широко поддерживаемой и
бесплатной.
С
налету разобраться не удалось. Опять в инет и ищу специалиста, что бы
автоматизировать работу. И нашелся один такой <товарищ>, который не
поленился
позвонить и сказать, что надо с системой самостоятельно разбираться.
Я
был немого в шоке, но потом благодарности этому парню не было предела. Как
оказалось надо знать тонкости, что бы успешно применять CVS.
Ве
сь
проект положили в CVS, и
осталось замкнуть процесс отсылкой уведомлений и настройкой
прав.
Ув
едомления
пришлось отправлять через Outlook и
через Linux<
/span>. CVS мы
поставили на Windows и
поэтому
никто не хотел замарачиваться с настройкой рассылок под эту
операционку.
В
итоге со спецификациями процесс получился такой. Спецификация обновляется
и
прямо в документе указывается дата внесения изменения, и что было
изменено.
Затем онавыкладывается в
CVS и народ получает уведомления определенного образца.
В
уведомлении указывается имя спецификации, дата обновления, версия и список
изменений. Мда. Все, в общем-то, просто.
Ид
ем
дальше. Дальше уже начинается разработка самого проекта и БД.