You are on page 1of 34

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE

Sprzedaj swj software


Autor: Edward Hasted
Tumaczenie: Jarosaw Dobrzaski
ISBN: 83-246-0338-7
Tytu oryginau: Software That Sells: A Practical Guide
to Developing and Marketing Your Software Project
Format: B5, stron: 368

ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl

Znajd rynek i odbiorcw dla swoich programw


Zaplanuj projekt i zrealizuj go w odpowiedni sposb
Poznaj skuteczne metody promocji oprogramowania
Zorganizuj efektywny proces sprzeday dla swojego przedsiwzicia
Kady, nawet najdoskonalszy i najbardziej rewolucyjny program, pozostanie wycznie
dum swoich twrcw, jeli nie trafi w odpowiednim momencie na rynek i nie zdobdzie
grona uytkownikw. Proces produkcji oprogramowania to dopiero pierwszy krok.
Kolejnymi, wbrew pozorom o wiele bardziej skomplikowanymi etapami s promocja,
sprzeda i obsuga klientw. Niedocenianie bd nawet lekcewaenie tych krokw
doprowadzio wiele firm, oferujcych niezwykle ciekawe produkty, do upadku bd
wchonicia przez wiksze. Autorzy oprogramowania, ktrzy chc, aby ich pomysy
przyniosy nie tylko uznanie w rodowisku programistw, ale rwnie pienidze, powinni
pozna zasady budowania rynku dla swoich produktw.
Czytajc ksik Sprzedaj swj software, zdobdziesz wiedz, ktra pomoe Ci
stworzy efektywnie dziaajc firm programistyczn. Dowiesz si, w jaki sposb
zaplanowa projekt informatyczny, jak pozna oczekiwania klientw i przeoy je
na konkretny produkt. Nauczysz si budowa zesp, zarzdza nim i eliminowa
potencjalne problemy. Poznasz metody kontroli jakoci i usuwania bdw
z oprogramowania. Zaplanujesz skuteczn kampani promocyjn i dziaania
sprzedaowe z wykorzystaniem rnych mediw i technik. Przeczytasz take
o obsudze klientw, rozwijaniu istniejcych produktw i zarzdzaniu firm
w warunkach szybkiego jej rozwoju, ktry na pewno bdzie efektem wdroenia
wiadomoci, jakie znajdziesz w tej ksice.
Badanie rynku pod ktem zapotrzebowania
Wybr odpowiedniej formy prawnej przedsibiorstwa
Budowanie wizerunku firmy
Zdobywanie kapitau na rozwj
Planowanie projektu
Rekrutacja i budowanie zespou projektowego
Kontrola jakoci produktu
Dokumentacja i instrukcja obsugi
Polityka cenowa
Kampania promocyjna
Techniki sprzeday
Obsuga klientw
Zarzdzanie rozwijajc si firm
Docz do grona znanych producentw oprogramowania

O autorze ................................................................................................ 13
Rozdzia 1. Jak zwycizcy rozRozdaia zwycizczwy ............................ 19
Gdzie zwycizcy znajduj swoje pomysy? ................................................................................19
Jak utrwali dobry pomys? .........................................................................................................20
Krok 1.Usid ..........................................................................................................................20
Krok 2. Rozcignij swj pomys .............................................................................................21
Krok 3. Upewnij si, e pomys jest dobrze zdefiniowany .....................................................22
Krok 4. Rozwi swoj koncepcj ............................................................................................22
Krok 5. Skonfrontuj koncepcj z wasnym dowiadczeniem ......................................................23
Krok 6. Zbierz swoj paczk ...................................................................................................24
Krok 7. Jeste tylko czowiekiem ............................................................................................24
Dlaczego opaca si rozwija pomysy? ......................................................................................25
Rozdzia 2. O co Rytaia Oudzie sukcesuy ................................................ 27
Kogo pyta? .................................................................................................................................28
Ilu ludzi trzeba przebada? ..........................................................................................................29
Etyka ............................................................................................................................................30
Zadanie dla profesjonalisty? ........................................................................................................30
Tworzenie kwestionariusza .........................................................................................................31
Jaka moe by cena? ................................................................................................................31
Moliwoci sprzeday .............................................................................................................32
Konkurencja .............................................................................................................................32
Informacje o firmie ..................................................................................................................33
Trudne pytania .........................................................................................................................33
Typy pyta ...................................................................................................................................33
Pytania otwarte ........................................................................................................................34
Pytania zamknite ....................................................................................................................34
Pytania porwnawcze ..............................................................................................................34
Pytania nieporwnawcze .........................................................................................................34
Skala Likerta ............................................................................................................................35
Badanie pilotaowe ......................................................................................................................35

Sprzedaj swj software

Metody kontaktu ......................................................................................................................... 36


Wywiady bezporednie ........................................................................................................... 37
Z kim si kontaktowa? .......................................................................................................... 38
Jak interpretowa wyniki? .......................................................................................................... 39
Jakie cechy powinien mie nowy program? ........................................................................... 39
Gdzie taki produkt powinien by sprzedawany? .................................................................... 40
Czy znasz jakie podobne produkty? ...................................................................................... 40
Jaka bdzie wielko sprzeday? ............................................................................................ 41
Respondenci jako przyszli klienci .......................................................................................... 41
Podsumowanie ............................................................................................................................ 42
Przykadowy kwestionariusz ...................................................................................................... 42
Rozdzia 3. iOad sukcesu .........................................................................45
Zwikszanie swoich szans .......................................................................................................... 46
Planowanie zabiera czas, a jednoczenie go oszczdza .......................................................... 46
Myl wstecz ............................................................................................................................ 47
Konsultacje z potencjalnymi uytkownikami ......................................................................... 48
Przewidywanie cyklu sprzeday ............................................................................................. 49
Tworzenie planu .......................................................................................................................... 50
Rnica midzy idealnym a skoczonym ............................................................................... 52
Ujednolicony plan realizacji ................................................................................................... 52
Jak realizowa projekty w terminie? ...................................................................................... 55
Gromadzenie apostow .......................................................................................................... 56
Planowanie .............................................................................................................................. 62
Rozdzia 4. Chc tu Rracowa. ................................................................63
Ludzie .......................................................................................................................................... 63
Podkrelanie etosu firmy ............................................................................................................. 64
Wsplny jzyk ............................................................................................................................. 65
Zebrania .................................................................................................................................. 65
Obieg informacji ..................................................................................................................... 66
rodowiska pracy ........................................................................................................................ 66
Relacje z pracownikami .............................................................................................................. 68
Dzielenie si sukcesem ............................................................................................................... 69
Stabilno firmy .......................................................................................................................... 70
Uwalnianie ludzkiego ducha ....................................................................................................... 71
Rozdzia 5. Gromadzedie irodkzw .........................................................73
Porada .......................................................................................................................................... 74
Pienidze ..................................................................................................................................... 74
Pienidze, ktre bdziesz musia zwrci osobicie ............................................................... 75
Pienidze, ktre bdzie musiaa spaci firma ........................................................................ 77
Pienidze zainwestowane w firm .......................................................................................... 77
Biznesplan ................................................................................................................................... 79
Zesp zarzdzajcy ................................................................................................................ 80
Szansa ...................................................................................................................................... 80
Okolicznoci ........................................................................................................................... 81
Struktura .................................................................................................................................. 82
Streszczenie ............................................................................................................................. 83

Spis treci

Sprzedaj pomys w windzie .....................................................................................................83


Niepubliczna emisja pierwotna ...............................................................................................83
Czy warto ubiega si o kapita wysokiego ryzyka? ...............................................................84
Pomoc w naturze ......................................................................................................................84
Zrb to sam ..............................................................................................................................84
Rozdzia 6. irodukcia oRrodramowadia ............................................... 87
Ludzie ..........................................................................................................................................88
Zdobywanie odpowiednich ludzi .............................................................................................88
Zabezpiecz si ..........................................................................................................................93
Mae jest pikne .......................................................................................................................93
Proces ...........................................................................................................................................94
Negocjowanie zmian ...................................................................................................................95
Z dala od problemw ...................................................................................................................95
Zarzdzanie ryzykiem ..............................................................................................................95
Zapas czasu i pienidzy ...........................................................................................................96
Likwidowanie czynnikw rozpraszajcych .............................................................................97
Projekty zlecone ....................................................................................................................104
Wiedzie, kiedy skoczy .....................................................................................................108
Lista kontrolna ...........................................................................................................................108
Rozdzia 7. Jak die wywaRa. otwartych drzwiy ................................. 111
Cel ..............................................................................................................................................112
Myl, dyskutuj, uzgadniaj ..........................................................................................................113
Gwne obszary zastosowania komponentw ...........................................................................114
Szukanie pakietw komponentw .............................................................................................114
Im szersze zastosowanie, tym wiksze korzyci .......................................................................116
Pamitaj, e wiat si zmienia ...................................................................................................116
Programowanie wieloplatformowe ............................................................................................117
Rozdzia 8. irodramowadie ez zdryzoty ........................................... 119
Czy masz dowiadczenie? .........................................................................................................119
Strategia .....................................................................................................................................120
Budowanie zespou ....................................................................................................................121
Wybr odpowiednich ludzi ...................................................................................................121
Rekrutacja ..............................................................................................................................121
Rozmowy kwalifikacyjne ......................................................................................................123
Motywowanie pracownikw .................................................................................................125
Struktura pac .........................................................................................................................125
Wyposaenie ..........................................................................................................................126
Szkolenie ................................................................................................................................127
Planowanie i rozdzielanie pracy ................................................................................................127
Kontrola i komunikacja .........................................................................................................127
Biurowe intrygi ......................................................................................................................128
Zwolnienia .............................................................................................................................128
Redukcje ................................................................................................................................129
Pracujcy zdalnie ...................................................................................................................129
Awanse ..................................................................................................................................130
Poznaj siebie i swoich ludzi ...................................................................................................130
Utrzymywanie zespou ..........................................................................................................130

Sprzedaj swj software

Rozdzia 9. Wczesda eOimidacia dzw ...............................................133


Obsesja jakoci .......................................................................................................................... 134
Jak podej do kwestii jakoci? ................................................................................................ 135
Jak klasyfikowa bdy? ........................................................................................................... 135
Jak mierzy jako? .................................................................................................................. 136
Poprawno ........................................................................................................................... 137
Niezawodno ....................................................................................................................... 137
Wydajno ............................................................................................................................. 138
Integralno ........................................................................................................................... 138
Uyteczno .......................................................................................................................... 138
Utrzymywalno ................................................................................................................... 139
Elastyczno .......................................................................................................................... 139
Testowalno ......................................................................................................................... 139
Przenono ........................................................................................................................... 139
Moliwo wielokrotnego zastosowania .............................................................................. 140
Interoperacyjno .................................................................................................................. 141
Kwantyfikatory jakoci to po prostu wskaniki ....................................................................... 141
Jak mierzy jako? .................................................................................................................. 141
Charakterystyka funkcjonalna .................................................................................................. 142
Punkty funkcyjne .................................................................................................................. 142
Metoda Mark II ..................................................................................................................... 143
Punkty charakterystyczne ..................................................................................................... 143
Metryka wybuchowa ............................................................................................................. 144
Punkty charakterystyczne 3D ............................................................................................... 144
COCOMO ............................................................................................................................. 144
Bdy ......................................................................................................................................... 144
Kontrola wersji .......................................................................................................................... 145
Klasyfikacja .............................................................................................................................. 145
Dugo ................................................................................................................................. 145
Liczba i rozmiar bdw ....................................................................................................... 146
Metryka gstoci bdw ...................................................................................................... 146
Dalsza klasyfikacja ............................................................................................................... 146
Jak z gry minimalizowa liczb bdw? ............................................................................... 147
Przeczesz swoje plany techniczne gstym grzebieniem ....................................................... 147
Podziel duy projekt na etapy ............................................................................................... 148
Bazuj na codziennych konsolidacjach .................................................................................. 148
Utwrz dobre rodowisko dla komunikacji .......................................................................... 148
Testowanie ................................................................................................................................ 148
Procedura .............................................................................................................................. 149
Plan testw ............................................................................................................................ 149
Testy autorskie ...................................................................................................................... 149
Sprzt do testowania ............................................................................................................. 150
Testy wewntrzne (nieformalne) .......................................................................................... 150
Wsplne programowanie (nieformalny codzienny nadzr) ................................................. 150
Kontrola zewntrzna ............................................................................................................. 150
Testy konsumenckie .............................................................................................................. 151
Jak najwczeniejsze rozpoczcie beta-testw ....................................................................... 151
Monitorowanie funkcjonalnoci ........................................................................................... 151

