0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><ul><li><a>Итеративный подход</a><ul><li><a>Преимущества</a></li>
1
<ul><ul><li><a>Итеративный подход</a><ul><li><a>Преимущества</a></li>
2
<li><a>Недостатки</a></li>
2
<li><a>Недостатки</a></li>
3
</ul></li>
3
</ul></li>
4
<li><a>Спиральная модель</a><ul><li><a>Преимущества</a></li>
4
<li><a>Спиральная модель</a><ul><li><a>Преимущества</a></li>
5
<li><a>Недостатки</a></li>
5
<li><a>Недостатки</a></li>
6
</ul></li>
6
</ul></li>
7
</ul><li><a>Об Agile</a><ul><li><a>Scrum</a></li>
7
</ul><li><a>Об Agile</a><ul><li><a>Scrum</a></li>
8
<li><a>Kanban</a></li>
8
<li><a>Kanban</a></li>
9
</ul></li>
9
</ul></li>
10
</ul><p>Продолжаем разговор о методологиях разработки ПО. Начало<a>здесь</a>.</p>
10
</ul><p>Продолжаем разговор о методологиях разработки ПО. Начало<a>здесь</a>.</p>
11
<h3>Итеративный подход</h3>
11
<h3>Итеративный подход</h3>
12
<p>Это - самый подходящий вариант для тех, у кого есть общее представление об идее. Клиент не обязан понимать, какой конкретно контент он хочет получить на выходе. И предоставлять подробное техническое задание тоже нет никакой необходимости.</p>
12
<p>Это - самый подходящий вариант для тех, у кого есть общее представление об идее. Клиент не обязан понимать, какой конкретно контент он хочет получить на выходе. И предоставлять подробное техническое задание тоже нет никакой необходимости.</p>
13
<p>Иллюстрация демонстрирует, как наглядно будет выглядеть реализация подхода к разработке. А чтобы осознать ее лучше, стоит рассмотреть пример создания мессенджера:</p>
13
<p>Иллюстрация демонстрирует, как наглядно будет выглядеть реализация подхода к разработке. А чтобы осознать ее лучше, стоит рассмотреть пример создания мессенджера:</p>
14
<ol><li>Клиент поставил перед собой цель - запустить новый мессенджер. Разработчики составили приложение, в котором есть возможность добавления друзей и запуска чата на двоих.</li>
14
<ol><li>Клиент поставил перед собой цель - запустить новый мессенджер. Разработчики составили приложение, в котором есть возможность добавления друзей и запуска чата на двоих.</li>
15
<li>Проект выложили в магазин приложений для предоставления доступа клиентам. Целевая аудитория начала скачивать и активно пользоваться предложением.</li>
15
<li>Проект выложили в магазин приложений для предоставления доступа клиентам. Целевая аудитория начала скачивать и активно пользоваться предложением.</li>
16
<li>Заказчик понял, что программа пользуется спросом. Он решил ее доработать.</li>
16
<li>Заказчик понял, что программа пользуется спросом. Он решил ее доработать.</li>
17
<li>Разработчики добавили дополнительный функционал: просмотр видео, загрузку изображений, аудиосообщения. Они постепенно улучшают мессенджер и адаптируют его к требованиям и инновациям рынка.</li>
17
<li>Разработчики добавили дополнительный функционал: просмотр видео, загрузку изображений, аудиосообщения. Они постепенно улучшают мессенджер и адаптируют его к требованиям и инновациям рынка.</li>
18
</ol><p>Это - концепция для проектов, которые отличаются своим масштабом, а конкретных условий в ТЗ у них нет. Также сгодится при инновационных решениях. Тогда, когда заказчик сам не уверен в конечных результатах.</p>
18
</ol><p>Это - концепция для проектов, которые отличаются своим масштабом, а конкретных условий в ТЗ у них нет. Также сгодится при инновационных решениях. Тогда, когда заказчик сам не уверен в конечных результатах.</p>
19
<h4>Преимущества</h4>
19
<h4>Преимущества</h4>
20
<p>Среди условий, которые относятся к сильным сторонам модели, можно отнести:</p>
20
<p>Среди условий, которые относятся к сильным сторонам модели, можно отнести:</p>
21
<ul><li>скорость запуска проекта;</li>
21
<ul><li>скорость запуска проекта;</li>
22
<li>возможность проведения проверки на качество и популярность ("выстрелит" он или нет);</li>
22
<li>возможность проведения проверки на качество и популярность ("выстрелит" он или нет);</li>
23
<li>постоянное тестирование пользователями, за счет которого удается оперативно обнаруживать и исправлять ошибки.</li>
23
<li>постоянное тестирование пользователями, за счет которого удается оперативно обнаруживать и исправлять ошибки.</li>
24
</ul><p>Если велик шанс провала проекта, можно оперативно получить фидбэк, а затем доработать ПО перед окончательным релизом.</p>
24
</ul><p>Если велик шанс провала проекта, можно оперативно получить фидбэк, а затем доработать ПО перед окончательным релизом.</p>
25
<h4>Недостатки</h4>
25
<h4>Недостатки</h4>
26
<p>Среди минусов такого приема выделяют следующие моменты:</p>
26
<p>Среди минусов такого приема выделяют следующие моменты:</p>
27
<ul><li>экстремальная нагрузка при использовании во время коддинга на сервера;</li>
27
<ul><li>экстремальная нагрузка при использовании во время коддинга на сервера;</li>
28
<li>применение на первых порах баз данных, требующих немалого времени на обработку;</li>
28
<li>применение на первых порах баз данных, требующих немалого времени на обработку;</li>
29
<li>отсутствие строго определенных сроков реализации;</li>
29
<li>отсутствие строго определенных сроков реализации;</li>
30
<li>нет фиксированного бюджета.</li>
30
<li>нет фиксированного бюджета.</li>
31
</ul><p>Частая проблема, с которой сталкиваются разрабы - это отсутствие достаточного понимания относительно того, что именно хочет заказчик. Клиентам трудно, практически невозможно, рассчитать бюджет на проект. Зато данный прием позволит посмотреть, насколько успешно предложенное публике ПО.</p>
31
</ul><p>Частая проблема, с которой сталкиваются разрабы - это отсутствие достаточного понимания относительно того, что именно хочет заказчик. Клиентам трудно, практически невозможно, рассчитать бюджет на проект. Зато данный прием позволит посмотреть, насколько успешно предложенное публике ПО.</p>
32
<h3>Спиральная модель</h3>
32
<h3>Спиральная модель</h3>
33
<p>Начало ее положено в 1988 году. Во время реализации разработчики и заказчик проводят доскональный и серьезный анализ рисков ПО. Далее - осуществляют итерации. Следующая стадия базируется на предыдущей, а в конце каждого "витка" (итерационного цикла) будет приниматься решение относительно продолжения выпуска софта.</p>
33
<p>Начало ее положено в 1988 году. Во время реализации разработчики и заказчик проводят доскональный и серьезный анализ рисков ПО. Далее - осуществляют итерации. Следующая стадия базируется на предыдущей, а в конце каждого "витка" (итерационного цикла) будет приниматься решение относительно продолжения выпуска софта.</p>
34
<p>Выше - схема, которая объяснит принцип создания ПО "спиральным" подход. А чтобы лучше понять ее, стоит рассмотреть наглядный пример. В качестве него будет выступать система "Умный дом":</p>
34
<p>Выше - схема, которая объяснит принцип создания ПО "спиральным" подход. А чтобы лучше понять ее, стоит рассмотреть наглядный пример. В качестве него будет выступать система "Умный дом":</p>
35
<ol><li>Человек задумался над созданием соответствующего продукта. Он заказал у программистов реализацию управления чайником посредством смартфонов.</li>
35
<ol><li>Человек задумался над созданием соответствующего продукта. Он заказал у программистов реализацию управления чайником посредством смартфонов.</li>
36
<li>Программеры стали использовать модель "водопад": послушали идею, проанализировали предложения на рынке, обговорили архитектуру, решили вопросы, связанные с реализацией оной. После - написали код, проверили его и продемонстрировали конечный результат.</li>
36
<li>Программеры стали использовать модель "водопад": послушали идею, проанализировали предложения на рынке, обговорили архитектуру, решили вопросы, связанные с реализацией оной. После - написали код, проверили его и продемонстрировали конечный результат.</li>
37
<li>Заказчик оценил используемое ПО и риски: нужна ли клиентам другая версия, более совершенная. Пример - с управлением ТВ или компьютером.</li>
37
<li>Заказчик оценил используемое ПО и риски: нужна ли клиентам другая версия, более совершенная. Пример - с управлением ТВ или компьютером.</li>
38
<li>Заказчик провел расчет сроков и бюджета, после - заказал разработку.</li>
38
<li>Заказчик провел расчет сроков и бюджета, после - заказал разработку.</li>
39
<li>Программеры воспользовались "каскадом" и показали более сложный контент, в основе которого заложен первый созданный софт.</li>
39
<li>Программеры воспользовались "каскадом" и показали более сложный контент, в основе которого заложен первый созданный софт.</li>
40
<li>Заказчик решил создать еще и функционал для управления холодильником со смартфона. Но оценка рисков показала, что это неоправданный ход. Вероятность неудачи превышает ожидаемый успех. За счет этого заказчик прекратил разработку и начал совершенствовать имеющийся функционал "Умного дома.</li>
40
<li>Заказчик решил создать еще и функционал для управления холодильником со смартфона. Но оценка рисков показала, что это неоправданный ход. Вероятность неудачи превышает ожидаемый успех. За счет этого заказчик прекратил разработку и начал совершенствовать имеющийся функционал "Умного дома.</li>
41
</ol><p>Модель напоминает инкрементную, но здесь в несколько раз больше времени уделяется оценке рисков. Каждый виток - это усложнение процесса. Подход встречается в научных проектах, где недели уходят на выяснение рисков.</p>
41
</ol><p>Модель напоминает инкрементную, но здесь в несколько раз больше времени уделяется оценке рисков. Каждый виток - это усложнение процесса. Подход встречается в научных проектах, где недели уходят на выяснение рисков.</p>
42
<h4>Преимущества</h4>
42
<h4>Преимущества</h4>
43
<p>Сильных сторон у такой концепции не слишком много. Она подойдет тем, кто готов посвятить анализу немало времени и сил. На выходе получится ПО с минимальными рисками и предельным уровнем успеха.</p>
43
<p>Сильных сторон у такой концепции не слишком много. Она подойдет тем, кто готов посвятить анализу немало времени и сил. На выходе получится ПО с минимальными рисками и предельным уровнем успеха.</p>
44
<h4>Недостатки</h4>
44
<h4>Недостатки</h4>
45
<p>Минусов у подхода больше, чем плюсов. Среди них выделяют:</p>
45
<p>Минусов у подхода больше, чем плюсов. Среди них выделяют:</p>
46
<ul><li>вероятность на первых порах бесконечно дорабатывать первый релиз;</li>
46
<ul><li>вероятность на первых порах бесконечно дорабатывать первый релиз;</li>
47
<li>трудности при переходе к новым версиям ПО;</li>
47
<li>трудности при переходе к новым версиям ПО;</li>
48
<li>стоимость разработки;</li>
48
<li>стоимость разработки;</li>
49
<li>сроки реализации.</li>
49
<li>сроки реализации.</li>
50
</ul><p>Первые наработки могут быть чувствительны к малейшим изменениям. Именно поэтому на окончательный выпуск продукции требуются немалые затраты.</p>
50
</ul><p>Первые наработки могут быть чувствительны к малейшим изменениям. Именно поэтому на окончательный выпуск продукции требуются немалые затраты.</p>
51
<h2>Об Agile</h2>
51
<h2>Об Agile</h2>
52
<p>При программировании можно воспользоваться всеми перечисленными способами. Но есть еще и Agile ("эджайл") метод. В переводе с английского это - "гибкий".</p>
52
<p>При программировании можно воспользоваться всеми перечисленными способами. Но есть еще и Agile ("эджайл") метод. В переводе с английского это - "гибкий".</p>
53
<p>Такой вариант предусматривает гибкие методологии разработки, а также подходы и практики, позволяющие получить на выходе максимально эффективный контент.</p>
53
<p>Такой вариант предусматривает гибкие методологии разработки, а также подходы и практики, позволяющие получить на выходе максимально эффективный контент.</p>
54
<p>Сюда относят:</p>
54
<p>Сюда относят:</p>
55
<ul><li>экстремальное программирование (XP);</li>
55
<ul><li>экстремальное программирование (XP);</li>
56
<li>фреймворки для управления проектами Scrum;</li>
56
<li>фреймворки для управления проектами Scrum;</li>
57
<li>бережную разработку ПО;</li>
57
<li>бережную разработку ПО;</li>
58
<li>разработку путем тестинга;</li>
58
<li>разработку путем тестинга;</li>
59
<li>методологии "чистой комнаты";</li>
59
<li>методологии "чистой комнаты";</li>
60
<li>создание ПО, управляемое функциональностью;</li>
60
<li>создание ПО, управляемое функциональностью;</li>
61
<li>итеративно-инкрементальный подход (OpenUP);</li>
61
<li>итеративно-инкрементальный подход (OpenUP);</li>
62
<li>методологию MSF;</li>
62
<li>методологию MSF;</li>
63
<li>метод создания систем динамического характера;</li>
63
<li>метод создания систем динамического характера;</li>
64
<li>управление разработкой Kanban.</li>
64
<li>управление разработкой Kanban.</li>
65
</ul><p>Не все перечисленные элементы - это гибкие методологии разработки. Пример - Scrum. Это фреймворк. Здесь прописаны все роли и процессы.</p>
65
</ul><p>Не все перечисленные элементы - это гибкие методологии разработки. Пример - Scrum. Это фреймворк. Здесь прописаны все роли и процессы.</p>
66
<p>Выше - таблица, которая поможет сравнить Agility с другими способами реализации программных продуктов.</p>
66
<p>Выше - таблица, которая поможет сравнить Agility с другими способами реализации программных продуктов.</p>
67
<h3>Scrum</h3>
67
<h3>Scrum</h3>
68
<p>Основа успеха - короткие ежедневные встречи, а также регулярные собрания. Они носят название Sprint (спринт). Каждый день команда обсуждает следующие вопросы:</p>
68
<p>Основа успеха - короткие ежедневные встречи, а также регулярные собрания. Они носят название Sprint (спринт). Каждый день команда обсуждает следующие вопросы:</p>
69
<ul><li>составление отчета о проделанной работе с момента последнего Scrum;</li>
69
<ul><li>составление отчета о проделанной работе с момента последнего Scrum;</li>
70
<li>задачи, которые необходимо выполнить каждому из участников группы до следующей "стычки";</li>
70
<li>задачи, которые необходимо выполнить каждому из участников группы до следующей "стычки";</li>
71
<li>проблемы, возникающие в процессе разработки.</li>
71
<li>проблемы, возникающие в процессе разработки.</li>
72
</ul><p>Идеальна для ПО с длительным жизненным циклом, адаптированным под рыночные требования.</p>
72
</ul><p>Идеальна для ПО с длительным жизненным циклом, адаптированным под рыночные требования.</p>
73
<h3>Kanban</h3>
73
<h3>Kanban</h3>
74
<p>Это - часть Agile метода. Самая популярная из существующих методологий. Команде предстоит проводиться работу через виртуальную доску. Она разбита на этапы проекта. Каждый участник сможет увидеть, какие задачи находятся в работе, а какие "застопорились" на определенном этапе. Также удастся лицезреть то, какие шаги требуют особого внимания при дальнейшем релизе.</p>
74
<p>Это - часть Agile метода. Самая популярная из существующих методологий. Команде предстоит проводиться работу через виртуальную доску. Она разбита на этапы проекта. Каждый участник сможет увидеть, какие задачи находятся в работе, а какие "застопорились" на определенном этапе. Также удастся лицезреть то, какие шаги требуют особого внимания при дальнейшем релизе.</p>
75
<p>Канбан позволяет брать в работу срочные задачи. И все это - без ожидания начала следующего спринта. Такой вариант отлично подходит не только для реализации ПО, но и для личных целей. Он позволяет составлять планы, а также расставлять приоритеты в семье по домашним обязанностям. Отслеживать движение процессов очень удобно.</p>
75
<p>Канбан позволяет брать в работу срочные задачи. И все это - без ожидания начала следующего спринта. Такой вариант отлично подходит не только для реализации ПО, но и для личных целей. Он позволяет составлять планы, а также расставлять приоритеты в семье по домашним обязанностям. Отслеживать движение процессов очень удобно.</p>
76
<p>Лучше понимать рассмотренную тему помогут специализированные дистанционные компьютерные курсы. С их помощью пользователь, независимо от своего опыта в IT, сможет быстро освоить одно или несколько инновационных направлений, включая программирование мобильных и компьютерных игр. Программы рассчитаны на срок до года. В конце обучения будет выдан сертификат, подтверждающий знания и навыки в выбранном направлении.</p>
76
<p>Лучше понимать рассмотренную тему помогут специализированные дистанционные компьютерные курсы. С их помощью пользователь, независимо от своего опыта в IT, сможет быстро освоить одно или несколько инновационных направлений, включая программирование мобильных и компьютерных игр. Программы рассчитаны на срок до года. В конце обучения будет выдан сертификат, подтверждающий знания и навыки в выбранном направлении.</p>
77
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
77
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
78
78