Все мы слышали о правиле 80/20, которое гласит, что 80% нашего успеха (результатов) происходит только от 20% наших действий (причин). Что ж, эта универсальная истина также влияет на разработку программного обеспечения, и в этой статье мы собираемся немного рассказать об основных положениях этого утверждения.
BPM
Управление бизнес-процессами, от его аббревиатуры на английском языке, - это управленческая дисциплина (среди прочего), которая позволяет вам визуально понять процессы, которые должны выполняться в бизнесе (или во многих других местах). Среди его основных качеств - то, что он может анализировать сложные процессы и делать их «простыми».
Существует множество инструментов с открытым исходным кодом, которые позволяют разрабатывать диаграммы BPM. В этой статье я использовал BonitaSoft. Если вы хотите узнать немного больше об управлении процессами, в Интернете есть множество руководств и книг по этой теме. А теперь вернемся к центральной теме.
Программные проекты
Сегодня существует множество методологий разработки проектов: гибкие, традиционные, гибридные и так далее. Все они имеют одну общую черту — подготовку . Что я имею в виду? 80% вашего успеха в этом программном проекте будет зависеть от первых 20% всего процесса: подготовки.
Подготовка проекта
Это логический момент, который редко применяется на практике (как и многие другие логические вещи, которые на практике оказываются нелогичными). Когда мы говорим о подготовке, мы должны понимать способность осмыслить проблему, понять решение и, прежде всего, процесс , который это решение использует. Одна из наименее распространенных проблем непрофессиональных программных проектов — отсутствие документации по этому вопросу. Обычно это происходит в частных компаниях, поскольку стремление к продажам часто затмевает процесс разработки.
Поскольку многие из тех, кто читает эти статьи, работают в сфере технологий или связаны с ней, стоит отметить, что если в какой-либо момент своей профессиональной жизни они столкнутся с компанией/поставщиком, которые не соответствуют надлежащим стандартам подготовки, то с вероятностью 80% проект не будет успешным.
Абстракция - это ключ
Это то, чему я научился за время работы с GNU/Linux, и это снова и снова доказывает свою ключевую роль в процессе разработки программного обеспечения. Способность абстрагировать проблемы и превращать их в более простые вещи жизненно важна для создания элегантного и, прежде всего, надежного кода . И, возможно, это одно из главных отличий между крупными профессиональными проектами и проектами, которые растут бесконтрольно. В первых тщательно продумывается, понимается и структурируется процесс, в то время как во вторых он просто поддерживается в рабочем состоянии, не нуждаясь в его понимании.
Стажер
Так называется проект, который разрабатывает установщик Gentoo, как вы понимаете, это довольно сложный процесс, так как он поддерживает большое количество архитектур. Еще один фактор, который следует учитывать, - это количество поддерживаемых конфигураций на уровне ядра, системе инициализации и т. Д. И все это я вам рассказываю, потому что это еще и моя дипломная работа, которую я должен закончить до окончания учебы. Очевидно, я не могу создать программу, которая рассматривает абсолютно все возможные варианты за такое короткое время (до июля следующего года), но, по крайней мере, я могу создать программу, которая позволяет установить функциональную систему очень простым способом.
Понимание процесса установки
Благодаря инструментам BPM можно создать диаграмму процесса, которая позволяет нам понять шаги, необходимые для успешной установки Gentoo на компьютер.
Своя. Кристофер Диас Риверос
Несмотря на то, что он содержит несколько процессов и подпроцессов, он, очевидно, был достаточно обобщен, и можно увидеть, что у нас есть 18 линейных шагов. Это важно, потому что приложение с линейной структурой легко реализовать, и в то же время параллелизм может быть сгенерирован в одном или нескольких потоках, если это необходимо.
Ещё одним важным фактором является то, что это позволяет нам абстрагироваться от наборов процессов по типу; например, определение подпроцесса ядра позволяет нам узнать, что внутри него есть конкретные задачи, непосредственно связанные с процессом успешной установки ядра.
Своя. Кристофер Диас Риверос
Таким образом, каждый «сложный» шаг становится «простым» в глобальном масштабе, без потери необходимых деталей. Это облегчает видимость сборки без снижения уровня спецификации, необходимой для успешного завершения процесса. И мы не можем отрицать, что проще увидеть изображение, чем прочитать весь справочник сразу
Экономьте время
Другое очевидное преимущество заключается в том, что, не имея напрямую подключенного языка программирования, можно выполнять логический анализ, не тратя время на реализацию языка. Это преимущество по сравнению с количеством времени, которое можно потратить на реализацию функции, только чтобы узнать, что она будет отброшена, потому что существует более эффективное решение. Например, какими будут решения в псевдокоде (что также игнорируется многими «разработчиками», но не должно быть).
Управление проектами стало проще
С учетом этих концепций управление проектами (любыми) становится проще, поскольку мы концентрируем усилия там, где они действительно необходимы, и если эта часть выполнена правильно, все остальное падает под собственным весом. Я надеюсь, что это поможет вашему любопытству и побудит вас исследовать BPM, алгоритмы и, кто знает, может быть, это побудит вас помочь мне с моей диссертацией. Большое спасибо, что зашли так далеко, и мы скоро увидимся. Привет