Spis treci

Kryteria publikacji .................................................................................................................152


Zakoczenie testw ...............................................................................................................152
Ty, jako i prawo ......................................................................................................................153
Rozdzia 10. ORacaOde sowa ............................................................... 155
Wskazwki instalacyjne ............................................................................................................157
Podrczniki i systemy pomocy ..................................................................................................158
Zamiast drukowania ...................................................................................................................158
Podejcie alfabetyczne ...........................................................................................................160
Podejcie funkcjonalne ..........................................................................................................160
Podejcie zadaniowe ..............................................................................................................160
Czy wszystko zostao opisane? ..................................................................................................160
Nie zapomnij o udokumentowaniu samego programu ..............................................................161
Kilka oglnych wskazwek na temat pisania ............................................................................161
Ukad tekstu ...........................................................................................................................163
Obraz suy za tysice sw ...................................................................................................164
Drobiazgi s wane ................................................................................................................164
Kiedy ju napiszemy... ...............................................................................................................164
Rozdzia 11. Zadim Rowiesz Rtart a
Rroces Ru Oikacii .................. 165
Publikacja oprogramowania obejmuje wszystko ......................................................................166
Odliczanie ..................................................................................................................................167
Typy premier i stosowne dziaania ............................................................................................169
Nowe produkty ......................................................................................................................169
Nowe wersje ..........................................................................................................................169
Aktualizacja pomidzy nowymi wersjami ............................................................................170
Nowe podwersje ....................................................................................................................170
Problemy zwizane z publikacj ...............................................................................................170
Planowanie dat premier .........................................................................................................170
Wybr dnia premiery .............................................................................................................171
Czy zote pyty s tylko dla gwiazd muzyki? ........................................................................172
Udostpnianie oprogramowania na stronie internetowej ......................................................172
Kto nad tym panuje? ..............................................................................................................172
Wstrzymywanie procesu publikacji ......................................................................................172
Co robi, jeeli w czasie publikacji wystpi powane problemy? ......................................173
Szukanie winnych w niczym nie pomaga .............................................................................174
Rozdzia 12. Zakadadie airmy .............................................................. 175
Uniwersalne rozwizanie? .........................................................................................................175
Dlaczego firma? .........................................................................................................................176
Plusy ......................................................................................................................................176
Minusy ...................................................................................................................................176
Zanim zaoymy firm ...........................................................................................................177
Sowniczek firmowy ..............................................................................................................178
Ile kosztuje zaoenie spki kapitaowej? ............................................................................180
Profesjonalni doradcy ............................................................................................................180
Podstawowe informacje o zakadaniu firmy .............................................................................182
Kto moe zaoy firm? .......................................................................................................182
Kapita zakadowy .................................................................................................................182

Sprzedaj swj software

Co dalej? ............................................................................................................................... 184


Ilu czonkw zarzdu? .......................................................................................................... 185
Udziay i kontrola nad spk ............................................................................................... 185
Odpowiedzialno spki .......................................................................................................... 186
Odpowiedzialno czonkw zarzdu ................................................................................... 186
Odpowiedzialno administratora spki lub sekretarza zarzdu ......................................... 187
Prowadzenie ksigowoci ..................................................................................................... 188
Rozdzia 13. Wyzdaczadie ced ..............................................................191
Teoria cen .................................................................................................................................. 191
Wyznaczanie odpowiedniej ceny .............................................................................................. 192
Jaki jest rzeczywisty koszt stworzenia programu? ............................................................... 192
Rozmiar rynku ...................................................................................................................... 193
Jak cen rynek moe i chce zapaci? ..................................................................................... 194
Bezporednia konkurencja .................................................................................................... 194
Ceny produktw podobnych ................................................................................................. 195
Korzyci, jakie odnosi uytkownik ....................................................................................... 195
Jakich oczekujesz zyskw? ................................................................................................... 196
Pozytywny wpyw reklamy i dziaa PR .................................................................................. 196
Jak produkty towarzyszce mog zwikszy zyski? ................................................................ 197
Przedziay cen ........................................................................................................................... 198
Nigdy nie sprzedawaj zbyt tanio ............................................................................................... 198
Inne sposoby osigania przychodw ........................................................................................ 199
Masa krytyczna ......................................................................................................................... 200
Udzia w rynku ma cisy zwizek z cen ................................................................................ 200
Sedno ......................................................................................................................................... 201
Rozdzia 14. iromowadie Rroduktu .....................................................203
Marketing .................................................................................................................................. 203
Pisanie planu marketingowego ............................................................................................. 205
Co takiego jest w nazwie? ..................................................................................................... 206
Marka .................................................................................................................................... 206
Tworzenie wizerunku firmy .................................................................................................. 208
Komunikowanie si z opini publiczn ................................................................................ 217
Reklama .................................................................................................................................... 218
Drobna rada ........................................................................................................................... 218
Chciaby, ale nie moesz ..................................................................................................... 219
Reklama jest bardzo uniwersalna ......................................................................................... 219
Wybr mediw ...................................................................................................................... 220
Operowanie maymi budetami ............................................................................................ 220
Targi ...................................................................................................................................... 226
Dziaania public relations ......................................................................................................... 226
Imprezy ................................................................................................................................. 228
Testowe wersje oprogramowania dla dziennikarzy .............................................................. 228
Wybieranie rynku .................................................................................................................. 229
Pozycjonowanie produktu w sposb zrozumiay ................................................................. 230
Wykorzystaj swoje zalety ..................................................................................................... 231

Spis treci

Inne moliwoci poza sprzeda ...............................................................................................231


Shareware ..............................................................................................................................231
Adware ...................................................................................................................................232
Upgrade Ware ........................................................................................................................232
Certyfikacja innego producenta .............................................................................................232
Darmowe oprogramowanie ...................................................................................................232
Konkursy ................................................................................................................................233
Kilka wskazwek na zakoczenie .........................................................................................233
Rozdzia 15. RRrzedaR da duRa skaO .................................................... 235
Poznajmy uczestnikw gry ........................................................................................................236
Producent ...............................................................................................................................236
Dystrybutorzy ........................................................................................................................237
Dystrybutorzy internetowi .....................................................................................................238
Detalici .................................................................................................................................238
Uytkownik ............................................................................................................................239
Midzynarodowi dystrybutorzy .............................................................................................239
Due sieci detaliczne .............................................................................................................239
Regionalne biura sprzeday ...................................................................................................239
Przedstawiciele handlowi ......................................................................................................240
Marketing wielopoziomowy ..................................................................................................240
Modele dystrybucji ....................................................................................................................240
Sprzeda bezporednia ..........................................................................................................241
Dystrybucja dwuwzowa ......................................................................................................241
Dystrybucja trjwzowa .......................................................................................................242
Dystrybucja midzynarodowa ...............................................................................................242
Dystrybucja wielopoziomowa ...............................................................................................242
Sprzeda poprzez inne firmy .................................................................................................244
Wybieranie dystrybutorw i detalistw .....................................................................................244
Mare .....................................................................................................................................246
Warunki .................................................................................................................................246
Podzia obowizkw ..............................................................................................................247
Procedury dystrybucyjne .......................................................................................................247
Zarzdzanie dystrybucj ........................................................................................................250
Czy dystrybutorw i detalistw czeka mier? .....................................................................252
Rozdzia 16. Rkuteczda sRrzedaR ......................................................... 255
Istota sprzeday .........................................................................................................................255
Czym tak naprawd jest sprzeda? ........................................................................................256
Koszty sprzeday ...................................................................................................................256
Jak podej do sprzeday? .........................................................................................................258
Tok rozumowania klientw ...................................................................................................259
Dlaczego relacje z klientami s wane ..................................................................................260
Podobiestwa skali ................................................................................................................261
Marketing wirusowy ..............................................................................................................262
Toczenie krwi z kamienia ......................................................................................................262
Zarzdzanie zespoem handlowcw ......................................................................................263
Bazowanie na danych ............................................................................................................263

10

Sprzedaj swj software

Analiza sprzeday ................................................................................................................. 264


Zespoy handlowcw ............................................................................................................ 265
Po czym pozna potencjalnie dobrego handlowca? ............................................................. 265
Nagrody i historie z przestrog ............................................................................................. 266
Szkolenie ................................................................................................................................... 268
Akwizycja przez telefon ....................................................................................................... 269
Programy mog odcia od rutynowych prac ..................................................................... 270
Wizyty u klienta .................................................................................................................... 270
Prezentacje ............................................................................................................................ 272
Kupowanie lub gromadzenie wasnych kontaktw .............................................................. 272
Klienci, ktrzy ulegaj .......................................................................................................... 273
Powani potencjalni klienci .................................................................................................. 273
Monitorowanie sprzeday ..................................................................................................... 274
Sortowanie klientw pod wzgldem wanoci ..................................................................... 274
Sprzedawanie poprzez handlowcw z innych firm .............................................................. 275
Relacje z klientami ................................................................................................................ 276
Budowanie dynamiki klienta ................................................................................................ 277
Sprzeda za porednictwem strony internetowej ...................................................................... 277
Co musi znale si na stronie? ............................................................................................ 278
Przetwarzanie zamwie elektronicznych ............................................................................ 282
Obsuga opnie i zwrotw ................................................................................................ 284
Rozdzia 17. Jak utrzyma. kOiedtzwy ...................................................285
Co daje wsparcie? ..................................................................................................................... 285
Punkt widzenia klientw ........................................................................................................... 286
Wasne moliwoci ................................................................................................................... 286
Brak wsparcia ........................................................................................................................ 287
System pomocy ..................................................................................................................... 287
E-mail .................................................................................................................................... 287
Grupy dyskusyjne ................................................................................................................. 288
Strony internetowe ................................................................................................................ 289
Telefon i wideotelefon .......................................................................................................... 289
Wizyty u klienta .................................................................................................................... 289
Organizacja wsparcia ................................................................................................................ 290
Koszty ....................................................................................................................................... 290
Pracownicy wsparcia ................................................................................................................ 291
Kiedy naley uruchomi wsparcie? ...................................................................................... 291
Na co zwraca uwag, wybierajc pracownikw do zespou wsparcia ................................ 291
Kiedy kupi wsparcie od innej firmy? .................................................................................. 291
Szkolenie pracownikw wsparcia ......................................................................................... 291
Angaowanie programistw ................................................................................................. 294
Mierzenie wsparcia ................................................................................................................... 294
Pobieranie opat za wsparcie ..................................................................................................... 295
Dbanie o dobre samopoczucie klienta ...................................................................................... 296
Korzystanie z opinii klientw ................................................................................................... 296

Spis treci

11

Rozdzia 18. Ratowadie todacedo statku ............................................ 299


