10 wypróbowanych i przetestowanych wskazówek dotyczących programowania zwinnego
Opublikowany: 2020-05-04Większość myśli, że programowanie i tworzenie oprogramowania to samotne zajęcie, w którym komputerowi frajerzy chowają się w swoich pokojach, wbijając miliony linijek kodu, ale to dalekie od prawdy. Prawdziwe tworzenie oprogramowania to znaczny wysiłek grupowy, który wymaga od zespołów programistów o różnych specjalizacjach współpracy przy opracowywaniu oprogramowania, które jest funkcjonalne, łatwe w użyciu i wyposażone we właściwe funkcje.
Zapewnienie, aby zespół programistów był na tej samej stronie przez cały cykl programistyczny, oznacza podążanie za modelem, który może najlepiej ułatwić ten proces. Przez lata było sporo nazw takich jak Waterfall, Spiral, V-model itd., które ilustrują, w jaki sposób oprogramowanie jest rozwijane, od koncepcji po gotowy produkt, a następnie utrzymanie go.
Źródło obrazu: Plakat Manifestu Agile autorstwa Adama Weisbarta.
Proces, który przypisuje teraz wielu dużym programistom, to tak zwany Agile, nazwany ze względu na podstawową zasadę adaptacyjności i ciągłej ewolucji. Oparte na tak zwanym Manifeście Agile i napisane przez niewielką grupę bardzo doświadczonych programistów.
Postrzegali współpracę jako centralny filar rozwoju i mogą z niej ewoluować zarówno wymagania, jak i rozwiązania. Nauczenie się Agile Development zajmuje trochę czasu, ale oto dziesięć wskazówek, które mogą ci pomóc.
Świetny sprzęt dla twoich programistów i testerów
Chociaż kodowanie przy użyciu laptopa może być możliwe, lepiej jest tworzyć oprogramowanie przy użyciu sprzętu, który jest więcej niż wystarczający. Równie ważne dla testerów jest posiadanie wysokiej jakości maszyn do wykonywania swojej pracy, ponieważ chciałbyś zobaczyć błędy i usterki, które pojawiają się niezależnie od problemów z wydajnością.
Ale to, czego naprawdę chcą programiści, to wiele monitorów, aby mieć jak największą powierzchnię ekranu, na której można pisać swój kod. Dobre klawiatury są również dużym impulsem, ponieważ pisanie kodu jest ich chlebem powszednim, a klawiatury mechaniczne są zarówno trwałe, jak i świetne do pisania (przynajmniej te z przełącznikami dotykowymi).
Skoncentruj się na wynikach
Nigdy nie chodzi o to, czyj pomysł jest słuszny, ale o wymyślenie właściwego pomysłu. Ostatecznie kierunek pochodzi od wyższego kierownictwa, w przeciwieństwie do wczesnych dni Agile, kiedy kierował się oddolnie. Stwierdzono, że jest to najlepszy przepływ procesu, ponieważ osoby na wyższych stanowiskach mogą skoncentrować się na nadzorowaniu i zarządzaniu projektem, podczas gdy programiści mogą skupić się na swojej pracy, przestrzegając parametrów i granic ustalonych przez wyższe kierownictwo.
Dzięki temu odgórnemu modelowi zarządzania oczekuje się, że zespół programistów przyniesie konkretne i wymierne wyniki. Muszą być w stanie pokazać swoją pracę, nie tylko w kodzie, ale mieć coś, co faktycznie działa zgodnie z zamierzeniami. To jest następnie umieszczane w ringu przez Test Driven Development (TDD), proces, który odgrywa dużą rolę w Agile Development.
Najpierw zaimplementuj ciągłe dostarczanie
Zasadniczo trzymaj się tego. Daje to pewność, że rozwój odbywa się w stałym tempie, a programiści otrzymują informacje zwrotne wcześnie i często. Stała komunikacja i informacja zwrotna to podstawa Agile Development, pozwalająca zespołowi dostosować się do nagłych zmian i nieoczekiwanych okoliczności, gdy zajdzie taka potrzeba. Tutaj wkraczają „kompilacje”.
Kompilacja to w zasadzie użyteczna wersja opracowywanego oprogramowania. Zgodnie z koncepcją ciągłego dostarczania (CD) konieczne jest częste wdrażanie kolejnych kompilacji, z których każda zostaje wydana po wprowadzeniu ulepszeń i poprawek, które są pobierane z informacji zwrotnych na temat poprzedniej kompilacji.
Uzyskaj sponsoring wyższego kierownictwa
Chociaż Agile Development przyjmuje podejście od góry do dołu, oczekiwanie na zgodę wyższego kierownictwa przed wdrożeniem lub zmianą może być dość czasochłonne.
Jeśli zostanie to zrobione źle, może to po prostu spowodować stratę czasu na oczekiwanie na przyznanie pozwolenia. Dobrym rozwiązaniem jest posiadanie rzecznika, który może szybciej przekazać tę sprawę od dewelopera do autorytetu, najlepiej kogoś, kto jest dobry w przedstawianiu pomysłów i rozumie, o co jest proszony.
Przejście do krótszych cykli rozwoju i testowania
Piekło rozwoju przenika wiele programów, w tym te główne. Zdarzają się również sytuacje, w których długie cykle rozwoju skutkują funkcjami, które są ostatecznie odrzucane przez użytkowników, co sprawia, że cały cykl jest dużą stratą czasu i pieniędzy, z których firma może nie być w stanie odzyskać od razu. Dobrym sposobem na ograniczenie tych zagrożeń jest skrócenie cykli tworzenia i testowania.
Ponieważ Agile Development polega na jak najszybszym uruchomieniu rzeczy, w tym napływie informacji zwrotnych, ważne jest, aby mieć krótsze cykle rozwoju, aby stworzyć „minimalnie opłacalny produkt”. Daje to użytkownikom coś, w co można zatopić zęby i odpowiednio przekazywać informacje zwrotne, które można następnie rozwiązać w następnej wersji.
Osiągnięcie automatyzacji od pierwszego dnia
Znany również jako AD1, jest to wzniosły cel, który z pewnością może przyspieszyć działanie, jeśli wszystko skonfigurujesz tak szybko, jak to możliwe. Realistycznie rzecz biorąc, możesz być w stanie zautomatyzować wszystko do drugiego lub trzeciego roku, jeśli będziesz dobry, ale przynajmniej powinieneś kończyć to pierwszego dnia, gdy tylko jest to możliwe.
To oszczędność czasu, a nawet życia, jeśli myślisz o tym wystarczająco mocno. Automatyzacja prostych procesów może naprawdę pomóc programistom i innym członkom w radzeniu sobie z niepotrzebną pracą.
Efektywny współczynnik zespołu
Jak mówi przysłowie: „Zbyt wielu kucharzy psuje bulion”. Podczas gdy zbyt mała liczba członków w zespole może utrudnić pracę, posiadanie zbyt wielu może być równie złe. Zbyt duża liczba w projekcie jest również dużym obciążeniem dla finansów, ponieważ trzeba je spłacić. Dlatego ważne jest, aby wziąć pod uwagę potrzeby projektu i samego zespołu, a także określone ramy czasowe i wiele innych czynników.
Zaplanuj otwarte problemy
Zespół może spróbować rozwiązać każdy problem, ale zawsze znajdą się takie, które prześlizgną się i/lub okażą się problemami otwartymi. Jest to obsługiwane przez pracę nad tymi otwartymi problemami w następnym cyklu rozwojowym.
Poproś o opinię
Nie można tego wystarczająco podkreślić – informacja zwrotna jest siłą napędową Agile Development. To dane, które mogą pomóc w rozwoju oprogramowania, a zarówno programiści, jak i wyższe kierownictwo muszą wziąć pod uwagę przynajmniej te najbardziej pilne, które dotyczą zarówno teraźniejszości, jak i długoterminowej.
Ocena Twojego procesu
W tym miejscu pojawia się ewolucja rozwoju, ponieważ musisz nie tylko ocenić oprogramowanie, nad którym pracujesz, ale także proces rozwoju. Jest tak wiele rzeczy, które możesz dopracować, ale będziesz musiał określić, które z nich przyniosą najlepsze rezultaty w danym przedziale czasowym w bieżącym projekcie, a także w przyszłych.