Co sprawia, że ​​tworzenie oprogramowania Agile jest tak atrakcyjne?

17

Zwinne tworzenie oprogramowania staje się w dzisiejszych czasach dość zabawnym modnym hasłem.

Jako programista rozumiem pragmatyczną wartość iteracyjnego programowania, ale (najczęściej) nie jest wyborem programistów, aby przyjąć zwinne podejście do tworzenia oprogramowania. To wybór zarządzania odgórnego! Bez względu na to, czy jest to krystaliczne, zwinne metody, dsdm, rup, xp, scrum, fdd, tdd, nazywasz to. To nie jest wybór programisty.

Dla wszystkich menedżerów, jakie są największe powody, dla których warto wybrać programowanie Agile, kiedy (z mojego doświadczenia) większość menedżerów nawet nie dotknęła fragmentu kodu w swoim życiu!

Zwinny Zwiadowca
źródło
2
Częściowo musi to być tak, aby mogli być postrzegani (przez więcej menedżerów wyższego szczebla i / lub klientów), aby „być na bieżąco” z najnowszymi technologiami i praktykami rozwojowymi.
ChrisF
2
Z mojego doświadczenia wynika, że ​​gdy nietechniczni menedżerowie naciskają na „zwinność”, zwykle kieruje się to zgodnością z modnymi słowami, a nie żadnymi korzyściami, które ma zapewnić zwinny rozwój.
Carson63000,
3
To, co sprawia, że ​​jest atrakcyjne dla kierownictwa, to prawdopodobnie to, że ma seksowną nazwę, a „zwinny” w ich słowniku zwykle oznacza „z mniejszą liczbą ludzi” (patrz „Chcemy stać się bardziej zwinną firmą”) jako synonim „Chcemy strzelać połowa siły roboczej. ”)
biziclop,
Jak daleko sięgają „te dni”, jak myślę, że słyszałem o Agile od co najmniej kilku lat, co od dawna jest w kręgach technologicznych?
JB King,
Głównym powodem jest to, że menedżerowie mogą pełzać i mówić: „to część bycia zwinnym”
Steven Evers,

Odpowiedzi:

26

Zmieniające się wymagania, szybsza dostawa

Zwinny jest atrakcyjny, ponieważ daje możliwość szybszego (lub wcale) dostosowania się do zmieniających się potrzeb i szybszego dostarczania tych zmian klientowi.

Dlatego wiele firm ponosi porażkę, gdy używa Agile / Scrum: menedżerowie nie rozumieją, że przy dużej mocy (ustawianie szybszych dat wydania i częste zmienianie wymagań) spoczywa odpowiedzialność za poleganie na programistach w zakresie szacunków . Aby zwinny działał, menedżer musi być gotowy zmniejszyć zakres.

Chcą mocy obu.

Nicole
źródło
2
@Pete, więc szybko użyjesz swoich głosów ... :)
Nicole
Innym sposobem powiedzenia tego jest: zdolność do strzelania i trafiania w ruchomy cel.
Bjarke Freund-Hansen
9

Podążając za trendami

Czasami ludzie robią rzeczy, nie ze względu na wartość rzeczy, na którą się angażują (zwinny), ale tylko dlatego, że jest popularny, a inni próbują to zrobić.

„Co? Macrojam robi zwinny? Dlaczego nie jesteśmy? Nie jesteśmy powolni, jesteśmy zwinni, cholera!”

Niektórzy ludzie nie dbają o to, co pociąga za sobą zwinność. Jest to jedynie sposób uzasadnienia ich istnienia. Owca, presja rówieśników itp.

Mark Canlas
źródło
Tak, tysiąc razy. „Nie ma srebrnej kuli” ... z wyjątkiem Agile / Scrum, najwyraźniej według zdecydowanie zbyt wielu menedżerów.
Kyralessa
„Agile rozwiąże wszystkie nasze problemy”. Dlaczego więc nadal mamy problemy?
Mark Canlas,
8