Ta druga zota regua .................................................................................................................299
Rachunki bankowe .....................................................................................................................301
Systemy finansowo-ksigowe ...................................................................................................301
Karty kredytowe ....................................................................................................................302
Oszustwa dokonywane za pomoc kart kredytowych ...........................................................302
Korzystanie z usug porednikw ..........................................................................................303
Fakturowanie i terminy patnoci ..........................................................................................303
Kontrola patnoci ..................................................................................................................304
Kryzysy to rzecz normalna ........................................................................................................305
Dostrzeganie wczesnych sygnaw ostrzegawczych .............................................................306
Przetrwaj te firmy, ktre zareaguj wczeniej .....................................................................306
Prognozowanie ..........................................................................................................................307
Pacenie dostawcom ...................................................................................................................310
Jak wydawa pienidze? ............................................................................................................310
Rozdzia 19. Zarzadzadie wzrostem .................................................... 313
Sukces odsiewa kule u nogi od gwiazd .....................................................................................313
Wybieranie nastpnego celu ......................................................................................................314
Wyciganie wnioskw z wasnego sukcesu ..............................................................................315
Prawdziwym czynnikiem napdzajcym wzrost s ludzie ........................................................316
Zarzd ........................................................................................................................................317
Zmiana biura bez zmiany porzdku ...........................................................................................319
Rozkrcanie sprzeday ..............................................................................................................320
Ekspansja zagraniczna ...............................................................................................................321
Finansowanie .............................................................................................................................322
Wnioski ......................................................................................................................................322
Rozdzia 20. Gotowoi. da daOsze sukcesy ........................................... 323
Pouczajca opowie .................................................................................................................323
Zbyt pikne, by byo prawdziwe? ..............................................................................................326
Czy wysali odpowiedni osob? ..........................................................................................326
Czy maj sensowny powd zakupu? .....................................................................................327
Jak rozpozna konia trojaskiego? ........................................................................................328
Kiedy samemu wykona pierwszy krok? ..................................................................................328
Jak prowadzi firm i jednoczenie j sprzedawa? .................................................................329
Zarys umowy .........................................................................................................................329
Kopotliwo ..........................................................................................................................330
Gotowo ...............................................................................................................................330
Wycena firmy ........................................................................................................................332
Jak zmaksymalizowa warto firmy? ..................................................................................333
Umowa ...................................................................................................................................333
Transakcja ..............................................................................................................................333

12

Sprzedaj swj software

Dodatek A ORtymaOizacia strody Rod katem wyszukiwarek


(czyOi zwycizca zdardia wszystko) ......................................................335
Krok 1. Poznaj potencjalnych uytkownikw strony ............................................................... 336
Krok 2. Opanuj podstawy HTML-a .......................................................................................... 337
Krok 3. Wybr wyszukiwarek .................................................................................................. 337
Krok 4. Uczy stron przyjazn dla wyszukiwarek ................................................................. 339
Z ramkami czy bez? .............................................................................................................. 340
Strony statyczne czy dynamiczne? ....................................................................................... 340
Krok 5. Przygotowywanie listy sw kluczowych .................................................................... 341
Kilka zasad stosowania sw kluczowych ............................................................................ 343
Krok 6. Indeksowanie strony .................................................................................................... 343
Element Meta Name="Keywords" ....................................................................................... 344
Tytuy .................................................................................................................................... 344
Strony przygotowywane dla wyszukiwarek ......................................................................... 345
Im wicej czy, tym lepiej ................................................................................................... 345
Upraszczanie adresu .............................................................................................................. 346
Nie zmieniajmy adresw URL .............................................................................................. 347
Inne przydatne metaparametry .............................................................................................. 347
Opis i tytu strony .................................................................................................................. 347
Zamieszczanie na stronie opinii o produkcie ........................................................................ 348
Dodawanie grafiki i animacji ................................................................................................ 348
Pamitaj o osobach z wadami wzroku i suchu .................................................................... 348
Krok 7. Zgaszamy stron i monitorujemy efekty .................................................................... 349
Bd realist .............................................................................................................................. 350
Rkorowidz ..............................................................................................351

By moe nie wiesz jeszcze, co przesdza o sukcesie w dziedzinie produkcji oprogramowania, ale wiesz ju, co rodzi problemy:
t

Niedokoczone plany.

Mgliste cele.

Trywializacja procesu planowania.

Nierealne terminy.

Niewystarczajce rodki.

Zbyt dugie lub zbyt krtkie cykle produkcyjne.

Nieodpowiedni ludzie w zespole.

Brak prawdziwego wsparcia z gry.

Mimo tak wielkiej wagi planowania i gromadzenia funduszy to wanie produkcja oprogramowania jest etapem, na ktrym firma programistyczna przeksztaca swoje marzenia
w rzeczywisto. Produkcja oprogramowania to jego pisanie i zarzdzanie tym pisaniem.
Nie moe dziaa, jeeli harmonogramy, ludzie i techniki nie zostay ze sob zgrane.
Przemylany plan o odpowiedniej strukturze znacznie uproci proces produkcji. Po
szczegowym okreleniu zasobw, kolejnoci i kluczowych etapw moliwe jest posuwanie si na przd z w miar sta prdkoci. Nie trzeba podejmowa krytycznych
decyzji w poowie drogi.
Bywa jednak, e najprostszy fragment kodu moe okaza si najbardziej skomplikowanym. Podobnie moe by z produkcj. Jak nakazuj reguy, musimy jednoczenie kontrolowa cztery sprawy: ludzi, produkt, projekty i proces. Niniejszy rozdzia to praktyczna szkka onglowania czterema pikami. Na szczcie, jeeli bdziesz postpowa
zgodnie z zasadami opisanymi dotychczas w tej ksice, wikszo pracy bdziesz mia
ju za sob.

88

Sprzedaj swj software

Wszystkie opisane wczeniej stanowiska sprowadzaj si do tylko dwch fundamentalnych


rl: zarzdzania i produkowania. Pierwsza rola to administrowanie procesem, a druga to
wykonywanie pracy. Nazwy konkretnych stanowisk rni si w zalenoci od skali
dziaalnoci. Stosowana terminologia te bywa rna w rnych firmach. Obowizujce
obecnie przykadowe nazwy stanowisk zwizanych z zarzdzaniem to:
t

menederowie projektu,

dyrektorzy ds. technicznych,

technolodzy,

architekci,

wiceprezes ds. technicznych.

Odpowiedniki po stronie programistw to:


t

starsi programici (senior developer),

programici,

testerzy,

twrcy dokumentacji.

Moliwe jest jednoczesne penienie funkcji zarzdczej i programistycznej przez jedn


osob albo zajmowanie si wicej ni jednym obszarem zadaniowym. Jednak rzadko
zdarza si informatyk biegy w zarzdzaniu i odwrotnie menederowie s najczciej
marnymi programistami, chyba e maj do due dowiadczenie w tym zakresie. Podchod wic realistycznie do swoich umiejtnoci. Nie porywaj si z motyk na soce.

ZdobZdobywaodeodywdbyeZaobdwy
W kadym projekcie programistycznym czas jest na wag zota. Ostatni rzecz, na jak
moesz sobie pozwoli, jest zatrudnienie ludzi, ktrzy bd go marnowa. W pierwszej
kolejnoci powiniene szuka osb, ktre znaj si na danym typie aplikacji i wszelkich
kwestiach z ni zwizanych. Jeeli wic tworzysz program do projektowania, to kandydaci, ktrzy pracowali przy programach graficznych albo byli szkoleni w tym kierunku,
s zesacami niebios. Jeeli tworzone przez Ciebie oprogramowanie wymaga szczeglnych
kompetencji, musisz zatrudni kandydata z odpowiednim dowiadczeniem.
Osoby takie mog wnie gbok znajomo aplikacji i rozwiza programistycznych,
na ktre kto nieobeznany nigdy sam by nie wpad. Ich dowiadczenie nie tylko tworzy
fundament do rozwizywania problemw technicznych, ale take pozwala pisa kod
w taki sposb, jakiego oczekuje klient. W ten sposb mona unikn znacznych poprawek
w przyszoci. W innym bowiem razie wydawca oprogramowania bdzie musia przekona klientw do pracy w programie odstajcym od pewnych norm. Kiedy programici
znaj dziedzin, w ktrej aplikacja bdzie zastosowana, rwnie o wiele atwiej implementowa usprawnienia dla klientw i odrzuca sugestie, ktre nie daj ostatecznym uytkownikom adnej realnej korzyci.

Rozdzia 6. t Produkcja oprogramowania

89

Jeeli z pocztku nie jeste w stanie zebra zaogi takiego kalibru i z takim dowiadczeniem,
na jakie zasuguje projekt, bd wytrway. Nie ruszaj z realizacj, dopki jej nie znajdziesz. Zawsze lepiej poczeka, a dostpni bd lepsi, ni prbowa zaczyna z osobami
niekompetentnymi. Kady zatrudniony powinien rozumie, do czego suy produkt i dlaczego jest potrzebny. Jeeli jaka osoba nie widzi sensu istnienia takiego produktu albo
nie akceptuje go ze strony etycznej lub emocjonalnej, zapraszanie jej do zespou mogoby
by dla niej krzywdzce.
Zatrudniajc poszczeglne osoby, zwracaj uwag, by inwestowa pienidze tam, gdzie
wymagaj tego Twoje potrzeby.

MenedeMenMder p
Ju od wczesnego etapu potrzebni s ludzie, ktrzy czuwaliby nad pracami zespou i meneder projektu jest oczywicie tak osob. Meneder projektu jest staym ordownikiem produktu. Jego zadaniem jest nadzr nad pisaniem kodu i budowaniem programu,
tak by zgadza si ze specyfikacj co do natury i treci. W firmie bdcej u progu powstania zwykle rol t bierze na siebie szef marketingu.
Dobry meneder projektu to najlepsza gwarancja terminowoci realizacji. Osoba ta bdzie
wiedziaa, jak zarzdza projektem i tworzy harmonogramy realizacji. Oprcz wasnego
wkadu w pisanie kodu w razie potrzeby pomoe i doradzi programistom w sprawie nowych podej i technik. Co rwnie wane, meneder projektu sprawi, e wszyscy skupi
si na tej samej wizji i powstanie mniej niepotrzebnego kodu.
Meneder projektu nosi w sobie ca mdro o tym, do czego suy produkt, jak trzeba
go napisa i dlaczego jest taki wany. Interpretuje firmow wizj produktu na potrzeby
programistw w odniesieniu do kompozycji ekranw, komunikatw ekranowych oraz
umieszczania logotypu firmy lub produktu. Poza tym pilnuje, by z pokoju programisty
wychodziy tylko autoryzowane wersje kodu.
Niektre firmy wierz, nie bez powodu, e co bardziej delikatne kwestie tej roli powinny
zosta przejte przez dowiadczon osob, ktra nie jest bezporednio zaangaowana
w codzienny proces pisania kodu. Osoba ta moe zajmowa si rwnie nadzorowaniem
beta-testw.
To, jak osob moesz przycign, w duej mierze zaley od rozmiaru Twojej organizacji
i tego, co jeste w stanie zaoferowa. Poza tym zaley od nieograniczonych szans i nagrd
zwizanych z tak prac.

PdeczPoendzn peddPMecdeoenedeM enMder pz


Kady wartociowy meneder projektu powinien potrafi przeanalizowa projekt, zaplanowa jego realizacj, doda co od siebie i dba, by wszyscy byli skoncentrowani i zadowoleni. Meneder projektu powinien by czonkiem zespou i nie stawia si ponad nim.
Aby speni te wymagania, menederowie projektu musz gra na obie strony. Musz
zna i rozumie proces produkcji oprogramowania (w innym razie nie bd w stanie
pomc programistom), a jednoczenie musz by dobrymi zarzdcami. Co prawda, czsto

90

Sprzedaj swj software

wspomina si o niewyczerpanej energii, umiejtnoci rozumienia bez sw i takiej umiejtnoci motywowania, ktra poprowadziaby mrwki na Mount Everest, ale oto lista najwaniejszych cech, ktrych naley szuka:
t

Zorganizowanie.

Umiejtno rozwizywania problemw.

Pozostawanie w staym kontakcie.

Odpowiednie podejcie do ludzi.

Kady dobry meneder techniczny, niezalenie od szczebla, musi by kim wicej ni


teoretykiem. Bardzo wane jest due praktyczne dowiadczenie z technologiami, jakie
musi stosowa. Tylko dziki pracy w roli programisty moe zna wszystkie triki i puapki. Zarzdczy aspekt tej pracy wymaga wyuczonych umiejtnoci oraz naturalnych
zdolnoci. Naley do nich dowiadczenie w ocenianiu postpu robt zespou i negocjacjach. Ci, ktrzy s dobrzy w koncepcyjnym i strategicznym myleniu, s naturalnymi
przywdcami, pod warunkiem e potrafi si sprawnie komunikowa.
By moe zaskakujce jest to, e sabi menederowie projektw rzadko s dokadnym
przeciwiestwem dobrych. Mao prawdopodobne, e bdzie to osoba opryskliwa
i niezorganizowana.

