80/20 wpływa również na planowanie

Wszyscy słyszeliśmy o zasadzie 80/20, która mówi, że 80% naszego sukcesu (efektów) pochodzi tylko z 20% naszych działań (przyczyn). Cóż, ta uniwersalna prawda ma również wpływ na rozwój oprogramowania, aw tym artykule omówimy trochę podstaw tego stwierdzenia.

BPM

Zarządzanie procesami biznesowymi, ze względu na swój akronim w języku angielskim, jest dyscypliną zarządzania (między innymi), która pozwala wizualnie zrozumieć procesy, które muszą zostać przeprowadzone w firmie (lub w wielu innych miejscach). Jedną z jego głównych zalet jest to, że potrafi analizować złożone procesy i czynić je „prostymi”.

Istnieje wiele narzędzi typu open source, które pozwalają tworzyć diagramy BPM. W tym artykule wykorzystałem BonitaSoft. Jeśli chcesz dowiedzieć się więcej o zarządzaniu procesami, w Internecie jest wiele samouczków i książek na ten temat. Wróćmy teraz do głównego tematu.

Projekty oprogramowania

Obecnie istnieje wiele metodologii tworzenia projektów, są zwinne, tradycyjne, mieszane itp. Jeden punkt, który ich wszystkich łączy, to przygotowanie. Co przez to rozumiem? Że 80% sukcesu w tym projekcie oprogramowania będzie oparte na pierwszych 20% całego procesu, przygotowanie. 

Przygotowanie projektu

Jest to coś logicznego, co w rzeczywistości jest stosowane bardzo rzadko (podobnie jak wiele innych logicznych rzeczy, które są nielogiczne w praktyce). Kiedy mówimy o przygotowaniu, musimy zrozumieć umiejętność zrozumienia problemu, zrozumienia rozwiązania, a przede wszystkim proces że rozwiązanie ma zastosowanie. Jedną z rzeczy, które najmniej można znaleźć w nieprofesjonalnych projektach oprogramowania, jest brak dokumentacji na ten temat. Zwykle pojawia się w firmach prywatnych, ponieważ chęć sprzedaży wykracza poza proces tworzenia.

Ponieważ wielu z tych, którzy czytają te artykuły, pracuje lub jest związanych z technologią, warto wspomnieć, że jeśli w którymś momencie swojego życia zawodowego znajdą firmę / dostawcę, który nie spełnia dobrego przygotowania, to jest prawie 80% pewien 😛 że projekt nie pójdzie dobrze.

Kluczem jest abstrakcja

To jest coś, czego nauczyłem się podczas korzystania z GNU / Linuksa i raz po raz udowadnia, że ​​jest to kluczowe w procesie tworzenia oprogramowania. Pojemność abstrakcyjny problemy z przekształceniem ich w bardziej „proste” rzeczy są niezbędne, aby móc wygenerować elegancki kod, a przede wszystkim Duradero. I być może jest to jedna z głównych różnic w stosunku do dużych projektów profesjonalnych i projektów, które wymykają się spod kontroli. Ci pierwsi myślą, rozumieją i organizują proces podczas gdy sekundy trzymają pracować bez zrozumienia tego.

Stary wyga

Tak nazywa się projekt, który rozwija instalator Gentoo, jak możesz sobie wyobrazić, jest to dość złożony proces, ponieważ obsługuje dużą liczbę architektur. Kolejnym czynnikiem, który należy wziąć pod uwagę, jest liczba obsługiwanych konfiguracji, na poziomie jądra, systemu inicjalizacji itp. I mówię ci to wszystko, ponieważ jest to również moja praca dyplomowa, którą muszę ukończyć przed ukończeniem studiów. Oczywiście nie mogę w tak krótkim czasie (do lipca przyszłego roku) stworzyć programu uwzględniającego absolutnie wszystkie możliwe opcje, ale przynajmniej potrafię wygenerować taki, który pozwoli na bardzo prostą instalację systemu funkcjonalnego.

Zrozumienie procesu instalacji

Dzięki narzędziom BPM można wygenerować diagram procesu, który pozwoli nam zrozumieć kroki niezbędne do pomyślnej instalacji Gentoo na komputerze.

Proces instalacji Gentoo

Posiadać. Christopher Diaz Riveros

Pomimo tego, że zawiera kilka procesów i podprocesów, zostało to oczywiście dość podsumowane i widać, że mamy 18 liniowych kroków. Jest to ważne, ponieważ aplikacja, która ma strukturę liniową, jest łatwa do wdrożenia, a jednocześnie w razie potrzeby można wygenerować równoległość w jednym lub kilku wątkach.

