Какая модель процесса разработки программного обеспечения наиболее часто используется нынешними компаниями?

Я только что закончил мой выпуск в области компьютерных наук.
Теперь я знаю обо всех моделях процессов разработки программного обеспечения, т.е.

• Waterfall Model
• Spiral Model
• Iterative and Incremental Development
• Agile Development [I don't know much about this]

Но я хочу знать, какой из них больше всего используют новые компании?
Есть ли какая-то новая модель, кроме этой, которая является новой, и все не знают об этом?

7 ответов

Решение

Agile - SCRUM широко используется в наши дни.

Я бы сказал, что наиболее широко используемый метод - это "сделай это сейчас, сделай это позже" (позже, после того, как ты там больше не работаешь или продукт умирает).

Это лучший метод? Точно нет. Но вы попросили наиболее широко используемый.

Я говорю, что у большинства компаний есть ковбойское кодирование, потому что их менеджмент просто не заботится о процессе разработки... они просто хотят, чтобы все было сделано быстро.

Конечно, у лучших компаний... и тех, на которые вы хотите работать, должен быть процесс. Я считаю, что Agile методологии и практики, такие как Scrum, разработка через тестирование, непрерывная интеграция и итеративная разработка, наиболее часто используются этими компаниями.

Недавно я решил начать с большой организации, в которой есть ковбойское кодирование… и я внедряю гибкие методологии, чтобы изменить процессы и немного улучшить качество.

Возможно, не то, что вы хотите услышать, но "Agile" - это не модель процесса, а набор установок, которые можно, например, использовать даже с Waterfall. Модель процесса разработки программного обеспечения может быть чем-то вроде eXtreme Programming или Crystal Clear.

Проблема в том, что хотя термин "Agile" был создан для определения набора атрибутов (см. Гибкий манифест), он был переопределен сообществом для ссылки на методологии. Любая методология (например, Scrum или XP) может быть реализована как гибкая или негибкая.

Также методологии / процессы направлены на решение разных проблем. Некоторые предоставляют процессы для разработчиков программного обеспечения (например, XP требует парного программирования и TDD), в то время как другие предоставляют процессы для управления проектами (например, как Scrum и XP). Поэтому сравнение сложно, а иногда и бессмысленно.

В какой-то степени все это водопад, это зависит только от уровня фокуса.

Я рекомендую прочитать Алистер Кокберн. Команды разных размеров и разной степени критичности требуют разных решений. Посмотрите набор процессов Crystal. Алистер провел почти 20 лет, изучая успешные и не очень успешные команды по всему миру. Например, он обнаружил, что в небольшой команде реальный процесс менее актуален, чем такие атрибуты, как частая доставка.

Надеюсь это поможет.

В основном это модель водопада.

В области программного обеспечения для управления процессами люди переходят в итеративные процессы для разработки программного обеспечения, такого как Agile.

Я предпочитаю TDD.

Каждая модель процесса не хорошая, не плохая. Потому что это зависит от программного обеспечения, которое вы собираетесь разрабатывать. По моему мнению, инкрементная модель процесса лучше.

Я боюсь, что одна из суровых реалий выпускного состоит в том, что "большая часть" разработки программного обеспечения происходит в крупных корпоративных средах, и большинство корпоративных ИТ-отделов все еще используют "Водопад" (чаще называемый, по крайней мере, в Великобритании) Структурированный подход к разработке.

Короче говоря, это Дизайн >> Сборка >> Тестирование >> Развертывание >> Поддержка

Этот подход в большей степени обусловлен необходимостью управлять бюджетами, сроками, сроками и поддерживать возможности аудита, чем разрабатывать отличное программное обеспечение... но, эй, это мир, в котором мы живем...

Другие вопросы по тегам