Sabi menederowie projektw czsto wypadaj dobrze na rozmowach (inaczej nikt by


ich nie zatrudni w tej roli), ale kiedy zaczynaj pracowa, ich niedoskonaoci szybko
si ujawniaj. Na pocztku, o ile plan zosta dobrze skonstruowany, projekt bdzie toczy si w zasadzie sam. Menedera projektu, ktry straci grunt pod nogami, dostrzeesz dopiero wtedy, gdy zaczn si problemy. Zwykle wtedy wanie okae si, e nie
potrafi on radzi sobie dobrze z ludmi. e szuka winnych zamiast rozwizywa problem. Organizacja zaczyna na to reagowa i komunikacja staje si rozluniona lub niewyrana. Ludzie zaczynaj ukrywa swoje problemy. Meneder projektu, ktry jedynie
reaguje, najczciej ponosi porak.
Jeeli okae si, e masz sabego menedera projektu i musisz bardzo szybko go
zmieni, czsto najlepszym rozwizaniem jest tymczasowe promowanie na to stanowisko
starszego programisty, ktry bdzie zna projekt i wiedzia, co jest do zrobienia. Zapewnij
mu jakie zaplecze administracyjne, aby mg wykonywa obydwa zadania. Rzadko
jest to dobre rozwizanie na dusz met, ale daje czas na znalezienie zastpcy.

Dwadziecia lat temu rzadko kto spord zaangaowanych w projekty programistyczne


mia dowiadczenie w zarzdzaniu projektami. Dzi tak wielu ludzi przeszo przez ten
myn, e nawet mae firmy czsto s profesjonalnie zarzdzane przez ludzi, ktrzy zaczynali pracowa jako zwykli programici. Pytanie nie brzmi wic, czy moesz jednoczenie zarzdza i pisa kod, ale czy powiniene robi obie te rzeczy na raz. Odpowied brzmi: raczej nie, o ile masz tak moliwo.

PMdcM oici
Im bardziej wymagajce jest zadanie do wykonania, tym waniejsze jest posiadanie dobrych programistw. Gdyby szuka dobrego architekta, inyniera lub projektanta, zwracaby wiksz uwag na to, co zrobili, ni na to, co mwi. Takie podejcie sprawdza

Rozdzia 6. t Produkcja oprogramowania

91

si rwnie w odniesieniu do programistw. Przyjrzyj si ostatnim projektom, jakie realizowa kandydat na programist, wybierz fragmenty kodu i popro o ich objanienie. Sabi
programici mog pooy cay projekt, jeeli wic programista nie przejawia faktycznie tych umiejtnoci, jakie deklaruje, zdaj si na instynkt i odrzu go.
Jeeli zatrudnisz niekompetentnego programist (a wielu z nas to si zdarzyo), otrzymasz bezuyteczny kod, atmosfera w zespole si pogorszy, stracisz czas, a budet rozleci si w py. Jedyne co moesz zrobi, to jak najszybciej pokaza takiej osobie drzwi,
a kod, ktry napisaa, przepuci przez niszczark. Jeeli trafisz na dobrego programist,
bdziesz o tym wiedzie. Podobnie reszta zespou.
Jeeli wybierajc programist, przy podejmowaniu decyzji bierzesz pod uwag,
jaki jest w obyciu, jeste na dobrej drodze do klski.

Oto sygnay wiadczce o tym, e programista moe nie by tak kompetentny, jak twierdzi:
t

Twierdzi, e odpowiedzi zwykle pojawiaj si same w czasie pisania kodu.

Sprawiaj mu problemy zadania, ktre wydaj si proste.

Jego praca jest sabo udokumentowana.

Wolno si uczy.

Bdami woli zaj si pniej.

Nie potrafi poda zadowalajcych wyjanie.

Elokwencj maskuje saboci swojej pracy.

Nigdy nie przyznaje si do bdw.

Pisze kod bardzo wolno.

Jego kod regularnie nie przechodzi kontroli jakoci.

Mimo panujcego mitu, e dobrzy programici to komputerowi maniacy, z ktrymi nie


mona si porozumie, zwykle jest zupenie odwrotnie. Dziki wysoce rozwinitym zdolnociom analitycznym posiadaj oni umiejtno przekazywania skomplikowanych idei
w prosty sposb oraz rozwaania problemw z wielu rnych perspektyw. Dobrzy programici maj nastpujce cechy:
t

Maj niezwyk umiejtno strukturalnego planowania.

Pracuj szybko.

Systematycznie dokumentuj postpy.

Zanim zaczn pisa, maj gotowe rozwizanie.

Ich wizja jest oparta na wiedzy.

Usuwaj bdy na bieco.

Rzadko musz poprawia swj kod.

92

Sprzedaj swj software


t

Troszcz si o jako swojego kodu.

Wiedz z dowiadczenia, kiedy mona zaryzykowa.

Robi to, co do nich naley.

Tabela 6.1 przedstawia stanowiska, jakie powiniene obsadzi w zalenoci od wielkoci


firmy.
Tabela 6.1. Stanowiska do obsadzenia a wielko firmy
Rozmiar firmy Programici Menederowie CTO/technolodzy
projektu

Kierownik
produkcji

Podwykonawcy

jednoosobowa

tak (Ty sam)

2 12 (maa)

tak

by moe

2 12

tak

by moe

raczej tak

18 30 (rednia) tak

tak

tak (jeden albo


drugi)

prawdopodobnie

40 1000 (dua) tak

tak

tak

tak

prawdopodobnie

1000 +
(korporacja)

tak

kilku

tak

prawdopodobnie

tak

by moe
by moe

ndoiir erieMdonicze

Brana IT zapoyczya stanowisko chief technical officer (CTO) od brany badawczej pod
koniec lat 70. W tym samym czasie obszar technologii informatycznych znacznie si rozszerzy w miar pojawiania si nowych produktw, pomysw i dyscyplin. To spowodowao, e osobie odpowiedzialnej za projekt coraz trudniej byo ogarn wszystkie
aspekty programowania. W konsekwencji rola CTO ograniczya si do obserwacji. Jego
podstawowym zadaniem jest zdobywanie wiedzy na temat produktw i technologii, jakie
pojawiaj si na horyzoncie, i okrelanie stawianych przez nie wymaga.
Jak wspomniano w rozdziale 5., inwestorzy ceni wybitnych ekspertw technicznych
w firmie, w ktr planuj zainwestowa. Ich zdaniem firmy, ktrymi kieruje ekspert
techniczny, demonstruj wizj i wiadomo wagi najnowszej technologii.
Dobrzy CTO to rzadko, poniewa osoba taka musi rozumie teraniejszo i przewidywa przyszo. Z drugiej strony, zatrudnianie kogo takiego w penym wymiarze nie
musi by konieczne. Szukaj osoby z dobr praktyczn znajomoci technologii, jakie
maj by stosowane w programie, oraz konsekwencji ich stosowania. Kto taki powinien umie poprowadzi Ci przez te obszary nowoczesnych technologii, w ktrych
sam masz ograniczon wiedz. Powinien rwnie pomc wykorzysta te techniki, ktre
dopiero poznae.

Rozdzia 6. t Produkcja oprogramowania

93

CEOeEncineeMinc
W duych projektach stanowisko to czsto obejmuje wana osoba, ktra nadzoruje infrastruktur techniczn komponentw dla zachowania wewntrznej zgodnoci.

KieMdonirenMddprci
Kierownikw produkcji mona zwykle spotka w organizacjach, ktre pracuj jednoczenie nad kilkoma programami. Zwykle podlegaj szefowi wydziau lub dyrektorowi
generalnemu. Niestety, niewiele jest osb z dowiadczeniem na tym stanowisku, wic
istnieje tendencja do promowania kadego, kto zdaje si nadawa do tej roli. Wielu kierownikw produkcji zaczyna prac na tym stanowisku ze stosunkowo niewielkim dowiadczeniem. Menedera produkcji czasami nazywa si CEO Engineering, ale jego rola
jest szersza.

InPnieMdoieeiPi eoyoie Mcii ercienpPe ecindnddzP


Nazwy tych stanowisk s co prawda czsto stosowane zamiennie, ale z reguy inynierowie
systemw i architekci skupiaj si na szkielecie rozwizania, a technolodzy specjalizuj si w funkcjach, ktre wypeniaj poszczeglne czci.

PddoPrdn ocP
Nie ma sensu zatrudnia na stae osoby, ktrej umiejtnoci bdzie mona wykorzysta
przez stosunkowo krtki okres. Do takich podprojektw lepiej wynaj podwykonawcw.
Warto zapamita szczeglnie dobrych na potrzeby przyszych projektw.

Zobwweywewaeyp
Zatrudnij wietnych ludzi, a otrzymasz realn szans, by sta si gigantem. Ludzie rzadko
odchodz ze wietnych zespow. Ale nie moesz by tego pewnym. Jeeli Twj projekt
jest krtkotrway, a jego realizacja musi by szybka, cakiem uzasadnione jest poproszenie osoby, ktra ma dla Ciebie pracowa, o to, by nie zmieniaa pracy w trakcie realizacji projektu. W miar moliwoci wyjanij, e jest to w interesie wszystkich zaangaowanych. Jeeli np. przewidywana jest premia w wysokoci 5000 dolarw dla kadego
czonka zespou, gdy projekt zostanie zrealizowany w terminie, i jedna osoba odejdzie
do pracy, gdzie oferuj o 10 000 dolarw rocznie wicej ni obecnie, zyskuje tylko 5000
dolarw i doywotni uraz ze strony byych wsppracownikw.

Mowajwetaeypebw
Due zespoy nie pracuj. One tyraj. Gwnie dlatego, e tyle uwagi powica si temu,
by wszyscy byli na bieco i wiedzieli, co si dzieje. Zarzdzanie zajmuje im wicej
czasu ni produkcja. O wiele lepiej stworzy kilka mniejszych zespow ni jeden duy
moloch. Podziel wic zadanie, gdzie tylko si da, na odrbne zespoy skadajce si z od
trzech do siedmiu osb. Praktyka wskazuje, e dziewi osb w zespole to maksymalna
liczba, jak powiniene bra pod uwag. Kady zesp w ramach projektu powinien
mie wasnego menedera, ktry wsppracuje z innym grupami i kontaktuje si z gr.
Podan struktur zespou przedstawiono na rysunku 6.1.

94

Sprzedaj swj software

Rysunek 6.1.
Struktura zespou
odzwierciedlajca
stosown liczb
czonkw
i menedera

By moe to szokujce, ale brana programistyczna ma ju blisko p wieku. Wielu


z pierwszych innowatorw, takich jak dr Wang, ktry pomg stworzy pami RAM,
ju od nas odeszo. Budujc zespoy, naley pamita, e modo wnosi energi, a wiek
dowiadczenie. Starsi programici wiedz, jak unikn bdw, wic nie zapominaj o nich.

Proces to mechanizm przejcia od pocztku do koca pisania programu. Niemal kady


