2016-10-10 11 views
1

Я готовлю презентацию. Моя тема - инновационные методологии разработки программного обеспечения. Agile - это современная и инновационная методология, но ответ - только Agile? Каковы другие инновационные и современные методологии? Являются ли разработка, основанная на испытаниях и поведенческая разработка, новаторскими методологиями? И eXtreme Programming - традиционная методология, такая как водопад?Методы инновационной разработки программного обеспечения

ответ

2

Я не уверен, что мы можем классифицировать эти методологии или рамки как инновационные, традиционные или что-то еще.

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

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

Agile методологии

Термин проворный действительно популярный термин, используемый специалистами по разработке программного обеспечения. Существует множество гибких методологий, таких как scrum, kanban или XP. Они предлагают способы использования, чтобы сделать нас гибкими. Термин «гибкий» охватывает все эти методы. Большинство из них решает прогноз, адаптацию, прозрачность, контроль и эмпирические процессы. Все гибкие методологии пытаются решить эти проблемы во время разработки программного обеспечения.

Extreme Programming

Экстремальное программирование сосредоточена на разработке программных продуктов, квалифицированных и принятия к изменяющимся требованиям и окружающей среды. Честно говоря, мне очень нравится XP. Он не предлагает только методологии развития. Это также говорит о некоторых вопросах управления клиентами, управления затратами и т. Д. Это действительно простой, но трудно реализуемый. Я настоятельно рекомендую прочитать книгу «Экстремальное программирование», поясненную Кентом Бек.

Смотрите также:

Extreme Programming

Extreme Programming Explained, by Kent Beck

Scrum

Scrum еще одна основа для разработки программного обеспечения на основе эмпирического контроля процесса: прозрачность, контроль, и адаптации. Это очень просто и определяет некоторую роль и событие во время разработки программного обеспечения. Ролями являются команда Scrum Master, Product Owner и Development. Это события Sprint Planing, Daily Scrum, Sprint и Sprint Retrospective. Я предлагаю прочитать руководство Scrum для получения дополнительной информации.

Смотрите также

Scrum Guide

Test Driven Development

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

Смотрите также

Test-driven development

Test-driven development by Martin Fowler

Test Driven Development: By Example, Kent Beck

Поведение разработки на основе

Это еще один процесс разработки программного обеспечения и вышел из Test Driven развития. Он фокусируется на кросс-команде, такой как разработка, управление и клиент, которые совместно используют инструменты и общие процессы, чтобы иметь одинаковое понимание требований. BDD предполагает, что деловые люди, клиентские и технические команды должны иметь такое же понимание для продукта. Требования клиентов, позволяет удовлетворить предложения клиентов, могут быть автоматически протестированы инструментами.

Смотрите также

Behavior-driven development

10 Tips for Writing Good User Stories

Cucumber.io

Резюме

Сам термин Agile отсутствует без XP, Scrum, Kanban или любой другой методологии или основы , Любая гибкая методология или структура также отсутствует без TDD, BDD или непрерывной интеграции. Любой из этих элементов должен поддерживаться корпоративной культурой, клиентами или деловыми людьми. Каждый участник проекта должен иметь представление о продукте над проектом. В противном случае методология Agile может оказаться нецелесообразной.

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

Смотрите также

Continious Integration

Products over projects

The Clean Coder: A Code of Conduct for Professional Programmers

+0

такой эклектичный список, отлично смотрится – sheidaei

+1

