-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!p
ostnews.google.com!g24g2000vbz.googlegroups.com!not-for-mail
From: Andrzej Jarzabek <a...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: ilu jest programistow na swiecie?
Date: Tue, 17 May 2011 09:53:34 -0700 (PDT)
Organization: http://groups.google.com
Lines: 160
Message-ID: <6...@g...googlegroups.com>
References: <iqjp8e$led$1@inews.gazeta.pl> <iqpak7$vef$1@news.onet.pl>
<iqqeag$m5j$1@inews.gazeta.pl> <iqqj2m$i52$2@news.onet.pl>
<d...@p...googlegroups.com>
<iqqt7m$qi0$1@news.onet.pl> <iqqtpa$gt3$1@node2.news.atman.pl>
<iqr4u7$qpo$1@news.onet.pl> <iqr7pi$r95$1@node2.news.atman.pl>
<iqrujs$b8$1@news.onet.pl> <iqs0o4$85o$1@news.onet.pl>
<1...@l...localdomain> <iqtglc$5c5$1@news.onet.pl>
<iqthln$9gp$1@news.onet.pl> <iqtirb$9kr$1@news.onet.pl>
<iqtj7p$fel$1@news.onet.pl>
<c...@w...googlegroups.com>
<iqtpbn$80t$1@news.onet.pl>
<7...@t...googlegroups.com>
<0...@1...googlegroups.com>
<iqu14k$9ee$1@news.onet.pl>
NNTP-Posting-Host: 195.11.67.225
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1305651215 16014 127.0.0.1 (17 May 2011 16:53:35 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Tue, 17 May 2011 16:53:35 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: g24g2000vbz.googlegroups.com; posting-host=195.11.67.225;
posting-account=jr5y-woAAAAWidgVjrSJ6j8m650CTb-v
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like
Gecko) Chrome/11.0.696.68 Safari/534.24,gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:190409
[ ukryj nagłówki ]On May 17, 3:35 pm, "Przemek O." <p...@o...eu> wrote:
> W dniu 2011-05-17 15:05, Andrzej Jarzabek pisze:
>
> >>> Ile projektów prowadziłeś stosując Agile, że się z tym zgadzasz?
>
> >> Nie prowadziłem żadnego, ale robiłem w takich, w których robiono
> >> design up front,
> > [...]
>
> > Aha, jeszcze, jeśli chodzi o samo pisanie programów bez robienia
> > najpierw projektu, to jak najbardziej sporo takich napisałem.
>
> To były raczej notatniki niż ERP? Co?
Powiedzmy że gdzieś pomiędzy.
> Ale na poważnie, jak już ktoś napisał, Agile wcale nie zakłada braku
> projektu.
Żeby rozwiać niejednoznaczności, uściślijmy może, że chodzi o
tworzenie dokumentu projektowego, na podstawie którego tworzony jest
kod. Oczywiście kod, który piszę, posiada ostatecznie i na każdym
etapie "projekt" w sensie jakiejś struktury konceptualnej. Również,
jeśli jest takie wymaganie, mogę ten projekt udokumentować ex post, co
się dzieje np. po release albo przed hand-offem.
Natomiast twierdzę, i Agile tak twierdzi, że można (a niekiedy nawet
należy) pisać program bez dokumentu projektowego up front, czyli
takiego, który dokumentuje nieistniejący jeszcze kod, który będzie w
dalszej kolejności pisany według tego projektu.
Oczywiście jedna z rzeczy, do której projekt jest potrzebny, to
koordynacja równoległej pracy wielu programistów nad tym samym
projektem. Jak rozumiem Agile (powiedzmy konkretnie XP) zakłada tu
dwie możliwości: albo zaczyna się od tego, że w pierwszym dniu/
tygodniu kod produkcyjny tworzy jedna para programistów, podczas gdy
reszta konfiguruje source control i build machine, robi research,
rozmawia z customerami albo przestawia biurka. Druga możliwość jest
taka, że zespół robi zebranie i ustala nieformalny bardzo ogólny
projekt up front, który pozwoli im na dalszy podział pracy. W każdym
przypadku projekt jest formalizowany nie do dokumentu projektowego,
tylko do zestawu unit testów, które w sposób jednoznaczny określają
jakie komponenty mają istnieć, jakie interfejsy udostępniac i jaką te
interfejsy mają mieć funkcjonalność.
> Poza tym, jest pewien poziom skomplikowania, od którego
> dokumentacja projektowa jest niezbędna do powstania produktu końcowego.
Nie zgodzę się. Dokumentacja projektowa może być potrzebna jeśli np.
zespół po zakończeniu projektu ma być rozwiązany lub przeniesiony do
innego projektu, a maintenance ma robić ktoś inny (co jest sensownym
scenariuszem, bo zespół agile powołany do tworzenia projektu ab initio
nie będzie najlepszym zespołem do jego maintainowania po zredukowaniu
ilości bieżącej pracy.
W drugiej kolejności dokumentacja może być potrzebna firmie jako
dupochron na wypadek, gdyby jakaś większa liczba członków zespołu
zechciała sobie pójśc gdzie indziej.
I w końcu jeśli zakładasz, że będzie duża rotacja pracowników w czasie
trwania projektu, dokumentacja projektowa jest potrzebna, ale jeśli
będzie duża rotacja, to prawdopodobie nie powinieneś stosować Agile.
> Dodatkowo jest jednak delikatna różnica pomiędzy pisanie programu który
> się samemu wymyśliło dla siebie (lub wyimaginowanego klienta) niż dla
> realnego zleceniodawcy. W pierwszym przypadku można improwizować,
> najwyżej się zmieni, w drugim nie ma miejsca na improwizację, bo produkt
> końcowy jest określony poprzez wymagania zleceniodawcy a nie własne
> widzimisie.
Projekt to projekt, a wymagania to wymagania. Nawet jeśli dostraczenie
dokumentu projektowego jest w wymaganiach, to raczej się nie wymaga,
żeby dostarczyć go up front - przed napisaniem programu. No chyba że
pracodawca/zleceniodawca ma też takie wymaganie, ale wtedy nie
praktykujesz agile, tylko narzucony z góry proces waterfall lub
iterative.
Jeśli chodzi o same wymagania, to XP ma takie podejście, że od
udokumentowanych wymagań lepszy jest customer w zespole. Oczywiście
musisz tego customera mieć, w dodatku musi być kompetentny i mieć
realną możliwość podejmowania decyzji i brak tego jest poważną
obiektywną przeszkodą w stosowaniu XP. Z drugiej strony oczywiście
należy do tego przyłożyć zdrowy rozsądek - podejście to nie oznacza
zakazu istnienia dokumentów z wymaganiami, istotne są natomiast dwie
rzeczy: po pierwsze, że realne wymagania będą się zmieniać w miarę
pracy z customerem i w związku z tym dokument z wymaganiami nie może
być wiążącą umową, a po drugie że jak programista będzie miał
jakiekolwiek problemy, uwagi czy propozycje co do tego, co wyczytał w
dokumentacji wymagań, to będzie mógł usiąść z customerem i wypytać się
go, czego on naprawdę chce. Jeśli te warunki nie moga być spełnione,
to jest to kolejna obiektywna przeszkoda w stosowaniu XP.
Jeśli chodzi o moje osobiste doświadczenie, to mam właśnie takie:
dokument z wymaganiami się szybko dezaktualizuje, możliwość szybkiego,
częstego i osobistego kontaktu z człowiekem, który rozumie wymagania i
będzie je mógł wyjaśnić - jest niezastąpiona. Sytuacja, w której
wymagania są kontraktem, w którym każdą zmianę trzeba negocjować jest
szkodliwa dla jakości tworzonego oprogramowania - prędzej czy później
nastąpi któraś z poniższych sytuacji:
- nagle się okaże, że jakiś feature opisany w wymaganiach jest Bardzo
Trudny do zaimplementowania i trzeba renegocjować kontrakt albo
ponosić ryzyko (np. opóźnień). Z drugiej strony ten sam feature może
wcale nie być tak istotny dla klienta, lub być łatwy do zastąpienia
czymś, co dla klienta ma prawie taką samą wartość, a jest trywialne do
zrobienia. Sam overhead renegocjonowania umowy może być w tym
przypadku gigantyczny w porównaniu do wysiłku podjęcia decyzji co do
wartości tego feature'a i zamiplementowania go w tej czy innej
postaci.
- okaże się, że wymaganie interpretowane w pewien sposób (powiedzmy -
rozumiane dosłownie, np. tak, jak by zrozumiał je pedantyczny
programista o matematycznym umyśle, nie mający szczególnie dużej
wiedzy o zastosowaniach wymaganego feature'a) jest jednocześnie
kosztowne w realizacji i kompletnie niepotrzebny, a nawet absurdalny.
To doprowadza do jescze gorszej sytuacji, gdzie programista pokaże
paluchem że jest napisane, że działać ma właśnie tak i tak właśnie
działa, zleceniodawca powie, że nie tego chciał i nie o to chodziło w
tym punkcie umowy i powstaje kwas na zasadzie czy to zleceniodawca źle
wyspecyfikował i powinien podpisać odbiór, a jak chce, żeby inaczej
działało, to niech negocjuje umowę na enchancement i przygotuje się,
żeby słono zapłacić, czy jednak jest to bug, który wykonawca musi
naprawić na własny koszt i ewentualnie nawet ponieść konsekwencje
(dodatkowego) opóźnienia. Zauważ, że w tym przypadku może chodzić o
kluczowy element programu, od którego masa innych rzeczy jest zależna
i którego przerobienie, żeby było tak, jak ma być, to poważny effort,
np. przepisanie na nowo 1/3 kodu.
Następne wpisy z tego wątku
- 17.05.11 17:49 Przemek O.
- 17.05.11 19:24 A.L.
- 17.05.11 20:41 R. P.
- 17.05.11 21:20 Andrzej Jarzabek
- 17.05.11 21:30 Andrzej Jarzabek
- 17.05.11 22:02 R. P.
- 17.05.11 23:08 Andrzej Jarzabek
- 17.05.11 23:55 R. P.
- 17.05.11 23:58 R. P.
- 18.05.11 05:57 Andrzej Jarzabek
- 18.05.11 06:02 Zenek1234
- 18.05.11 06:52
- 18.05.11 08:00 MoonWolf
- 18.05.11 08:41 Andrzej Jarzabek
- 18.05.11 08:57 Paweł Kierski
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-24 Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie
- 2024-12-23 Przedłużacz USB-C działa w połowie
- 2024-12-24 Cicha noc...
- 2024-12-24 Gdańsk => Software .Net Developer <=
- 2024-12-23 Opole => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i Ka
- 2024-12-23 Łódź => Architekt rozwiązań (doświadczenie w obszarze Java, AWS)
- 2024-12-23 Kraków => System Architect (Java background) <=
- 2024-12-23 Poseł Ryszard Petru w Biedronce
- 2024-12-23 Riga => Specjalista ds. public relations <=
- 2024-12-23 Łódź => Specjalista ds. Sprzedaży <=
- 2024-12-23 Kraków => International Freight Forwarder <=
- 2024-12-23 Co nalezy do Cinkciarza, a co do Conotoxia ?
- 2024-12-23 Poznań => Key Account Manager <=
- 2024-12-23 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=
- 2024-12-23 Rzeszów => Spedytor Międzynarodowy <=