ma wasn teori procesu. Najwaniejszy jest wybr metody postpowania, ktra daje
najwiksze szanse na powodzenie. Wiele skadowych typowo kojarzonych z procesem,
takich jak wykonalno projektu, ocena ryzyka, struktura zespou i harmonogramy wykonania, zostao ustalonych ju w planie projektu.
W praktyce proces to czsto nastpstwo kolejnych wyda, ktre skadaj si na ycie
produktu. Proces pocztkowy daje pierwsz wersj programu, a kolejne procesy daj
wersje nastpne. Zalet mylenia w kategoriach procesu jest to, e po jego zdefiniowaniu
wszyscy rozumiej swoje obowizki i wiedz, czym zajmuj si poszczeglne osoby.
Zota regua dotyczca rozpoczcia produkcji brzmi: nie piesz si. Przejrzyj plan projektu
i sprawd uwanie, czy co wymaga aktualizacji. Wiele rzeczy moe wynikn od czasu
powstania planu, do chwili gdy wszyscy s gotowi, by przystpi do pracy. Warto je
wic wyowi. Pewne zmiany, ktre wymagaj dokonania korekt, bd jasne jak soce.
Moemy mie omiu ludzi do zadania przewidzianego dla dziesiciu. Czas na wykonanie moe si skurczy o kilka miesicy. Moe si okaza, e w kasie jest mniej pienidzy,
ni zakadae. Tego rodzaju rzeczy atwo zauway, ale upewnij si te, czy nie nastpiy zmiany w drobnych i z pozoru niegronych aspektach.
Przeczytaj uwanie wszystkie umowy, jakie podpisae. Jeden ze sponsorw pewnego
projektu realizowanego dla administracji publicznej doda na kocu bardzo dugiego
planu nastpujce zdanie: Projekt musi zosta zrealizowany przy uyciu nastpujcego
oprogramowania. Wstawienie tego zdania bez informowania kogokolwiek nie byo
mdrym posuniciem. Caa architektura rozwizania musiaa zosta przebudowana.

Standardowym rodkiem ostronoci jest wysanie przez menedera projektu do wszystkich czonkw zespou e-maila z zapytaniem, czy wiadomo im o jakichkolwiek rnicach pomidzy pierwotnym planem projektu a biec sytuacj, poza tymi, o ktrych
ju wszyscy wiedz (tutaj powinna zosta umieszczona lista znanych zmian). Nie zaczynaj
realizacji, dopki nie otrzymasz jednoznacznych odpowiedzi od wszystkich czonkw
zespou i nie uzgodnisz ostatecznie, co naley zrobi.

Rozdzia 6. t Produkcja oprogramowania

95

Do zmian naley podchodzi z wyjtkow ostronoci. Kady projekt bdzie podlega


zmianom. Ostateczna wersja bdzie si rnia od pierwotnej specyfikacji, cho im lepszy jest plan projektu, tym mniej zmian zwykle jest wymaganych. Traktuj spnione
dobre pomysy ostronie. Jeeli bdzie widoczne, e akceptujesz kad zmian, kady
bdzie chcia dooy swoje trzy grosze. Jeeli dopucisz do swobodnego wprowadzania
zmian, bardzo szybko przekonasz si, e krcisz si w kko.
Jeli pomys ma pierwszorzdne znaczenie, rozwa jego wpyw na architektur, funkcjonalno, procedury, harmonogramy i budet. Popro kadego o ocen skutkw zmian, zanim zrobisz krok dalej. Najlepsza praktyka to odoy takie pomysy do czasu opracowania
nastpnej wersji.
Zarzd czsto czuje, e ma prawo do wprowadzania zmian, i tak te robi. Jednak na
tej samej podstawie wszyscy inni maj prawo wnie sprzeciw.

Jeeli okolicznoci niezalene od firmy ulegy znacznej zmianie od chwili zatwierdzenia planu, wprowadzanie przypadkowych zmian nie jest dobrym pomysem. Najbardziej
uzdrawiajc rzecz, jak moesz zrobi, jest zebranie wszystkich zainteresowanych
stron, wyjanienie, co zaszo, i poproszenie o pomoc. W kocu wszyscy zaangaowani
maj wsplne cele. W tym gronie powinno da si wypracowa najlepszy sposb reakcji
na zmiany, ktre zaszy. Takie rozwizanie jest o wiele lepsze ni ogoszenie, e zatrudnionych zostanie mniej programistw, ktrzy nie bd mieli dodatkowego czasu na realizacj.
Menederowie dziaajcy pod naciskiem nie zawsze przywizuj wag do ubocznych
efektw swoich decyzji.
O wiele lepiej usi wsplnie i omwi wszystkie implikacje. By moe znajdzie si jakie mniej bolesne rozwizanie. Jeeli nie, przysta tylko na to, co Twoim zdaniem jest
rzeczywicie moliwe. Jeeli Twoje uwagi nie s przyjmowane, zachowaj uprzejmo,
spokj i notuj zastrzeenia. Wyjanij, w jaki sposb mog one zagraa projektowi, a potem miej ju tylko nadziej, e bye w bdzie.

W kolejnych punktach omwione zostan szczegy strategii zapobiegania problemom,


ktre mog pojawi si w trakcie realizacji projektu.

ZorwdwobywarZwZeywz
Nierealne jest oczekiwanie, e dobrze zaplanowany projekt nie pociga za sob adnego
ryzyka. Nie w informatyce. Zarzdzanie ryzykiem ma wiele postaci, czego dowodz
kolejne punkty. Zanim zaangaujesz si w programowanie, warto uwiadomi sobie, co
jest niepewne, i wiedzie, jak obserwowa te rzeczy. Jedynym sposobem na radzenie
sobie z ryzykiem jest jego akceptacja, pomiar i stawienie mu czoa.

96

Sprzedaj swj software

ZoeoeaewoebayaeywbypdwZ
Opnienia, ktre mona wyrazi w jednostkach czasu, rwnie dobrze mona wyrazi
w kategoriach pieninych i wanie dlatego kady czonek zespou musi pilnie obserwowa piasek przesypujcy si w zotej klepsydrze. Ksigowi mierz kady wydatek.
Szef firmy interesuje si efektem kocowym, take w kwestii finansw. Meneder projektu pilnuje, by nie przekroczy granic czasowych i kosztowych. Pracownicy pilnuj,
by ich wydatki nie przekroczyy dopuszczalnych limitw i by wykona prac na czas.
Przy realizacji projektw programistycznych kady musi kontrolowa dostpne zasoby.
Oto pi najczstszych przyczyn przekraczania budetu projektu:
t

Zmiany w specyfikacji.

Spnione uwiadomienie sobie, czego tak naprawd wymaga projekt.

Ludzie si zwalniaj i trzeba ich zastpi.

Wymagane s dodatkowe technologie w zakresie oprogramowania.

Szacunki byy bdne.

Konsekwencje przekroczenia budetu mog budzi groz: szanse na sprzeda zostaj


zaprzepaszczone, kluczowe funkcje musz zosta porzucone albo projektu trzeba zaniecha.
W najgorszym scenariuszu wie si to rwnie z bankructwem firmy. Kady czonek zespou, od najmodszego do najstarszego, musi uwiadomi sobie, jak wane s pienidze,
jak powane s konsekwencje nadmiernych wydatkw i e nawet najbogatsze firmy nie
maj nieograniczonych rodkw.
Starsi rang menederowie boj si ujawnia rezerwy budetowe, poniewa sdz, e
menederowie projektu i kierownicy zespow uwzgldni je w swoim myleniu. Menederowie powinni jednak by rwnie ostroni, jeeli maj poprowadzi projekt o absolutnie sztywnym budecie. Ledwo jeden na sze projektw jest realizowany na czas i mieci si w budecie. Dlatego rozpoczynanie projektu bez pozostawienia sobie pola manewru
jest jak pokazuje statystyka samobjstwem.
Niezalenie od tego, czy Twoj siln stron jest zarzdzanie czy programowanie, musisz umie zarzdza swoim czasem. Nieraz jest to trudniejsze ni zarzdzanie innymi.
Sztuczka polega na tym, by stworzy krtk list rzeczy, jakie zamierzasz dzi zrobi,
zanim jeszcze odbierzesz poczt. Przygotuj grunt dla moliwie wydajnej pracy i powi
jej jak najwicej czasu w cigu dnia.
Stwrz krtk list podobn do nastpujcej:
t

Dzi zebranie czy pozostay jakie niezaatwione sprawy?

Co musisz zrobi dzisiaj i czy pozostay jakie sprawy z poprzedniego dnia?

Czy trzeba z kim formalnie porozmawia? Jeeli tak, umw spotkanie.

Czy s jakie prace administracyjne do wykonania?

Czy praca idzie zgodnie z harmonogramem?

Rozdzia 6. t Produkcja oprogramowania

97

LyedydodobywaewZbbyendaroweroewojeZeZ
Kiedy wszyscy uwiadomi sobie, e kade przerwanie pracy programicie sprawia, e
traci on p godziny, szybko przestan przeszkadza. Zapewniajc programistom odpowiedni przestrze do pracy (omawian w rozdziale 4.), zapobiegamy spontanicznym
pogawdkom. Jednak takie starania s zupenie bezuyteczne, jeeli ludzie i tak bd je
porednio atakowa. Oto pocztkowy zbir regu dla programistw:
t

Zanim zaczniesz pracowa, wycz telefon komrkowy.

Wycz wszelkie komunikatory internetowe.

Sprawdzaj poczt tylko w czasie przerw.

Kady, kto musi si z Tob pilnie skontaktowa w czasie godzin pracy,


powinien zadzwoni pod numer stacjonarny.

Inni czonkowie zespou, ktrzy chc si z Tob skontaktowa, powinni to robi


tylko za porednictwem menedera projektu.

CdeMdPipiecdPenMdcM oicieiiCednybni gz
Czsto jest to pierwsza oznaka kopotw. Czasami programista dokadnie wie, na czym
polega problem, ale nie wie, jak z niego wybrn. Przeszkody przy pisaniu kodu to co,
co trudno zdefiniowa. Nie s to jakie widoczne obiekty z nalepion du etykiet
kopoty. Zwykle jest to fragment, ktry po prostu nie chce zadziaa tak, jak trzeba.
Czsto upywa troch czasu, zanim programista zda sobie spraw, e moe nie by w stanie
rozwiza problemu wasnymi siami.
Dobra zasada mwi, e jeeli programista powici wicej ni p godziny, poruszajc
si drog donikd, powinien zastosowa plan B, nawet jeeli zakci tym prac kolegw.
Najpierw powinien omwi problem z menederem projektu od tego wanie jest
meneder. Jeeli meneder projektu nie potrafi rozwiza problemu, powinni we dwoje
ustali, kto najprawdopodobniej bdzie zna odpowied (osoba z zespou lub spoza organizacji). Jeeli to nie da efektw, powinni wysa zapytanie na grupy dyskusyjne.
Odpowied moe pojawi si zaskakujco szybko, ale czsto trzeba poczeka nawet do
czterech godzin. Jeeli programista zdecyduje si na taki krok, oczywicie w midzyczasie zajmie si czym innym, przerywajc co godzin, by sprawdzi, jak przebiega
internetowa burza mzgw.
Poczucie wstydu i zaenowania samo w sobie nie przeamie blokady. Pomoe w tym
za to rozmowa z kim innym. Zawsze kiedy kto utknie, naley pamita, e co dwie
gowy to nie jedna.

NiecieoenedeMenMder pePCdzieen i eMzeo


Nie ma nic gorszego ni programista, ktry utkn i w zwizku z tym znalaz w Internecie
fragment kodu pozwalajcy obej problem, wstawi go do programu i pisa dalej. Nie
sposb wymieni wszystkich implikacji zwizanych z jakoci, kodem rdowym,
wsparciem, aktualizacj i prawami autorskimi, nie mwic ju o opatach licencyjnych.

98

Sprzedaj swj software

Nie mona oczekiwa od nowych programistw, e bd zdawali sobie z tego spraw.


Szukanie rozwiza w Internecie to czarna magia, ktra kosztuje wiele czasu. O wiele
lepiej, jeeli programista powie menederowi projektu, na czym polega problem, a ten
znajdzie, sprawdzi i oceni wszelkie potencjalne rozwizania. Taki problem to doskonay
temat do poruszenia na jednym z cotygodniowych zebra. Bardzo moliwe, e wrd
tylu zgromadzonych znajdzie si osoba, ktra po prostu zna ju stosowane rozwizanie.
Moe si przy tym okaza, e Twoja organizacja jest w posiadaniu praw autorskich do
jego wykorzystania.

PMdo dzenieez eMCrC


Mimo e niewielu menederw projektu to robi, jedno z ich najwaniejszych zada polega na prowadzeniu programistw za rk wtedy, gdy utkn. Skuteczny meneder musi
zna si na jzykach i technikach programowania, jakie s stosowane. Wwczas moe
pracowa wsplnie z programist, pozwoli mu omwi problem, moliwe rozwizania
i wsplnie znale odpowied.
Nie obawiaj si podzieli wwczas prac i napisa cz kodu samemu. Poza tym, e pogbiasz tym sposobem wi z zespoem, pracujesz nad zwikszeniem wzajemnego zrozumienia i szacunku, unikajc zagroenia terminu realizacji trudnego fragmentu projektu.