@erencan awesome list. Большое спасибо. Scrum.org говорит, что scrum - это не методология, это структура, но вы используете в ответе, поскольку «scrum - это еще одна методология». Вы можете проверить это [сообщение] (https://www.scrum.org/About/All-Articles/articleType/ArticleView/articleId/658/Scrum-Framework-not-methodology) – hkulekci

+1

вы rigth @hkulekci. Я обновил сообщение соответственно. Спасибо за вашу помощь. – erencan

1

Я думаю, что вы путаете практики, методологии и философии.

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

Возьмем Facebook, они практикуют «The hacker way», как описано в Erik Meijer's GOTO 2015 video. По словам Эрика, это не Agile. Он сосредоточен на создании кода, а не на много говорится о коде, как в большинстве инфраструктур Agile.

Если вы посмотрите на Spotify, у них есть своя собственная масштабируемая реализация «Agile». Выглядит очень весело, см. the Spotify engineering culture video's.

Но действительно ли они новаторские? или это просто эволюция цикла?

То, что вы называете, вовсе не является новшеством. Большинство из них старше 10 лет. Они испытаны и проверены понятия, некоторые любят их, некоторые ненавидят их, но новаторский ад нет.

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

1

«Agile» - это термин, придуманный в 2001 году группой людей, которые собрались вместе, чтобы понять, почему их проекты имеют тенденцию к успеху (или не быстро), когда другие проекты потерпели неудачу (иногда дорого).

Agile Manifesto вышел из этой встречи. Вы можете увидеть список людей внизу. Есть множество людей, которые связаны с принципами, методами и практикой, которые все считаются «Agile»: Scrum, Crystal, XP, TDD и т. Д.

Так что «Agile» - это общий термин для кучу вещей который следует за основными значениями и principles.

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

С etymonline.com, этимологии включает в себя:

Method: регулярное, систематическое лечение ... способ обучения или собирается ... научного исследования ... расследования ... преследование, следующий после. .. путешествие, путь ... способ сделать что-нибудь.

-ology: отрасль знаний, наука

-logy: говорящий, дискурс, трактат, учение, теория, наука ... характер или осанка того, кто говорит или Лакомство (определенный предмет)

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

Я быстро пройти через вещи, о которых вы упомянули, так что вы можете увидеть, как все они часть Agile:

  • Test-Driven Development: часть XP происходящего с Кентом Беком, популяризировал другими подписавшимися сторонами также как Брайан Марик, который создал JUnit

  • Поведенческая разработка: возникла с Dan North, в основном TDD без слова «тест», за исключением того, что это более глубокое, чем кажется. Разумеется, производная от Agile-методов.

  • eXtreme Programming: Также Кент Бек, представленный TDD, определенно Agile.

  • Водопад: типичный, пытаясь все сделать правильно, определенно не Agile.

Однако есть множество вещей, которые возникают из других дисциплин. Многие из Lean тела знаний, происходящие из Lean Manufacturing в Toyota, особенно в отношении работы Деминга, начинают играть в пространстве. Таким образом, вы получите такие вещи, как:

  • Lean Startup - идеи быстро проверенными через прототипы и эксперименты, которые не могут быть жизнеспособными в долгосрочной перспективе, но которые позволяют немедленное выживание или прибыль
  • Lean UX - ориентированной на постоянное улучшение интерфейса пользователя в сотрудничество с командой разработчиков, а не требования захвата и анализа
  • Lean Product Development - метод Toyota для разработки новых автомобилей, применяемых в программном пространстве, в том числе установить на основе параллельного проектирования и т.д.
  • Kanban for Software Development - методы управления, которые требуют баланса и мощности , также основанный на идеях, происходящих от Toyota.

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

  • Разработка продукта: Impact Mapping, история Mapping, пример Mapping, тестирование A/B

  • Технический поток: DevOps, непрерывная интеграция, Continuous Deployment

  • Люди и Психология: Dan Drive's Drive, Cynefin, Neurodiversity, Социальный капитал

  • Масштабные Гибкие методы: Large Scale Scrum (МЕНЬШЕ), Чешуйчатый Agile Framework (SAFE), Дисциплинированный Agile Delivery (DAD)

  • Стратегия: Lean Canvas, Enterprise Services Planning (ESP), Стратегия Симона Wardley в Карты.

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

Я думаю, что в будущем он больше не будет называться Agile, и это закончится, включая весь бизнес, а не только ИТ, что ИМО - фантастическая вещь. Это уже начало расширять сотрудничество во всем мире, за пределами бизнеса, и это следующий шаг.

Мне было бы очень приятно, если бы ваша презентация закончилась тем, что в качестве примечания.

+0

_So «Agile Methodology» является зонтичным термином для кучи ценностей, принципов, практик и идей о том, как сделать разработку программного обеспечения ** лучше ** _ - Я не согласен с термином «лучше». «Agile Methodology» - это методология, которая помогает сделать разработку программного обеспечения ** гибкой **. Помните, что «гибкое» слово является прилагательным. Таким образом, методологии помогут сделать ваше развитие «способным быстро и легко перемещаться, способное быстро реагировать на предстоящие изменения». – Fabio

+0

«Мы раскрываем ** лучшие ** способы разработки программного обеспечения, делая это и помогая другим это делать». - http://agilemanifesto.org. Термин «подвижный» был придуман от попытки выяснить, что они делают, что сработало, ретроспективно. Это было описание, а не цель. – Lunivore

+0

_ «Agile» - это термин, придуманный в 2001 году группой людей, которые собрались вместе, чтобы понять, почему их проекты преуспевают там, где другие проекты не сработали. В то время C3, с которого пришел XP, считался неудачным с руководством Chrysler, который впоследствии была запрещена методология. В этом проекте было несколько подписчиков Agile. –

0

Привет @ Юсуф, поскольку я в основном работал над гибким и прототипирующим методом при разработке приложения. На мой взгляд, прототипирование - это самый инновационный способ применения практики разработки программного обеспечения, поскольку клиент и другие держатели стеков могут предлагать любую модель, и эта модель может быть использована для разработки прототипа. И он продолжается до тех пор, пока держатель стека не получит желаемое программное обеспечение. Более того, мне нравится и учиться на основе ответа от @erencan