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