Понимание жизненных циклов разработки любого приложения совершенно необходимо любому специалисту, представителю бизнеса, просто заказчику. Данное понимание играет существенную роль при мониторинге процесса разработки, определяет специалистов, которые будет привлечены для участия в проекте, позволяет упростить всю картину разработки в целом. Среди наиболее важных этапов можно, пожалуй, выделить следующие:
Проработка общей бизнес-логики приложения. На данном этапе аккумулируется вся информация, все требования, которые будут предъявлены к данному приложению. На этом этапе используются специализированные программы для составления блок-схем, которые будут показывать принципы бизнес-логики приложения, дальше может быть составлен как концепт дизайна, некий blueprint, в случае, если сразу определить и создать дизайн не возможно или он требует глубокой проработки и согласования с большим количеством лиц.

На следующем подэтапе будет создан графический дизайн в формате растровой графики, на котором можно будет сразу увидеть как будущее приложение будет выглядеть в финальном виде. Дизайн любого приложения является одним из ключевых факторов удобства его использования, репрезентует бренд его владельца, воплощает наработки маркетинга, а часто и последних технологий в области создания интерфейсов.
Всесторонне проработанный дизайн способен хорошо отобразить принцип работы значительной части бизнес-логики, однако, конечно, нужно признать, что полную картину, по одному только дизайну, составить невозможно. Возьмем к примеру такое простое приложение, как обычный калькулятор в вашей операционной системе. Совершенно очевидно, что оно состоит из визуального интерфейса, который состоит из нескольких кнопок, поля отображения вводимых данных и, возможно, еще нескольких специальных элементов. Таким образом, можно с легкостью догадаться о предназначение данного приложения, бросив лишь один взгляд на его внешний вид.
Также, примерно, определяются технологии и продукты, которые будут применены в процессе создания приложения. Этими продуктами могут быть: основной язык программирования или основная платформа, реляционные и не реляционные базы данных, которые будут являться ключевым компонентом приложения для хранения всей информации и контента, системы резервного копирования, кэширования, очереди, системы сбора метрик, системы распределенной аутентификации, авторизации и многое другое. Данный перечень будет, конечно, в первую очередь характеризован теми задачами и функциями, которые будут возложены на плечи конечного продукта. При этом некоторые технологии, могут быть добавлены по ходу разработки, а также в процессе интеграционного тестирования приложения и его дальнейшей промышленной эксплуатации.
Не лишнем будет отметить и важность выбора методологии, которая будет использована при разработке. Это может быть как разработка с фиксированными сроками и оплатой, однако для приложений с нестандартной логикой, отличной от типовых интернет-магазинов, корпоративных порталов или сайтов-визиток такой подход показал свою не эффективность. Поэтому, в таком случае, ряд гибких Agile методологий будет намного более уместным. О данном подходе мы поговорим более подробно в одной из наших будущих статей.
После того, как был сформирован дизайн, были определенны основные технологии и методология, тогда и начинается переход к стадии собственно разработки. Современная разработка может также осуществляться посредством множества методологий, но наиболее прогрессивной из них, в большинстве случаев, оказывается Test Driven Development (TDD), то есть такой подход к разработке, когда написание кода происходит неразрывно с написанием модульных тестов (Unit tests). Такой подход практически гарантирует прочный фундамент, на котором может быть построен весь дальнейший процесс написания кода и тестирования — интеграционного, ручного, тестирования интерфейсов.

После завершения написания первой предпродуктовой версии должно производится общее комплексное тестирование, как тестировщиками ручного тестирования, так и теми пользователями, которые будут в дальнейшем использовать этот продукт.
Наконец, после всех этих стадий наступает период промышленной эксплуатации и параллельно запускается процесс потенциального внедрения нового функционала и новых возможностей, происходит поддержка уже запущенного в промышленную эксплуатацию «боевой» версии нашего приложения.
С течением времени, зачастую, к приложению могут быть предъявлены новые требования, которые могут быть несовместимы с бизнес-логикой, уже заложенной в приложение, а также программная платформа или же иные продукты-сателлиты могут попросту морально устареть или иметь новых, более привлекательных «конкурентов». Все это ведет к необходимости проведения процедуры рефакторинга, о котором мы уже ранее писали в нашем блоге.
Отдельно необходимо подчеркнуть, то что на каждом из вышеописанных этапов, начиная с написания первых строк кода, а иногда даже раньше, к разработке подключаются специалисты программно-аппаратных окружений — DevOPS специалисты, системные администраторы. Их важность сложно переоценить. Без их работы наше приложение не будет иметь свой «дом» в сети, не сможет обновляться, иметь тестовые и продуктовые стенды, резервные копии, высокую производительность и быстродействие.
Большинство современных приложений, будь то корпоративные приложения, интернет-магазины, приложения букмейкерских организаций, приложения рынка ценных бумаг невероятно сложны, особенно для взгляда человека, который не вовлечен в IT-индустрию. Понимание жизненного цикла разработки программного обеспечения четко структурирует весь процесс, помогает эффективно достигать цели разработки, а также удовлетворять пожелания даже самых требовательных заказчиков.
Специалисты Creative Lab имеют большой опыт разработки систем любой сложности. Больше информации о нас можно получить на главной странице.