Sam kodowanie nie jest głównym powodem, dla którego menedżerowie mogą być przekonani, aby wybrać zwinną metodę. Atrakcyjny jest fakt, że możesz szybciej reagować na zmieniające się wymagania i priorytety. „Menedżer” ostatecznie musi dostarczyć rozwiązanie użytkownikowi końcowemu / klientowi / jego kierownikowi.

Jeśli funkcjonalność, która wydawała się kluczowa na początku projektu, może zostać zniesiona w połowie projektu i zastąpiona nowymi, bardziej stosownymi wymaganiami, jest to duża zaleta.

Ważne jest również to, że przede wszystkim (np. W scrum) każda dostawa pośrednia powinna być prawie gotowa do wprowadzenia do produkcji. Jednocześnie najpierw opracowano najpilniejsze funkcje. Tak więc, jeśli projekt zostanie anulowany z powodu jakiejś decyzji korporacyjnej, kierownictwo jest pewne, że skończy się z czymś, co zadziała i może zostać wprowadzone do produkcji.

Mam nadzieję że to pomoże.

Frans Vanhaelewijck
źródło
6

Zwiększ widoczność tego, co się dzieje i zwiększ produktywność

  1. Menedżerowie są zwykle zainteresowani widocznością zwinną, szczególnie w przypadku scrum. Jest to jeden z najczęściej używanych punktów sprzedaży w seminariach skierowanych do menedżerów.

  2. Powszechnie stosuje się również wyższą produktywność, aby je przyciągnąć, ponieważ można je łatwo wykazać (dzięki widoczności). Niektórzy zwinni ewangeliści obiecują im wyjątkową wydajność od swoich obecnych pracowników. „Co? Już naciskam je jak cytryny, a ty mówisz, że mogę dostać jeszcze więcej ?

Wielu menedżerów używa zwinnych, by zmiażdżyć swoich pracowników jeszcze trochę i widziałem, jak używali wykresu wypalenia jako maszyny do polowania na slackery w jednej dużej firmie.

Wynik? Wiele zespołów distress. Myśleli, że zwinny rozwiąże wszystkie ich problemy, ale zrobiło to dokładnie odwrotnie. Problem był gdzie indziej.

Aktywnie walczę z tym. Dlatego czasami tam, gdzie istnieje wysokie prawdopodobieństwo, że metodologia zwinna będzie pervertedzarządzana, sugeruję nie wspominać o tym w firmie.

back2dos
źródło
4

Odpowiedź na to pytanie może wypełnić książkę.

Myślę, że jednym z głównych powodów jest to, że zwinny rozwój koncentruje się na wynikach. Zawsze koncentruje się na dostarczaniu dokładnie tego, co jest najpilniejsze tutaj i teraz.

Innym powodem jest to, że oparte na fabule metody planowania i szacowania stosowane przez zwinne procesy dają znacznie lepszą ocenę tego, co można dostarczyć i kiedy.

Dobrym przykładem skuteczności planowania opartego na fabule jest projekt, nad którym pracowałem. Przez kilka miesięcy (zanim przyjęliśmy zwinny rozwój) lider projektu wierzył, że możemy dostarczyć go na czas, a to było około 18 miesięcy od ostatecznego terminu. Wszyscy programiści mieli wrażenie, że to prawdopodobnie nierealne. Po rozpoczęciu sprawnego planowania lider projektu nadal optymistycznie ocenił sytuację. Ale dopiero po kilku sprintach kierownik projektu zdał sobie sprawę, że zespół po prostu nie był w stanie spełnić wszystkich wymagań w oczekiwanym czasie. A to już ponad 12 miesięcy od ostatecznego terminu.

Dzięki zwinnym praktykom rzeczywistość staje się o wiele wcześniejsza.