Re cdo nieen ezeeeoieci


Najwikszym wyzwaniem dla Twojej samodyscypliny jest sposb, w jaki reagujesz na ze
wieci. Jeeli za kadym razem, gdy kto wyznaje, e opni cay zesp o jednej dzie,
zamieniasz si w wulkan grocy wybuchem, doprowadzisz jedynie do tego, e kady
bdzie instynktownie zwleka ze zgoszeniem problemu. Bdc dalecy od zrozumienia
dla Ciebie, mog czu, e Twoje reakcje s bardziej przygnbiajce ni same ze wieci.
Uzyskasz o wiele wiksze wsparcie, jeeli wemiesz gboki oddech i zastanowisz si
nad konsekwencjami, bo wanie o tym myli caa reszta. Nie sugeruj, e nie powiniene
pniej da upustu swojemu zdenerwowaniu, ale lepiej, szczeglnie jeeli jeste przywdc
zespou, pomc innym pogodzi si z niepowodzeniem. W ten sposb zyskasz duy
szacunek.

Bicieen e n Mo
Programowanie, najkrcej mwic, jest jak jednotorowa linia kolejowa. Jeeli kto utknie
w jakim punkcie, czsto reszta zespou ma problemy z ruszeniem do przodu. Dlatego
wane jest, by przeszkody usuwane byy w najkrtszym moliwym czasie. Nie myl, e
jeeli osoba, ktra natrafia na problem, bdzie udawa, e nie jest to problem, to ten
sam zniknie albo odpowied sama si znajdzie. Prby prowizorycznego zaatwienia problemu zwykle pogarszaj tylko spraw. Gdy tylko kto natrafi na problem, powinien bi
na alarm i prosi o pomoc kolegw, prowadzcego projekt lub kogokolwiek, kto moe
suy rad. Jeeli nikt nie zna odpowiedzi, trzeba jak najszybciej wysa zapytanie na
grupy dyskusyjne. Nie obawiaj si szuka pomocy poza wasn organizacj. Jeeli odpowied istnieje (a przewanie istnieje), to kto na pewno j zna.

Rozdzia 6. t Produkcja oprogramowania

99

Jeeli spojrzysz na harmonogram, powiniene widzie, czym masz zaj si nastpnego


dnia. Jeeli jest to co, z czym nie jeste obeznany, wylij wieczorem na grupy dyskusyjne
pytanie o oglne rady i najlepsze rozwizania problemw, ktre Ci trapi. Nastpnego
ranka zwykle znajdziesz szereg rad i gotowych rozwiza. W ten sposb nie stracisz
caego dnia.

Sz cdo nieecz ip
Nie wszystko dzieje si zgodnie z harmonogramem. Stosowanie analogii do innych dziedzin, takich jak drukarstwo, hydraulika czy rczne kalkulacje, nie pozwoli nam ustali,
ile zajmie napisanie kodu, ktry komputeryzuje jak czynno. Co, co jest atwe do
opisania, moe by trudne do zaprogramowania, a co, co wydaje si ogromnym wyzwaniem, moe okaza si bahostk. Na przykad program zliczajcy wszystkie sowa,
jakich uy Szekspir w swoich dzieach, mona sprowadzi do trzech wierszy kodu.
Szekspir uy 29 066 sw. Z kolei napisanie i zapenienie danymi formularza WWW,
ktry uywa wariantowych list rozwijanych pozwalajcych wprowadzi nazw kraju,
miasta i ulicy, zajmie dowiadczonemu programicie osiem godzin pracy.
Programici czsto potrafi poda przybliony czas wykonania rnych rzeczy przy zaoeniu, e kod bdzie dziaa zgodnie z planem bez adnych komplikacji. Jednak kod,
ktry napisali, moe mie wpyw na inn procedur programu. Dotarcie do przyczyny
moe by bardzo trudne. Tak wic, o ile czasem moliwe jest wykonanie caodniowej
pracy w minut, innym razem minuta pracy rozciga si do caego dnia. Monitorowanie
i zarzdzanie dziaalnoci jest jedynym moliwym mechanizmem jej kontrolowania.

N d o niee eon
Najwiksza rnica pomidzy zespoami programistw, ktre odnosz sukcesy, a tymi,
ktrym si nie udaje, polega na tym, e zwyciski zesp ma odpowiednie tempo pracy.
Zesp programistw, grupowo i indywidualnie, wyznacza cele do osignicia na kady
dzie. Kada osoba zobowizuje si wykona okrelon ilo pracy do koca dnia. Pi
minut przed kocem dniwki kierownik produkcji pyta kad osob w obecnoci innych, jak jej poszo. Odpowiedzi s odnotowywane, ale nie padaj adne komentarze,
nawet pochway. Sytuacja ma mwi sama za siebie. Kierownik produkcji prosi wwczas wszystkich o zastanowienie si do nastpnego ranka, co zamierzaj zrobi jutro.
Nastpnego dnia w pierwszej kolejnoci prosi kadego czonka zespou o podanie celw
w obecnoci innych. Cele te nie maj by ambitne. Nie chodzi tu o bicie rekordw tylko
o sukces caego zespou. Najwaniejsza jest cicha determinacja.
Co prawda kady czonek zespou bdzie chcia pokaza swoim kolegom, e przykada
si do pracy, ale cel, jaki sobie wyznacza, musi by osigalny. Kierownik produkcji na
tym etapie okae pomoc kademu, kto opnia si w stosunku do wasnego harmonogramu. W uzasadnionych przypadkach moe poprosi innych o pomoc.
Inteligentne zespoy zdaj sobie spraw, e zahamowanie tempa jest tylko kwesti czasu.
Dlatego powinny od pocztku wypracowa zapas czasu, dajc z siebie wicej i starajc
si upcha dodatkowe 15 minut pisania kodu w siedmiogodzinnym dniu pracy i tym
sposobem uzyskiwa odpowiedni przewag.

100

Sprzedaj swj software

Kluczowe znaczenie dla utrzymywania tempa ma przygotowanie etapw realizacji projektu. Bez tego, niezalenie od stopnia trudnoci, kady program bdzie pisany duej
jako cao ni jego poszczeglne etapy z osobna. Istnieje tak zwany czynnik SNZ
(strach, niepewno, zwtpienie), ktry trapi szczeglnie nowych i niedowiadczonych
czonkw zespou. Dlatego menederowie projektw dziel projekt na kilka niezalenych
etapw. Pierwszy podzia opiera si na funkcjach programu. Nastpnie gwne etapy
dzieli si na rozsdne czci moliwe do wykonania przez tydzie. Dalszy podzia pozostawia si ju samym programistom. Na przykad wykonanie strony witryny internetowej moe zosta podzielone na nastpujce etapy:
1. Uzgodnienie zawartoci.
2. Stworzenie modelu proponowanego interfejsu.
3. Wybr technologii.
4. Zaprojektowanie szablonu.
5. Zatwierdzenie szaty graficznej.
6. Napisanie kodu HTML.
7. Testowanie.
Nastpnie moemy monitorowa postp realizacji kolejnych etapw, w miar jak zesp
nabiera pewnoci, radzi sobie z wszystkimi wyzwaniami i koczy realizacj poszczeglnych krokw.
W efekcie, dziki zwikszonemu wysikowi podjtemu wczeniej, szybciej otrzymasz
gotowy produkt.

Mdni dMdo nieendi Cnp


Jak kapitan statku masz w rkach map nawigacyjn. Mapa ta zatytuowana jest Plan
produkcji. Wiesz, skd wyruszasz, dokd chcesz dotrze, i znasz drog, ktr trzeba
poda. Aby ledzi postp, musisz kadego dnia zaznacza biec pozycj na mapie.
Nawet jeeli pracujesz sam, pamitaj o oznaczaniu kluczowych punktw, kiedy tylko uda
si je min. Zwiksza to komfort psychiczny i przypomina Ci o postpach, jakie czynisz.
Najlepiej stworzy dwie mapy postpu oglnie dostpn, ktra prezentuje postp
w realizacji gwnych etapw, i szczegow, dostpn tylko dla czonkw zespou. Map
t mona aktualizowa na koniec kadego tygodnia i posugiwa si ni jako wizualn pomoc na poniedziakowych porannych zebraniach (patrz rysunek 6.2).
Jeeli nie masz pewnoci, w jaki sposb najlepiej monitorowa postp, polecam
standardowe wykresy Gantta. Wikszo ludzi zna ten format, nawet jeeli nie wie,
jak si nazywa, i jest on bardzo atwy do zrozumienia.

Panuje przekonanie, e programici nie cierpi raportw o postpach, poniewa pokazuj one, jak bardzo s spnieni. Dobrzy programici nigdy nie s tacy krtkowzroczni.
Dziki tym raportom kady moe mie wiadomo biecego postpu w realizacji
projektu. Praca bez raportw przypomina rejs do Ameryki bez codziennego zaznaczania
pozycji statku.

Rozdzia 6. t Produkcja oprogramowania

101

Rysunek 6.2. Przykad harmonogramu realizacji projektu

J rerdn Mdndo p
Pamitaj, e nigdy nie otrzymujesz tego, czego oczekujesz, tylko to, co sam sprawdzisz.
Przegld postpw i rezultatw powinien nastpowa pod koniec kadego dnia pracy.
Jeeli z jakiego powodu nie udao si tego zorganizowa, przyjrzyj si dokadnie nastpnego ranka, co zostao osignite dzie wczeniej. Nigdy nie pomi przegldu dwa
dni z rzdu.
Programici bd bardziej szczerzy, jeeli okaesz im wsparcie. Nie zawsze dadz Ci
powody do zadowolenia, cho bd chcieli. Dlatego zawsze zwracaj si do nich w swobodny sposb. Jeeli wiesz, e pracuj akurat nad czym skomplikowanym, uzgodnij
wygodny dla nich czas spotkania. W pozostaych przypadkach po prostu dostaw sobie
krzeso i zacznij codzienn pogawdk. Interesuj Ci trzy rzeczy:
t

Czy w jaki sposb moesz im pomc?

Czy maj jakie problemy?

Czy wykonali prac przewidzian na dzisiaj?

Jeeli dana osoba pracuje w domu, zadzwo do niej i porozmawiaj, popro o wysanie
e-maila ze zmianami, ktre wymagaj sprawdzenia, albo pocz si zdalnie z jej komputerem, by zobaczy, nad czym pracuje. Niezalenie od tego, czy Twoi ludzie pracuj

102

Sprzedaj swj software

zdalnie, czy na miejscu, nie ograniczaj si do rozmowy. Przegldaj kod i pro o zademonstrowanie, jak dziaa. Komentuj. Udzielaj zasuonych pochwa. Zanim si poegnasz,
omw zadania na jutro.
Dziki codziennym przegldom Twoi programici nigdy nie bd musieli wyznawa, e
maj miesic opnienia. Najdusze opnienie, o jakim moesz usysze, to jeden dzie.

Cd PcddnidoeezePM ni
Produkcja oprogramowania to praca zbiorowa, ale sam akt programowania to samotne
dziaanie. Regularne cotygodniowe spotkania to najlepszy sposb na podtrzymanie ducha
zespou, dbanie o to, by wszyscy byli poinformowani, omwienie biecych problemw
i przegld postpw. Jest to rwnie okazja do dyskusji na bardziej oglne tematy. Cotygodniowe spotkania to dla programistw idealna okazja do zadawania pyta, a dla menederw do poinformowania wszystkich, jakie wystpiy problemy.
Zebrania najlepiej odbywa na pocztku pracy w poniedziaek rano. Zesp bdzie czu si
wieo po weekendzie, ktry daje te czas na przemylenie tego, co osigno si w zeszym tygodniu.

