В своей практике я имел дело с несколькими командами программистов. К сожалению во многих из них не было поставленного процесса разработки ПО. Для создания небольших приложений этого и не требуется, А если есть желание выходить на действительно достойный результат, то без этого уже не обойтись!. Мне не довелось поработать в уже сформированной и налаженной команде, где все процессы поставлены. Поэтому приходя в новую команду первым делом приступал к созданию этого самого процесса.
В этой серии записей я буду рассказывать о том, как в новой команде я выстраиваю процессы разработки программного обеспечения. Надо сказать это не столь очевидно и требует определенного терпения и творчества.
Итак, первоначально надо осмотреться — что мы имеем:
1) Есть руководство, которому не столь интересно как происходит процесс разработки ПО (для этого они наняли меня), но которому важен результат, важно качество удовлетворяющее клиентов, важно минимальные затраты ресурсов, и важно прогнозируемость сроков разработки.
2) Есть команда программистов, точнее командой её пока называть рано – есть коллектив программистов. Из которых каждый безусловно профессионал и умеет грамотно писать код, однако процессы взаимодействия между друг другом не всегда так очевидны
3) И с третьей стороны есть бухгалтерия, дизайнеры, верстальщики и еще много сотрудников, которые так же вовлечены в процесс производства и сбыта продукта.
Стандартная предыстория: Был каким-то образом разработан программный продукт, он был успешен и руководство приняло решение о масштабировании проекта. В связи с чем команда расширилась и пользоваться старыми инструментами уже невозможно, да и не эффективно. Требуется построить процесс разработки ПО. Вместе с тем идут ежедневные текущие Важный, Срочные, АВАРИйные и так далее задачи, которые в любом случае надо выполнять. Что же делать?
Первое что приходит в голову — почитать книги. Как ни странно но книг по «Как создать процесс разработки ПО» из ничего я так и не нашел. Во всех популярных книгах пишут про уже существующий и какой-то идеализированный процесс разработки. И при первой попытке предложить работать по новому своим коллегам разумеется получаем в ответ «Да, там конечно все красиво, но у нас немного другая ситуация,» и далее могут быть несколько разных причин у нас проекты длинные и нуждаются в поддержке, у нас проекты не чисто программные, нас слишком мало чтобы этим заниматься ну и так далее…
И вот накопив некоторый опыт подобных заявлений, а так же некоторый опыт перестройки процесса разработки программного обеспечения я решил создавая в новой команде процесс разработки ПО параллельно заносить это пошаговое руководство в блог. Ни кому ничего не навязываю, просто буду выкладывать собственный опыт и буду рад услышать Ваши комментарии
Поехали!