I na koniec, zwinne zespoły częściej stosują praktyki, które zapewniają lepszą jakość kodu, np. Programowanie testowe, częste refaktoryzacja, ciągła integracja, przegląd kodów równorzędnych / programowanie par itp. Nie to, że tradycyjne projekty oprogramowania zabraniają takich praktyk, po prostu nie skupiać się tak bardzo.

Pete
źródło
4

większość menedżerów nawet nie dotknęła kawałka kodu w swoim życiu!

Byłem programistą przez 12 lat, a teraz menedżerem przez 5 lat. W ciągu 5 lat stopniowo przeszedłem z menedżera, który nadal kodował, do bycia przede wszystkim czystym menedżerem (wciąż czasami naprawiam błędy lub wykonuję ćwiczenia prototypowe).

jakie są największe powody, dla których warto wybrać programowanie zwinne

  • Widoczność lub szybki sukces / szybki błąd - jesteśmy sklepem rozwoju produktu z cyklami od 6 do 24 miesięcy. Iteracyjny rozwój z działającymi, przetestowanymi funkcjami lepiej odzwierciedlał status projektu.
  • Zmiana - w naszym otoczeniu wymagania i czas są zwykle stałe. Ale firma zbyt regularnie przechodzi gwałtowne, wstrząsające zmiany kierunku. Iteracyjny, widoczny rozwój ułatwił projektom zmianę kierunku.
  • Wymagania oparte na fabule z iteracyjnym rozwojem ułatwiły współpracę z firmą, która nie zawsze rozumiała techniczne aspekty wymagań lub w pełni rozumiała sterowniki biznesowe niektórych szczegółów. W naszych dotychczasowych staraniach specyfikacje na wysokim poziomie lub dokumenty wymagań marketingowych nie zawsze były wystarczające. W miarę ewolucji projektów mogą być prowadzone równoległe badania rynku i klientów.
  • Zmiana procesu wiązała się z wieloma innymi atrybutami programistycznymi, takimi jak TDD, testowanie automatyczne w porównaniu z testowaniem ręcznym, ściślejsze cykle testowe (nie mamy już grupy kontroli jakości, tylko grupa kontroli jakości) oraz większe uznanie i wysiłek związany z jakością (używamy wiele innych narzędzi i wskaźników).

Moglibyśmy to osiągnąć na inne sposoby, ale wykorzystanie zwinnych metodologii i pomysłów bardzo nam pomogło.

Nadal doskonalimy nasz proces. Na przykład równowaga między projektowaniem z góry a projektowaniem tuż przed wdrożeniem. Regularnie weryfikujemy wszystkie nasze decyzje, aby ustalić, czy moglibyśmy odroczyć wcześniejsze decyzje projektowe. A kiedy coś pójdzie nie tak, o ile więcej pracy z góry byłoby konieczne, dopóki błąd nie zostanie zidentyfikowany. Często awarie są przypadkami narożnymi, które wymagają głębokiej analizy. Wysiłek, aby uzyskać tak szczegółowe informacje, jest często taki sam, jak koszt opracowania go po drodze i refaktoryzacji. Zespoły nie są karane za tego rodzaju błędy i zachęcane do bycia bardziej agresywnymi.

Jim Rush
źródło
3

Widziałem wiele „sprawnych” firm. Niestety bardzo niewielu z nich przyjmuje zwinne. Mam na myśli tylko iteracyjny rozwój, a codzienne awarie (w których większość drużyny siedzi) nie sprawiają, że zespół jest zwinny. TDD, refaktoryzacja, ciągła integracja, obecność klienta, praktyki SOLID sprawiają, że zespół jest zwinny. Bez nich chodzisz w kółko.

Przesłanie Agile jest bardzo atrakcyjne. Zdolność do zmiany jest największa. Niestety twój kod nie staje się bardziej przystosowalny tylko dlatego, że zmieniasz sposób zarządzania projektem. Dopóki więcej firm nie zda sobie z tego sprawy, usłyszymy o coraz bardziej nieudanym zwinnym projekcie.

