<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Espeo Software &#187; Uncategorized</title>
	<atom:link href="http://blog.espeo.pl/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.espeo.pl</link>
	<description>O technologii i biznesie naszym zdaniem</description>
	<lastBuildDate>Mon, 23 Aug 2010 12:39:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zwinny projekt okiem programisty.</title>
		<link>http://blog.espeo.pl/2010/02/12/zwinny-projekt-okiem-programisty/</link>
		<comments>http://blog.espeo.pl/2010/02/12/zwinny-projekt-okiem-programisty/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 14:51:07 +0000</pubDate>
		<dc:creator>Paweł Ziemba</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[metodyki]]></category>

		<guid isPermaLink="false">http://blog.espeo.pl/?p=206</guid>
		<description><![CDATA[Czym jest Agile dla programisty? Co zmienia zastosowanie zwinnego podejścia w porównaniu z klasycznym waterfall?]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		PRE { font-family: "Courier New", monospace; font-size: 10pt } 		P { margin-bottom: 0.21cm } --></p>
<p style="text-align: left">Czym jest <em>Agile </em>dla programisty? Co zmienia zastosowanie zwinnego podejścia w porównaniu z klasycznym <em>waterfall</em>?</p>
<h2><strong>Klasyka</strong></h2>
<p style="text-align: justify">Mam za sobą kilka większych lub mniejszych projektów realizowanych klasycznie. Obserwowałem pracę programistów z różnych perspektyw. Ciekawa jest tu obserwacja jak zmienia się nastawienie pojedynczych ludzi, jak i całych zespołów do realizacji projektu. Człowiek potrafi zaadaptować się niezwykle szybko do środowiska w jakim przebywa&#8230;</p>
<p style="text-align: justify">W klasycznym podejściu rola programisty ogranicza się w zasadzie do &#8216;klepania kodu&#8217;. Powszechnie przy tym narzeka się na analityków, projektantów, a także testerów. Często nie dostrzega się klienta, czy nawet celów projektu, poza należną premią oczywiście <img src='http://blog.espeo.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify">
<div id="attachment_235" class="wp-caption aligncenter" style="width: 610px"><img class="size-medium wp-image-235   " src="http://blog.espeo.pl/wp-content/uploads/2010/02/waterfall.png" alt="Jak wygląda (w uproszczeniu oczywiście) klasyczny warterfall" width="600" height="250" />
<p class="wp-caption-text">Jak wygląda (w uproszczeniu oczywiście) klasyczny warterfall</p>
</div>
<p style="text-align: center">
<p style="text-align: justify">Miejsce programisty jest w zasadzie tylko przy etapie &#8216;kodowanie&#8217;. Jego rolą jest naklepanie treści do tego co wymyślił projektant&#8230; i przekazanie następnie do testera &#8211; z nadzieją aby ten nie wykrył tych drobnych obejść, które często wynikały z nieścisłego gdzieniegdzie projektu. W końcu po co zawracać sobie tym głowę &#8211; projektant widocznie tak chciał to ma.</p>
<p style="text-align: justify">Do takiej roli bardzo dobrze przygotowują wszelkie uczelnie. Po prostu trzeba doskonale znać narzędzia i język w którym się koduje. Działamy jak algorytm &#8211; na wejściu analiza, na wyjście dajemy działający kod. Nie ma znaczenia co gdzieś daleko za nami chciał klient, ani czego oczekuje po wdrożeniu. Jesteśmy tylko połączeniem projektanta z testerem.</p>
<p style="text-align: justify">Czasami rzeczywistość zaskakuje nas jak drogowców zimą <img src='http://blog.espeo.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Faza analizy się przedłuża i nie ma czasu na projekt <img src='http://blog.espeo.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Wówczas implementujemy często wynik analizy bez projektu&#8230; Jeśli przedłużyła się analiza &#8211; znaczy, że dziedzina jest trudna, pewnie implementacja też się przedłuży, więc może faza testów też jest niepotrzebna? Najważniejsze jest przecież wdrożenie&#8230; Tego chce klient (a może nie?).</p>
<p style="text-align: justify">W takich projektach <em>Project Manager</em> ma niełatwe zadanie. Ślęczy nocami nad znienawidzonym M$ Projectem, aby zgrać wszystkie etapy. Każdy próbuje zwalić winę na innego&#8230; To już temat na zupełnie osobny artykuł&#8230;<br />
Programista podejmuje decyzje jedynie na temat tego czy użyć pętli while czy może lepiej for. Całą resztę zrzuca na projektanta lub PMa.</p>
<h2><strong>Agile</strong></h2>
<p style="text-align: justify">Jak wygląda zwinny proces rozwoju oprogramowania z punktu widzenia programisty?</p>
<p style="text-align: justify">
<div id="attachment_234" class="wp-caption aligncenter" style="width: 610px"><img class="size-medium wp-image-234  " src="http://blog.espeo.pl/wp-content/uploads/2010/02/agile.png" alt="Uproszczony schemat Agile" width="600" height="208" />
<p class="wp-caption-text">Uproszczony schemat Agile</p>
</div>
<p style="text-align: justify">
<p style="text-align: justify">Tutaj idziemy przez całość zagadnień małymi kroczkami. Za każdym razem wykonujemy analizę, projekt implementację i integrację z całością. Za każdym razem dostajemy informację zwrotną od klienta czy to co zrobiliśmy to jest to czego oczekuje. Klient dostaje gotowe fragmenty, które może używać. Sam decyduje które fragmenty chce najszybciej.<br />
A co robi teraz programista? Otóż niestety ma sporo więcej pracy. Przejmuje po części role analityka, projektanta, testera i wdrożeniowca&#8230; Niestety ma więcej pracy i odpowiedzialności. Ale myślę że praca ta jest dużo ciekawsza i posiada dużo większe możliwości rozwoju.</p>
<p style="text-align: justify">Niestety jednak, tutaj napotykamy problem. Większość absolwentów kierunków informatycznych nie jest dobrze przygotowana do przejęcia tych wszystkich ról. Nie wystarczy więc powiedzieć &#8211; od dziś pracujemy w agile. Trzeba nieustannie podnosić kwalifikacje pracowników.</p>
<p style="text-align: justify">Poszczególne fazy, z racji tego że nie są one w pełni formalnie osadzone, różnią się też sporo od tych znanych z podejścia klasycznego. Nie powstaje zwykle jakiś spójny dokument zwany analizą, czy projektem, który jest normalnie akceptowany i odbierany przez klienta. Za to klient akceptuje gotowa działające kawałki. Wydaje się, że ma to głębszy sens &#8211; za abstrakcyjnym dokumentem projektu nie widać zwykle gotowego systemu.</p>
<p style="text-align: justify">Uczelnie wypuszczają całą masę programistów. To samo w sobie nie jest złe, są oni zwykle doskonali w programowaniu&#8230; Jednak spotyka się takich którzy nie słyszeli nigdy akronimu <em>SOLID</em>. Podczas studiów wykonuje się niezliczone &#8216;projekty&#8217; programistyczne. Niewiele z nich jednak przechodzi przez fazy analizy, projektowania, czy nawet testowania! A te umiejętności wśród programistów są niezbędne aby swobodnie realizować zwinny projekt.</p>
<p style="text-align: justify">Jest to jedna z trudności (i wyzwań) dla zwinnych zespołów – w klasycznym podejściu każdy ma swoją działkę w której nabywa umiejętności; w agile każdy jest specjalistą od wszystkiego <img src='http://blog.espeo.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Postaram się dalej pokazać, że to nie taki diabeł straszny jak go malują.</p>
<p style="text-align: justify">
]]></content:encoded>
			<wfw:commentRss>http://blog.espeo.pl/2010/02/12/zwinny-projekt-okiem-programisty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