BpMzeeoyzcyo
Jeeli w zespole nie ma adnych wybitnych mylicieli, rozwizaniem moe by burza
mzgw. Najlepiej gdyby udao si zebra cay zesp i obecny by kto z marketingu,
aby by wiadomy postpu i wyjani kwestie, ktre maj wpyw na poziom sprzeday.
Warto zaprosi rwnie blisko mieszkajcych pracujcych zdalnie. Jeeli mieszkaj dalej,
zorganizuj telekonferencj lub zarezerwuj im bilety lotnicze. Wszystko w miar zdrowego rozsdku.
Najwaniejsze w burzy mzgw jest to, e aden pomys nie jest zy. Prowadzcy moe
zaakceptowa najdziwniejsze idee. Ewentualnie moe poprosi o wyjanienie. Wszelkie
dalsze nagabywanie zwykle nie sprzyja efektywnoci.
Kady pomys naley zapisa w zwizy i jasny sposb bez opatrywania go komentarzami.
Argumenty przeciwko pomysom zwykle mwi same za siebie, a w lunej atmosferze
jedna myl prowadzi do drugiej. Meneder projektu powinien przejrze protokoy, podpisa je i rozda wszystkim zainteresowanym.
W przypadku wikszych projektw korzystny jest krtki raport na koniec kadego tygodnia, odnotowujcy postpy i problemy. Takie raporty, zwykle przygotowywane przez
menederw projektu, nie musz by zbyt formalne i mog by albo rozdawane, albo
rozsyane e-mailem.

W nr ezeP e c neo
Bardzo czsto programici natrafiaj na mur. Z jakiego powodu program nie akceptuje
kolejnej inkrementacji i nikt nie jest w stanie stwierdzi dlaczego. Wwczas konieczny
jest powrt do poprzedniej wersji. W trakcie pisania programu co takiego moe si zdarzy wiele razy.

Rozdzia 6. t Produkcja oprogramowania

103

Aby unikn niepotrzebnego zamieszania, warto dysponowa dobrym programem do kontroli wersji oprogramowania. Taki program zachowuje stare kopie, indeksuje zmiany i ledzi,
kto co zrobi i kiedy. Ten elektroniczny archiwista pozwala analizowa wczeniejsze
wersje programu i wyszukiwa rnice midzy poszczeglnymi wersjami. Jest szczeglnie
przydatny w sytuacji, kiedy nie potrafisz dotrze do tego, co sprawio, e program zwariowa.
Najprostsze programy do kontroli wersji przechowuj jedynie wskazane pliki i zarzdzaj nimi. Bardziej wyrafinowane umoliwiaj jednoczesne wprowadzenie zmian, automatyzuj konsolidacj, wymuszaj testy regresyjne, a czasem nawet tworz i kompiluj gotowy produkt. Niezalenie od wymaganego stopnia zoonoci, nie zaczynaj pracy,
nie instalujc wczeniej oprogramowania do kontroli wersji. Zadbaj te, by Twoi podwykonawcy i pracownicy zdalni dysponowali kompatybilnymi wersjami.

Recpn Mneerdnidnid ce
Im szybciej zaczniesz testowa produkt, tym szybciej wykryjesz i usuniesz usterki. Im
szybciej programici dowiedz si, e ich kod integruje si i dziaa, tym szybciej moliwe
stanie si wprowadzenie produktu na rynek. Sprytni inynierowie tworz projekt w taki
sposb, by dopuszcza on monta caoci z gotowych prefabrykatw. Dziki temu mog
uruchomi produkt w fazie zarodkowej tak szybko, jak to tylko moliwe. Kolejn zalet
tej techniki jest moliwo zademonstrowania klientom i zarzdowi pierwszych dziaajcych wersji. 94% firm, ktre odniosy sukces, wykonuje codzienne lub cotygodniowe
konsolidacje. Firmy, ktre nie odniosy sukcesu, konsoliduj kod raz na miesic albo i rzadziej (Secrets to Software Success, Detlev Hoch et al).

Kdnieez n idoeerddp
Przed rozpoczciem pracy nad jakimkolwiek projektem musisz zadba o mechanizm,
ktry automatycznie tworzy kopie zapasowe kodu. Kopie powinny by przechowywane
poza terenem firmy, aby zapobiec ich utracie w przypadku wamania lub poaru. Mona
albo fizycznie przechowywa je w innym miejscu, albo przesya je poczt elektroniczn lub protokoem FTP. Pamitaj, by uwzgldni kod pisany przez podwykonawcw
i pracownikw zdalnych. Za bezpieczne tworzenie kopii zapasowych odpowiada meneder projektu.

Kdnidnid ceedeodni M cPne


O komercyjnym sukcesie programu nie przesdzi Twoje wasne przekonanie o tym, jaki
jest dobry, tylko to, jak atwy dla uytkownikw jest w instalacji i uyciu. Warto wic
da maej grupie potencjalnych klientw szans na wyprbowanie go, w miar jak zbliasz si do koca projektu. Suchaj uwanie ich komentarzy. Jeeli np. uytkownicy
zrobi co, co jest niedozwolone, a oprogramowanie na to nie zareaguje, bdziesz wiedzia, e nie mieli pojcia, jak trzeba zrobi dan rzecz, i e trzeba wyposay program
w jak widoczn albo syszaln wskazwk. Im pewniej czuj si uytkownicy, tym
czciej bd poleca program innym, a to sposb na du sprzeda. Oprogramowanie
przyjazne w uyciu jest zawsze atwiejsze do sprzedania.

104

Sprzedaj swj software

Nic nie zastpi moliwoci zaprezentowania potencjalnemu uytkownikowi roboczej


wersji programu. Opisujc program, moemy wzbudzi entuzjazm. Wdajc si w szczegy, moemy wywoa zainteresowanie. Piszc inspirujcy plan projektu, moemy
skoni inwestora, by sign do portfela. Pokazywanie prbnych ekranw moe nawet
wywoa pewne sugestie, ale nic nie zastpi moliwoci pokazania programu w akcji.
Tylko wwczas uytkownik bdzie mg wyobrazi sobie przysz prac z programem
i zadawa te podstpne i druzgocce pytania, po ktrych bdziesz zachodzi w gow,
dlaczego sam o tym nie pomylae. Jedyny sposb na przeksztacenie zastrzee w sprzeda to zaprogramowa dobre rozwizania tych problemw.

ProjwetZawoweobw
Jeeli projekt jest realizowany na zlecenie, to im duszy jest czas od rozpoczcia projektu
do dostarczenia gotowego produktu, tym bardziej naraony jeste na problemy z klientem. Jeeli klient jest niedowiadczony, powi mu wicej czasu i zadbaj, by zrozumia
cay proces (moesz np. namwi go na przeczytanie niniejszej ksiki), a take powi szczegln uwag temu, by priorytety byy zgodne z kolejnoci potrzeb klienta,
a nie Twoj wygod.
Po dopracowaniu specyfikacji i zasileniu Ci pierwszym zastrzykiem gotwki klient
bdzie mia duo czasu na refleksj na temat tego, o co tak naprawd mu chodzio. Czsto
bdzie prbowa wprowadzi pniejsze zmiany bez ponoszenia kosztw. Zmiany w prawie, gospodarce lub wewntrznej sytuacji firmy klienta rwnie mog wpyn na wymagania. Jednak nawet bez tego typu oddziaywa niewielu klientw potrafi naprawd
wyobrazi sobie to, co zlecili. W kocu dlatego wanie Ty piszesz program, a klient jest
klientem.
Klienci wiedz za to dokadnie, co im si nie podoba, kiedy ju to zobacz. Wwczas
nie omieszkaj o tym powiedzie. Czasami przesadzaj w obawie, e jeeli nie bd tego
robi, zostan zignorowani. Czasami nie do koca potrafi wyrazi, o co im chodzi. Suchaj uwanie i na bieco notuj wszystkie kluczowe uwagi. Suchaj nie tylko tego, co
mwi, ale tego, co prbuj powiedzie. Pniej przemyl wszystko z ich punktu widzenia
i ustal, co jest dla nich najbardziej korzystne.
Jeeli klient wydelegowa do wsppracy z nami menedera redniego szczebla, najlepiej interpretowa wszelkie jego zalecenia dosownie. Jeeli pniej okae si, e program nie dziaa jak trzeba, okae si rwnie, e zosta napisany idealnie wedug specyfikacji menedera. Menederowie maj wiadomo, e kto znajdzie nieprawidowoci
i obwini wanie ich. Krytyka moe by w tym przypadku drobna albo potna. W takiej sytuacji najlepiej nie robi zamieszania. Zaoferuj, e sam postarasz si wszystko
poprawi. Nastpnie dopisz do rachunku suszn sum, ale dyskretnie. Osoba, z ktr si
kontaktujesz, doceni, e wyratowae j z opresji i e Twoja firma stworzya dokadnie
to, czego potrzebuje jej firma. Najczciej bdzie wdziczna.
Pamitaj jednak, e za pewne bdy obwiniony moesz zosta Ty. W kocu te nie jeste nieomylny. Jeeli okae si, e rzeczywicie popenie bd, we za niego odpowiedzialno i postaraj si jak najszybciej go poprawi. Jeeli jednak to, o co prosi
klient, jest powan zmian, przypomnij taktownie, e przy okazji zatwierdzania specyfikacji utworzone zostay rezerwy na dodatkowe koszty. Polegao to na dokadnym,

Rozdzia 6. t Produkcja oprogramowania

105

wsplnym przeczytaniu kadego elementu specyfikacji, by zminimalizowa konieczno wprowadzenia duej liczby poprawek. Przede wszystkim rb wszystko, by do takiej sytuacji nie doszo. Jeeli ju dojdzie, staraj si zaagodzi problem na wczesnym
etapie, pokazujc klientowi kolejne konsolidacje programu.
Pokazywanie klientowi konsolidacji w trakcie realizacji projektu przypomina nieco pokazywanie przyszym rodzicom zdj podu. Gdy potem przychodzi na wiat syn lub
crka, nie jest to ju taka niespodzianka. Zawsze, gdy klient prosi o co nowego lub
nowatorskiego, sprytne firmy programistyczne zdobywaj jego poparcie, demonstrujc
kolejne konsolidacje i prototypy. Klient szybko dostrzee wwczas, e nie da si od razu
trafi w dziesitk i zawsze potrzebne s wyczerpujce dyspozycje w kadym zakresie.
Zapoznajc klienta z postpem prac sprawiasz, e zaczyna on uczestniczy w procesie
tworzenia, i gdy ju jest po Twojej stronie, bdziesz zaskoczony jego pomysowoci
i wsparciem.
Jeeli rozwizanie nie ma zaawansowanego technologicznie charakteru, najlepsz osob
do prezentacji konsolidacji jest zwykle meneder projektu. Najczciej to on najlepiej
zna potrzeby klienta oraz tworzony program.
Zawsze, kiedy klient prosi o now funkcj, pamitaj, e dodajc j, by moe rozwizujesz problemy, z ktrymi borykaj si inni klienci. Zastanw si, czy w Twoim najlepszym interesie ley obcienie klienta caym kosztem jej stworzenia, czy podzieli koszt
pomidzy przyszych klientw. Pomyl, ile czasu zajmie stworzenie tej funkcji i w jaki
inny sposb firma mogaby ten czas wykorzysta. Pomyl o tym wszystkim rwnie
z perspektywy rynku.

PMd d PnPed nPci


Podobne podejcie czsto przydaje si, kiedy tworzymy system operujcy du iloci
danych. Jeeli nie jeste pewien moliwoci manipulowania wymagan iloci danych,
stwrz prototyp i wykorzystaj go w testach. Dla mnie okazao si to nieocenione, kiedy
poproszono mnie o sprawdzenie, czy niektre z pierwszych sieci opartych na komputerach osobistych dziaaj na tyle szybko, by mc zastpi dominujce wwczas systemy
na bazie minikomputerw przy obsudze transakcji giedowych. Sdzilimy, e to moliwe, ale niektrzy czonkowie zespou klienta byli sceptyczni, szczeglnie dyrektor zarzdzajcy. Rozwizaniem bya budowa prototypu z serwerem, ktry generowa setki
tysicy rnych liczb na minut (symulujc rynek papierw wartociowych o staym,
duym obcieniu transakcjami), a stacja robocza wywietlaa je na monitorze w standardowym formacie stosowanym przez maklerw. Zademonstrowalimy wwczas, e sie
stworzona z komputerw osobistych radzi sobie z najwikszym nawet przepywem danych
czternacie razy szybciej ni starsze, bardziej tajemniczo wygldajce minikomputery.