Innym ważnym czynnikiem jest to, że nam to umożliwia abstrakcyjny zestawy procesów według typu, na przykład zdefiniowanie wątku jądra pozwala nam wiedzieć, że istnieją w nim określone zadania, które są bezpośrednio związane z procesem pomyślnej instalacji jądra.

Podproces „jądro”

Posiadać. Christopher Diaz Riveros

W ten sposób każdy „złożony” krok staje się „prostym” w sposób globalny, bez utraty niezbędnych szczegółów. Ułatwia to widoczność zespołu bez obniżania poziomu specyfikacji niezbędnego do pomyślnego zakończenia procesu. Nie możemy zaprzeczyć, że łatwiej jest zobaczyć obraz, niż przeczytać od razu cały Podręcznik 🙂

Oszczędzaj czas

Inną oczywistą zaletą jest to, że nie mając bezpośrednio połączonego języka programowania, można przeprowadzić analizę logiczną bez konieczności marnowania czasu na implementację języka. Jest to zaleta w porównaniu z ilością czasu, jaką można poświęcić na wdrażanie funkcji, aby dowiedzieć się, że zostanie ona odrzucona, ponieważ istnieje bardziej wydajne rozwiązanie. Na przykład, jakie byłyby rozwiązania w pseudokodzie (coś, co jest również ignorowane przez wielu „programistów”, ale nie powinno).

Kierowanie projektami stało się łatwe

Biorąc pod uwagę te koncepcje, zarządzanie projektami (wszelkiego rodzaju) staje się łatwiejsze, ponieważ skupiamy nasze wysiłki tam, gdzie są naprawdę potrzebne, a jeśli ta część jest wykonywana poprawnie, reszta spada na siebie. Mam nadzieję, że pomoże Ci to zaciekawić Cię i zmotywuje do poszukiwań BPM, algorytmiki i kto wie, może zachęci Cię do pomocy w mojej pracy magisterskiej 😛 Dziękuję bardzo za przybycie i do zobaczenia wkrótce. Twoje zdrowie


2 komentarzy, zostaw swoje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Alexander Mayorga Muñoz powiedział

    Cześć. Dzięki za podzielenie się swoją wiedzą. Wydaje mi się, że jest to ekscytujący temat, ale wymaga dużo pracy badawczej i praktycznego zastosowania pojęć, aby móc je przyswoić. Na początku sprawa jest zagmatwana, ponieważ bardziej kojarzy się ją po stronie identyfikacji wymagań dla systemu, a niekoniecznie z procesami biznesowymi firmy, czyli z tym, jak firma działa. W końcu myślę, że bardziej chodzi o rolę, jaką programiści odgrywają w modelowaniu działalności firmy, aby działalność firmy była bardziej wydajna i efektywna.

    1.    ChrisADR powiedział

      Witaj Aleksandrze, bardzo dziękuję za udostępnienie. Prawdę mówiąc, próba podsumowania wszystkiego na tak małej przestrzeni jest dość złożonym tematem, ale jeśli mogę wnieść trochę do wyjścia z nieporozumień twoim komentarzem 🙂 to prawda, że ​​systemy muszą próbować rozwiązać wymagania, że jest najbardziej możliwą podstawową funkcjonalnością i w tym momencie prawdą jest, że programista powinien skupić się na wyższym poziomie.
      Znajomość procesów pozwala programistom zaprezentować więcej niż wystarczającą ilość systemów, rozumiejąc wystarczająco jako coś, co spełnia minimalne możliwe wymagania.
      Elegancja kodu polega na możliwości zrozumienia całego procesu i wygenerowania go w głębszy sposób, w którym stosowane jest najlepsze możliwe rozwiązanie, a jest to możliwe tylko dzięki prawdziwemu zrozumieniu procesu, a nie wymaganiom, jak dobrze wspomniałeś 🙂
      Jeśli modelujemy to trochę wokół FOSS, oznacza to nie tylko znajomość wymagań oprogramowania, ale także filozofii, która za nim stoi oraz wiedza, w jaki sposób będzie ono utrzymywane, przez kogo i całą tę wiedzę o procesie, który nie tylko generuje wydajne rozwiązanie. ., ale z czasem da się utrzymać 🙂
      Jeszcze raz bardzo dziękuję i pozdrawiam.