80/20 також впливає на планування

Ми всі чули про правило 80/20, яке говорить, що 80% нашого успіху (наслідків) походить лише від 20% наших дій (причин). Ну, ця універсальна істина також впливає на розробку програмного забезпечення, і в цій статті ми збираємось викласти трохи основних положень цього твердження.

БПМ

Управління бізнес-процесами, з його абревіатурою англійською мовою, - це дисципліна управління (крім усього іншого), яка дозволяє наочно зрозуміти процеси, які необхідно здійснювати в бізнесі (або в багатьох інших місцях). Серед основних його якостей - той факт, що він може аналізувати складні процеси та робити їх «простими».

Існує багато інструментів з відкритим кодом, які дозволяють розробляти діаграми BPM. Я використав для цієї статті BonitaSoft. Якщо ви хочете дізнатись трохи більше про управління процесами, в Інтернеті є безліч підручників та книг з цього питання. А тепер повернемось до центральної теми.

Програмні проекти

Сьогодні існує багато методологій розробки проектів: гнучкі, традиційні, гібридні тощо. Одна спільна риса для всіх них – це підготовка . Що я маю на увазі? Те, що 80% вашого успіху в цьому програмному проекті залежатиме від перших 20% усього процесу: підготовки.

Підготовка проекту

Це логічний момент, який рідко застосовується в реальності (як і багато інших логічних речей, які є нелогічними на практиці). Коли ми говоримо про підготовку, ми повинні розуміти здатність зрозуміти проблему, зрозуміти рішення і, перш за все, процес , який це рішення використовує. Однією з найменш поширених речей, що зустрічаються в непрофесійних програмних проектах, є відсутність документації з цієї теми. Зазвичай це трапляється в приватних компаніях, оскільки бажання продати часто затьмарює процес розробки.

Оскільки багато хто з тих, хто читає ці статті, працює в галузі технологій або пов'язаний з ними, варто зазначити, що якщо в будь-який момент свого трудового життя вони зіткнуться з компанією/постачальником, який не відповідає належним стандартам підготовки, майже на 80% впевненість у тому, що проект пройде невдало.

Абстракція є ключовим фактором

Цього я навчився за час роботи з GNU/Linux, і це знову і знову доводить, що є ключовим у процесі розробки програмного забезпечення. Здатність абстрагувати проблеми та перетворювати їх на простіші речі є життєво важливою для створення елегантного та, перш за все, довговічного коду . І, можливо, це одна з головних відмінностей між великими професійними проектами та проектами, які розвиваються безконтрольно. Перші продумують, розуміють та структурують процес, тоді як другі просто підтримують його роботу, не потребуючи його розуміння.

Stager

Це назва проекту, який розробляє інсталятор Gentoo, як ви можете собі уявити, це досить складний процес, оскільки він підтримує велику кількість архітектур. Ще одним фактором, який слід враховувати, є кількість конфігурацій, які він підтримує, на рівні ядра, системи init тощо. І я вам все це кажу, тому що це також мій дипломний проект, який я повинен закінчити перед закінченням навчання. Очевидно, я не можу створити програму, яка передбачає абсолютно всі можливі варіанти за такий короткий час (до липня наступного року), але принаймні я можу створити програму, яка дозволяє встановлювати функціональну систему дуже елементарно.

Розуміння процесу встановлення

Завдяки інструментам BPM можна створити схему процесу, яка дозволяє зрозуміти кроки, необхідні для успішної інсталяції Gentoo на комп'ютері.

Процес установки Gentoo

Власний. Крістофер Діас Ріверос

Незважаючи на те, що містить декілька процесів та підпроцесів, це, очевидно, було досить узагальнено, і видно, що ми маємо 18 лінійних кроків. Це важливо, оскільки додаток, що має лінійну структуру, легко реалізувати, і в той же час паралелізм може створюватися в одному або декількох потоках, якщо це необхідно.

Ще одним важливим фактором є те, що це дозволяє нам абстрагувати набори процесів за типом; наприклад, визначення підпроцесу ядра дозволяє нам знати, що в ньому є певні завдання, які безпосередньо пов'язані з процесом успішної інсталяції ядра.

Підпроцес "ядро"

Власний. Крістофер Діас Ріверос

Таким чином, кожен «складний» крок стає «простим» у глобальному плані, не втрачаючи необхідних деталей. Це полегшує видимість збірки без зниження рівня специфікації, необхідного для успішного завершення процесу. І ми не можемо заперечувати, що побачити зображення легше, ніж прочитати весь Довідник одразу 

Економити час

Ще однією очевидною перевагою є те, що, не маючи безпосередньо підключеної мови програмування, можна виконувати логічний аналіз без необхідності витрачати час на впровадження мови. Це перевага в порівнянні з кількістю часу, який можна витратити на впровадження функції, лише щоб дізнатись, що вона буде відкинута, оскільки існує більш ефективне рішення. Як і те, якими будуть рішення в псевдокоді (те, що також ігнорується багатьма "розробниками", але не повинно бути).

Режисура проектів стала простою

Беручи до уваги ці концепції, управління проектами (будь-якими) стає простішим, тому що ми зосереджуємо зусилля там, де вони дійсно необхідні, і якщо ця частина зроблена правильно, решта лягає на власну вагу. Я сподіваюся, що це допоможе вашій допитливості та спонукає вас досліджувати BPM, алгоритми та, хто знає, можливо, це спонукатиме вас допомогти мені з моєю дисертацією  Щиро дякую, що зайшли так далеко, і скоро побачимось. вітаю


Додати як пріоритетне джерело в Google