NicdPenieez ndoin ederMzPoeepczeni eiiC


Pamitasz, jak dugo uczye si pierwszego jzyka programowania, tworzye pierwsz
baz danych albo interaktywn stron WWW? Poznanie kadej nowej technologii informatycznej wymaga czasu, by dowiedzie si, jak dziaa, odnale i zrozumie opcje i wreszcie osign niemal automatyczn biego. Nawet wwczas potrzebujesz na tyle duego
dowiadczenia, by wiedzie, kiedy najlepiej skorzysta z danego narzdzia.

106

Sprzedaj swj software

Nie sposb oczekiwa od programistw, e w peni poznaj kad now technologi


w czasie krtszym ni miesic. Na nauk pisania prostego kodu z wiksz od limaczej
szybkoci powiniene da im trzy miesice, a dopiero po szeciu miesicach bd
w stanie podejmowa suszne, oparte na wiedzy decyzje. By moe sam uczysz si szybciej albo wolniej tak czy inaczej, szacujc wydajno zespou, musisz to uwzgldni.
Nikt nie potrafi od razu pisa doskonaego kodu.

SnM odz nieeozdMyoeo

eo

PcznPci

Wzory matematyczne stosowane przez programistw bywaj skomplikowane, a do


pierwszej kompilacji programu i tym samym moliwoci jego sprawdzenia musi
upyn troch czasu. Mona z tego wybrn, tworzc prbne wzory i testujc je w arkuszu kalkulacyjnym, gdzie moesz je dopracowywa, a zadziaaj idealnie, zanim
uyjesz ich w kodzie programu. Dodatkowo sprawd, czy wyniki po skompilowaniu s
takie same, jakie dawa arkusz.

NdoienM cdonicP
Pamitasz swj pierwszy dzie w nowej szkole? Ktry z uczniw wzi Ci pod swoje
skrzyda i pokazywa Ci wszystko. Najszybszy sposb na wdroenie nowego czonka do
zespou to wyznaczenie kogo ze starszych pracownikw, by go wprowadzi. Kilka dni
patronowania zwykle wystarczy, by nowa osoba poznaa ludzi i dowiedziaa si, u kogo
szuka pomocy.

N neniz eoe dd enMzedi

oi ni

Kiedy ludzie zaczynaj prac, trzeba ich przedstawi. Powinna przy tej okazji nastpi
wymiana nazwisk, funkcji i atwych do zapamitania szczegw. Na przykad: To jest
Sadie Brown. Opiekuje si bazami danych i jest maniaczk latania lotni za odzi motorow, A to jest Chris White, nasz spec od marketingu. Zrobi wietn robot przy
projekcie Mars. Z kad osob skojarz jaki wart zapamitania fakt.
W czasie oprowadzania nowego pracownika po wszystkich dziaach (lub po pokoju)
zdysz z grubsza opowiedzie mu o tempie pracy, o tym, kto komu podlega, co powinien
zrobi, gdy napotka powany problem, jakiego wsparcia moe oczekiwa itd.
Staraj si pozna osobicie swoich ludzi. Podwo ich do domu albo zabieraj na obiady.
Dowiedz si, czego dokonali, czy lubili szko, jak im si ukada w domu, z czego s
dumni i jakie maj aspiracje. Powiedz te co o sobie. Czasem moecie w ogle nie
rozmawia o sprawach zawodowych, a dziki temu rodowisko pracy stanie si bardziej
komfortowe.
Zanim rozdzielisz prac lub opublikujesz harmonogramy, zorganizuj zebranie, by przedyskutowa najdrobniejsze szczegy. Wyjanij, w jaki sposb projekt ma tworzy cao, jaki jest Twj styl zarzdzania, czego oczekujesz od kadego pracownika i czego
pragniesz za wszelk cen unika.

Rozdzia 6. t Produkcja oprogramowania

107

KiedPezec Mez czPn e Pr p


Takie zasoby, jak biuro, komputery i ludzie, s proste w tym sensie, e mona je mie
albo ich nie mie. Jeeli zaczynasz od zera, masz zatwierdzony projekt i wyasygnowane
zasoby, najwikszym problemem jest czas, jaki upywa od przyjcia odpowiednich ludzi
do chwili, gdy dotrze zamwiony dla nich sprzt lub przygotowane zostan pomieszczenia biurowe. Wyjanij wszystkim nowym pracownikom, e z chwil gdy wszystko
bdzie gotowe do pracy, zegar zaczyna tyka i e budety zostan przekroczone, jeeli
opnienia w dostarczeniu rnych rzeczy bd wstrzymywa realizacj projektu. Najlepszym lekarstwem jest jednak zapobieganie. Zadbaj o to, by podzia zasobw i zaopatrzenie zostay uwzgldnione w harmonogramie i eby harmonogram uwzgldnia
realistyczny zapas czasu na niespodziewane opnienia.

Cz i oie MzeP ezMdPiperMdreoi ecz


Mimo e to bolesne, czasami bardziej efektywne jest zarzucenie fragmentu zego kodu i rozpoczcie od nowa. Typowe powody i sposoby reagowania wymieniono w tabeli 6.2.
Tabela 6.2. Postpowanie ze zym kodem
Powd

Reakcja

Programista napisa beznadziejny kod.

Zleci to komu innemu.

Programista robi postpy zbyt wolno.

Zleci to komu innemu.

Kod dziaa, ale jest bardzo mao wydajny.

Rozway napisanie od nowa.

Kod dziaa, ale programista jest niezadowolony z tego, jak dziaa.

Napisa od nowa, o ile czas na to pozwala.

Program czciowo dziaa.

Zobaczy, czy da si go poprawi.

Jeeli znajdziesz si w ktrej z powyszych sytuacji, nie obawiaj si zleci innemu programicie poprawienia lub napisania od nowa wadliwego fragmentu kodu. Jeeli now
wersj kodu pisze ten sam czowiek, zwykle trwa to trzy razy szybciej, ni napisanie
pierwotnej wersji. Jeeli programista notorycznie traci grunt pod nogami, zastanw si
powanie, czy w ogle si do niej nadaje.
Jeeli na uczelni bdziesz bada co przez trzy lata, po czym napiszesz prac magistersk, w ktrej stwierdzisz, e to co nie dziaa, tytu magistra masz prawie zapewniony.
W wiecie biznesu niepowodzenie to ostatnia rzecz, jaka jest nagradzana. Pamitaj jednak, e niektrzy z najwikszych ludzi sukcesu dowiadczyli poraki, zanim osignli
sukces. Ich zdaniem poraka nie zasuguje na spoeczne potpienie, z ktrym zwykle si
spotyka. Jeeli zdasz sobie spraw, e utkne w martwym punkcie, jak najszybciej
zwoaj zebranie. Jeeli nikt nie znajduje ratunku, sprbuj podej do problemu z innej
strony. Mimo e jest to trudna decyzja, czasami wicej sensu ma wstrzymanie projektu
ni parcie dalej.
Oto typowe okolicznoci, w ktrych najlepiej zwoa wszystkich menederw i ustali,
czy warto kontynuowa projekt:
t

Dotrzymanie budetu jest niemoliwe.

Harmonogram nie pozwala wykorzysta nadarzajcych si okazji.

108

Sprzedaj swj software


t

Kluczowi ludzie nie s ju dostpni, a dalsza praca bez nich nie jest moliwa.

Pojawi si znaczcy konkurent.

Technologia ulega zmianie.

Powstaj usterki, ktrych w aden sposb nie da si wyeliminowa.

Inwestor traci wiar w projekt.

Sytuacja rynkowa ulega radykalnej zmianie.

Poniewa z kadr zarzdzajc komunikujesz si na bieco, cel spotkania raczej nie


bdzie niespodziank. Jeeli projekt ma by wstrzymany, warto go agodnie wyhamowa, a nie nagle przerywa. Trzeba ustali, jakie komponenty projektu mona wykorzysta w przyszoci, i udokumentowa wnioski pynce z niego. Porzucony projekt moe
wci si opaci, uatwiajc realizacj innych.

Unir ezPP niecdenMzecigeni


Bywa tak, e realizacja projektu idzie cakiem dobrze do czasu, gdy 90% pracy zostanie
wykonane. Wwczas pojawia si przeszkoda, ktra zatrzymuje wszystko na dobre. Czasami wynika to z faktu, e zespoy byy bardzo przecione prac i, kiedy najgorsze maj
ju za sob, uchodzi z nich para. Takiego nacisku nie da si dugo podtrzymywa. To
jak jedenie samochodem cay czas na najwyszych obrotach prdzej czy pniej
silnik odmwi posuszestwa. Z ludmi jest tak samo.
Skuteczniejsza technika zarzdzania polega na zagodzeniu nacisku, zanim zesp si
wypali. Kiedy programowanie dociera do etapu tworzenia dokumentacji i prowadzenia
beta-testw, zwolnij tempo. Wyjanij, dlaczego to robisz, i pozwl, by ludzie odzyskali
siy na batali ostatniego etapu produkcji.

Wywdwyw,aeywdZaeeodewZ
Programici, jak wszyscy rzemielnicy, potrafi dopracowywa i udoskonala swoje dzieo
w nieskoczono. Krytyczne moliwoci funkcjonalne wymagane z punktu widzenia
marketingu zawarte zostay w planie projektu. Pozytywne wyniki testw potwierdz
eliminacj usterek. Po spenieniu tych kryteriw oprogramowanie jest gotowe do premiery. Nawet jeeli siedzisz w pokoju i samotnie przesz do przodu, powiniene pamita,
e Twoim zadaniem jest co wicej ni tylko pisanie kodu.

Nie myl nawet o rozpoczciu programowania, jeeli nie zakoczye tworzenia planu.
Oto lista kontrola pozwalajca dokoczy plan:
1. Zatrudnij najlepszych moliwych ludzi.
2. Wybierz osoby, ktre znaj bran, w jakiej dziaa uytkownik kocowy.
3. Znajd menederw, ktrzy zajmowali si tym w przeszoci.

Rozdzia 6. t Produkcja oprogramowania

109

4. Nie kontynuuj, dopki nie znajdziesz odpowiednich ludzi.


5. Zachowaj mae rozmiary zespow.
6. Podziel zadanie na krtkie moliwe do ogarnicia etapy.
7. Zadbaj o to, by kada osoba wiedziaa, co ma robi.
8. Dbaj o zapa i biece rozeznanie czonkw zespou.
9. Wtajemnicz zesp w swoje sprawy.
10. Chro programistw przed przerywaniem im pracy.
11. Wetuj nieistotne zmiany.
12. Bd dstpny dla swoich ludzi.
13. Codziennie wyznaczaj rytm pracy programistom.
14. Kontroluj czas.
15. Zachcaj programistw, by pomagali sobie nawzajem.
16. Daj dobry przykad.
17. Szybko pozbywaj si czarnych owiec.
18. Prowad potencjalnego klienta przez poszczeglne etapy produkcji.
19. Regularnie testuj oprogramowanie.
20. Twrz kopie bezpieczestwa kodu.
Sowo przestrogi przed przesadnym dopracowywaniem kodu. Joe Tucci, ktry przez
sze lat prowadzi firm Wang i uchroni j przed bankructwem, zawsze mawia na
spotkaniach z nami programistami, e dobry program powstaje przewanie dopiero
za trzecim razem. Dlatego nie obawiaj si, e wydasz nie cakiem idealny produkt.
Pierwsza wersja ma mie tyle funkcji, by zadowoli uytkownikw. W miar sukcesu
i przychodw przeksztacisz j w to, czym chciae, eby bya (co najpewniej stanie
si w okolicach trzeciej wersji).