Michael Brown
źródło
3

Nie wiem o części słowa buzz. Naprawdę robiłem to przez cały czas w niezbyt sformalizowanym lub zidentyfikowanym procesie. Kiedy budowałem ich stronę internetową, klienci dosłownie patrzyli mi przez ramię. Zapisano około 50 e-maili, a klient dowiedział się czegoś o tym procesie - nie jest to łatwe.

Całe przekonanie, że poświęcimy dużo czasu na spisanie wszystkiego, co użytkownik chce zrobić, a następnie poświęcić dłuższy czas na zbudowanie tego, co naszym zdaniem chcą odkryć w ciągu 2 sekund od wypróbowania aplikacji, że to nie jest tak, jak się spodziewali, mdłości. Jak trudno jest rozbić jakiś projekt lub aplikację na rozsądne części, aby zbudować i uzyskać informacje zwrotne, zanim zbudujesz kolejny?

Wiem, że jest to nadmierne uproszczenie i nie odnosi się do rzeczywistych praktyk programistycznych, ale nie jest trudno sprzedać nawet najbardziej nietechnicznemu menedżerowi lub klientowi. Jakie inne podejście jest bardziej atrakcyjne? Czy klienci naprawdę uwielbiają fakt, że programiści nie mają włosów przez 6-12 miesięcy, podczas gdy rozwijają się podczas jakiegoś projektu wodospadu? Czy zatrudniłbyś kogoś do budowy domu w ten sposób?

JeffO
źródło
1

Kierownictwo nie wywiera tych rzeczy na programistów. Deweloperzy i zespoły powinny podejmować inicjatywy i dążyć do nich, aby lepiej wykonywać swoją pracę. Zadaniem kierownictwa jest zapewnienie wsparcia dla tych inicjatyw.

CaffGeek
źródło
4
W idealnym świecie zarządzanie tego nie robi; w rzeczywistości zarządzanie może i robi w zależności od miejsca zatrudnienia. Popularne tematy na ostatniej konferencji często mogą zostać popchnięte przez zespół programistów tylko dlatego, że zostały przedstawione jako wybawiciele cyklu życia. Pamiętaj, że programiści również to robią, z wyjątkiem tego, że reklamują kolejny świetny język i środowisko, które powinno zapewniać skalowalny kod lub coś w tym rodzaju. Wszyscy lubimy nowe rzeczy ... to ludzka natura.
Aaron McIver
1

Jako menedżer, który napisał sporo kodu w mojej karierze, mogę nie być tym, na kogo szukasz odpowiedzi. W każdym razie myślę, że w dzisiejszych czasach przyciąganie do Agile ma największy wpływ na szybsze reagowanie na potrzeby klientów, a także skrócenie pętli sprzężenia zwrotnego między specyfikacją, kodowaniem, testowaniem i klientem. Właśnie z tych powodów robimy krok w kierunku bardziej zwinnego rozwoju.

Dave Kincaid
źródło
0

Myślę, że nie powinieneś bałaganić zwinnego procesu i praktyk kodowania / programowania. Na przykład Scrum nie mówi ci, jak powinieneś rozwijać swój kod - chodzi tylko o proces, który przyjmuje zmiany.

Sergii Pozharov
źródło
-1

Pod koniec dnia chodzi o wzmocnienie pozycji programisty; chodzi o uznanie faktu, że ci ludzie, którzy są na samym dole hierarchii, są jedynymi, którzy naprawdę rozumieją zakres tego, co należy zrobić i jak to zrobić, więc jeśli już zatrudniłeś ich ze względu na ich wiedzę - dlaczego nie pozwolić im przejąć pełnej kontroli, a raczej, dlaczego dystansować ich od faktycznego podejmowania decyzji?

Filip Dupanović
źródło
1
Ponieważ programiści nie płacą rachunków, klienci płacą i dlatego mają kontrolę.
JeffO,