zarządzanie personelem

47
ommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 1 Zarządzanie personelem Omówienie znaczenia personelu w procesie inżynierii oprogramowania

Upload: diep

Post on 15-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Zarządzanie personelem. Omówienie znaczenia personelu w procesie inżynierii oprogramowania. Cele. Znać proste modele ludzkiej pamięci, rozwiązywania problemów i motywacji oraz niektóre ich konsekwencje dla menedżerów tworzenia oprogramowania. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 1

Zarządzanie personelem

Omówienie znaczenia personelu w procesie inżynierii

oprogramowania

Page 2: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 2

Cele Znać proste modele ludzkiej pamięci, rozwiązywania

problemów i motywacji oraz niektóre ich konsekwencje dla menedżerów tworzenia oprogramowania.

Znać podstawowe kwestie pracy zespołowej, tzn. skład zespołu, spójność zespołu, komunikację w zespole i organizację w zespole.

Znać niektóre kwestie związane z wyborem i zatrzymywaniem personelu firmy budującej oprogramowanie.

Znać podstawy P-CMM - modelu będącego zrębem zwiększania umiejętności twórców oprogramowania w firmie.

Page 3: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 3

Zawartość Ograniczenia myślenia Praca zespołowa Wybieranie i zatrzymywanie personelu Model P-CMM

Page 4: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 4

Personel Personel pracujący dla firmy tworzącej oprogramowanie

to jej największy majątek. Stanowi kapitał intelektualny i tylko od menedżerów

zależy, czy firma osiągnie największy możliwy zwrot z inwestycji w ludzi.

W firmach i gospodarkach mających sukcesy osiąga się to jedynie wówczas, gdy ludzie są szanowani przez przedsiębiorstwo.

Ludziom należy przypisać poziom odpowiedzialności i wynagrodzenia odpowiadający ich umiejętnościom.

Page 5: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 5

Skuteczne zarządzanie Polega więc na zarządzaniu personelem przedsiębiorstwa. Menedżerowie przedsięwzięć muszą rozwiązywać

problemy technologiczne i nietechnologiczne przy pomocy ludzi w swoich zespołach w jak najbardziej wydajny sposób.

Muszą ludzi motywować, planować i organizować ich pracę oraz dbać o to, aby praca była wykonana rzetelnie.

Złe zarządzanie personelem to jedna z najważniejszych przyczyn niepowodzeń przedsięwzięć.

Page 6: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 6

Ograniczenia myślenia Indywidualne zdolności są bardzo różne. Te różnice

odzwierciedlają różnice w inteligencji, wykształceniu i doświadczeniu, ale większość z nich prawdopodobnie wynika z pewnych podstawowych ograniczeń naszego myślenia.

Są one konsekwencjami sposobu przechowywania informacji w naszych mózgach. Nie trzeba szczegółowo znać procesu poznawczego.

Znajomość ograniczeń sposobu naszego myślenia jest przydatna. Pomaga w zrozumieniu, dlaczego niektóre metody inżynierii oprogramowania są skuteczne i daje wyobrażenie o interakcjach między ludźmi w zespole tworzącym oprogramowanie.

Page 7: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 7

Organizacja pamięci Organizacja ludzkiej pamięci jest hierarchiczna. Ma trzy

odrębne, połączone ze sobą obszary.• Pamięć krótka o szybkim czasie dostępu i małej pojemności. Do niej są

przekazywane wejściowe bodźce do wstępnego przetworzenia. Tę pamięć można przyrównać do rejestrów komputera. Służy do przetwarzania, a nie do przechowywania danych.

• Obszary pamięci roboczej o większej pojemności. Ten obszar charakteryzuje się dłuższym czasem dostępu. Służy do przetwarzania informacji, ale może też zatrzymać pewne informacje do dalszego przetwarzania przez okres dłuższy niż w wypadku pamięci krótkiej. Nie służy do przechowywania informacji przez długi czas. Kontynuując analogie komputera, tę pamięć można by przyrównać do pamięci RAM, w której przechowuje się informacje na czas obliczeń.

• Pamięć długa. Ma wielka pojemność, dość długi czas dostępu i zawodny mechanizm wyszukiwania (zapominamy o pewnych rzeczach). Pamięć długa służy do „trwałego” przechowywania informacji. Tę pamięć można by przyrównać do pamięci dyskowej komputera.

Page 8: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 8

Pamięć krótka Informacja o problemie trafia do pamięci krótkiej w wyniku czytania

dokumentów i rozmów z ludźmi. Jest następnie integrowana z innymi istotnymi informacjami pobranymi z pamięci długiej i pamięci roboczej.

Ograniczony rozmiar pamięci krótkiej ogranicza nasz proces poznawczy. W swym klasycznym eksperymencie Miller (1957) stwierdził, że pamięć krótka może przechowywać około siedmiu kwantów informacji. Kwant informacji nie ma stałego rozmiaru, ale jest spójnym bytem informacyjnym. Może to być numer telefoniczny, przeznaczenie obiektu lub nazwa ulicy.

Jeśli do rozwiązania problemu trzeba więcej informacji, niż mieści się w pamięci krótkiej, to konieczne jest przetwarzanie i transferowanie informacji w procesie pobierania danych wejściowych. Może to prowadzić do utraty informacji.

Page 9: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 9

Organizacja ludzkiej pamięci

Pamięć roboczaPamięć robocza

Bodźce wejściowe

Pamięć krótka

Pamięć długa(duża pojemność, powolny dostęp)

Pamięć długa(duża pojemność, powolny dostęp)

Page 10: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 10

Poznawcze “klocki” w programie sortującym

Pętla (przetwórz całą tablicę)

Pętla (przetwórz nieposortowaną część tablicy)

Porównaj sąsiednie elementyPorównaj sąsiednie elementy

Przestaw je, jeśli jest to konieczne, aby mniejszy był wcześniej

Przestaw je, jeśli jest to konieczne, aby mniejszy był wcześniej

Page 11: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 11

Pamięć długa Po ustaleniu wewnętrznej struktury znaczeniowej

programu, wiedza o niej jest przenoszona do pamięci długiej. Jeśli się z niej regularnie korzysta, to nie zapomni się jej. Można ja bez większej trudności przedstawić za pomocą różnych notacji.

Wydaje się więc, że uczymy się w kategoriach abstrakcji wysokiego poziomu, a nie szczegółów niskiego poziomu.

Page 12: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 12

Klasy wiedzy Wiedza znaczeniowa.

• To wiedza o kwestiach takich jak działanie instrukcji przypisania, o pojęciu klasy, sposobie działania metody wyszukiwania w tablicy z haszowaniem i informacjach o strukturach organizacyjnych. Te wiedzę zdobywa się przez doświadczenie i naukę. Jest ona przechowywania w sposób niezależny od reprezentacji.

Wiedza składniowa.• To szczegółowa wiedza o reprezentacji, np. jak napisać opis

obiektu w UML, jakie funkcje standardowe są dostępne w pewnym języku oprogramowania, czy przypisanie zapisuje się za pomocą symbolu „=” czy „-” itd. Wydaje się, że ta wiedza jest przechowywana w postaci nieprzetworzonej.

Page 13: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 13

Wiedza składniowa i znaczeniowa

Wiedza zadaniowa Wiedza komputera

Wiedza znaczeniowa Wiedza składniowa

Page 14: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 14

Rozwiązywanie problemów Wymyślenie i napisanie programu to proces rozwiązywania

problemu. Zbudowanie systemu oprogramowania wymaga

zrozumienia problemu, opracowania strategii rozwiązywania i następnie przekształcenia jej w program.

W pierwszej fazie sformułowanie problemu przechodzi z pamięci krótkiej do pamięci roboczej.

Tam jest integrowane z istniejącą wiedzą z pamięci długiej i analizowane w celu wypracowania ogólnego rozwiązania.

Na końcu to ramowe rozwiązanie jest udoskonalane i przyjmuje postać wykonywalnego programu.

Page 15: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 15

Rozwiązywanie problemów

Pamięć długaPamięć długa

Nowa wiedza

Istniejąca wiedza

Nowa wiedza

Istniejąca wiedza

Pamięćrobocza

Rozwiązywanie Rozwiązywanie Problem Częściowerozwiązania

Page 16: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 16

Proces projektowania programu Zintegruj istniejącą wiedzę komputerową z

wiedzą zadaniową w celu utworzenia nowej wiedzy, a więc zrozumienia problemu.

Zbuduj model znaczeniowy rozwiązania. Sprawdź go względem problemu i udoskonalaj do czasu, aż stanie się satysfakcjonujący.

Przedstaw ten model za pomocą jakiegoś języka programowania lub notacji projektowej.

Page 17: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 17

Dobór personelu Menedżerowie podejmujący decyzje, kogo przyjąć do

długotrwałego przedsięwzięcia, powinni wziąć pod uwagę zdolność do rozwiązywania problemów i doświadczenie z dziedziny zastosowania, a nie umiejętność programowania w konkretnym języku.

Gdy problem jest już zrozumiany, doświadczeni programiści napotkają w przybliżeniu ten sam poziom trudności przy pisaniu programu niezależnie od zastosowanego języka programowania.

Znajomość języka jest niezbędna, a jej udoskonalenie trwa (zwłaszcza w wypadku złożonych języków takich jak C++).

Z doświadczeń wynika jednak, że nauczenie się nowego języka jest znacznie łatwiejsze niż opanowanie umiejętności rozwiązywania problemów.

Page 18: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 18

Pisanie programu Przy przekształceniu modelu znaczeniowego w program

zwykle robi się mniej błędów, jeśli język programowania obejmuje struktury pasujące do struktur znaczeniowych najniższego poziomu, które programista rozumie. Zależy to od konkretnej osoby, ale najczęściej te struktury odpowiadają pojęciom, takim jak przypisania, pętle, instrukcje warunkowe, ukrywanie informacji, obiekty, dziedziczenie itd. Im lepiej język programowania pasuje do tych pojęć, tym łatwiej jest napisać program.

Page 19: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 19

Języki wysokiego poziomu Programy zapisane w językach wysokiego poziomu,

takich jak Java, powinny więc zawierać mniej błędów niż napisane w asemblerze, ponieważ struktury znaczeniowe niskiego poziomu można w Javie zakodować bezpośrednio jako instrukcje języka. Gdy miesza się pojęcia obiektowe i funkcyjne, mogą się pojawić kłopoty. Może to wystąpić na przykład wówczas, gdy w firmie ustalono standard funkcyjnej metody analizy (np. SADT), a proces projektowania i programowania jest obiektowy.

Page 20: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 20

Programowanie strukturalne Korzystając z tego modelu można także wyjaśnić, dlaczego

programowanie strukturalne jest najlepszą strategią organizowania sterowania programu. Podstawą programowania strukturalnego są struktury znaczeniowe, takie jak pętle i instrukcje warunkowe. Pamięć krótka programisty nie jest więc przeciążania, ma on zatem mniejszą szansę na popełnienie błędu. Programy strukturalne są łatwiejsze do zrozumienia, ponieważ można je czytać od początku do końca. Abstrakcje tworzące klocki mogą być budowane bez zaglądania do innych części programu. Pamięć krótka może zająć się jedną częścią kodu. Nie ma potrzeby pobieranie z pamięci roboczej informacji o innych częściach programu, które maja wpływ na tę część.

Page 21: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 21

Motywacja Jedna z ról menedżerów przedsięwzięć jest motywowanie osób,

które z nimi pracują. Maslow (1954) napisał, że ludzi motywuje się przez spełnianie ich

potrzeb. Potrzeby te rozłożono na kilka poziomów. Najniższe poziomy tej

hierarchii odpowiadają potrzebom podstawowym, takim jak jedzenie, sen itd. oraz potrzebie bezpieczeństwa w swoim środowisku. Potrzeby społeczne to potrzeby poczucia, że jest się członkiem grupy społecznej. Potrzeby szacunku to potrzeby bycia respektowanym przez innych, a potrzeby samorealizacji są związane z rozwojem osobistym. Człowiek nadaje większy priorytet potrzebom z niskich poziomów, takim jak głód i zaspokaja je przed bardziej abstrakcyjnymi potrzebami z wyższych poziomów.

Page 22: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 22

Hierarchia potrzeb człowieka

Potrzeby samorealizacji

Potrzeby fizjologiczne

Potrzeby bezpieczeństwa

Potrzeby społeczne

Potrzeby szacunku

Page 23: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 23

W firmie Zapewnienie spełnienia potrzeb społecznych, szacunku i samorealizacji

jest więc najistotniejsze z menedżerskiego punktu widzenia. Spełnienie potrzeb społecznych oznacza zgodę na spotykanie się ze

współpracownikami i zapewnienie miejsc na takie spotkania. Nieformalne i łatwe w użyciu kanały komunikacyjne, takie jak poczta elektroniczna, są bardzo ważne.

Spełnienie potrzeby szacunku wymaga pokazania ludziom, że są wysoko oceniani przez firmę. Publiczne docenianie osiągnięć jest prostym i skutecznym sposobem realizacji tego celu. Pracownicy muszą mieć świadomość, że są wynagradzani na poziomie odpowiadającym ich umiejętnościom i doświadczeniu.

Spełnienie potrzeby samorealizacji wymaga pokazania ludziom odpowiedzialności za ich pracę, przydzielenie im trudnych (ale nie niemożliwych do wykonania zadań) i zaoferowanie programu szkoleń, który umożliwi im rozwijanie swoich umiejętności.

Page 24: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 24

Trzy typy profesjonalistów Nastawieni na zadania to ci, dla których motywacja jest

wykonywana przez nich praca. W wypadku inżynierii oprogramowania są to technicy, których motywuje wyzwanie intelektualne związane z tworzeniem oprogramowania.

Nastawieni na siebie to ci, którzy są motywowani głównie przez swój osobisty sukces i sławę. Tworzenie oprogramowania jest dla nich środkiem umożliwiającym osiąganie własnych celów.

Nastawieni na interakcję to ci, których motywuje obecność i działania współpracowników. W miarę jak tworzenie oprogramowanie jest coraz bardziej skoncentrowane na użytkowniku, osoby poświęcone interakcji są coraz bardziej ważniejsze w inżynierii oprogramowania.

Page 25: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 25

Praca zespołowa Większość profesjonalnego oprogramowana jest tworzona przez

zespoły składające się z dwustu do kilkuset osób. Nie ma możliwości, aby wszyscy członkowie tak wielkiego zespołu wydajnie pracowali razem nad jednym problemem. Tak wielkie zespoły dzieli się więc na kilka grup.

Każda grupa odpowiada za przedsięwzięcie polegające na budowie jakiegoś podsystemu. Przyjmuje się ogólną zasadę, że grupy w przedsięwzięciu inżynierii oprogramowania nie powinny mieć więcej niż ośmiu członków.

Stworzenie małych grup umożliwia ograniczenie problemów komunikacyjnych. Cała grupa może zasiąść na spotkaniu przy jednym stole. Jej członkowie mogą się też spotkać w swoich pokojach. Żadne skomplikowane struktury komunikacyjne nie są konieczne.

Page 26: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 26

Tworzenie grupy Utworzenie grupy, która będzie wydajnie pracować, jest

więc krytycznym zadaniem menedżera. Ważne jest, aby w grupie panowała równowaga

umiejętności technicznych, doświadczenia i osobowości. Udane grupy to jednak więcej niż po prostu zespól osób o

właściwej równowadze umiejętności. W dobrej grupie panuje duch zespołu, tzn. jej członkowie

są zmotywowani sukcesem grupy na równi z realizacja własnych celów.

Menedżerowie powinni więc zachęcać do jawnych czynności „budowania zespołu”, aby wypracować owe zasadnicze poczucie lojalności grupowej.

Page 27: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 27

Czynniki wpływające na pracę grupową

Skład grupy. Czy panuje w niej właściwa równowaga umiejętności, doświadczeń i osobowości?

Spójność grupy. Czy w grupie myśli się o niej jako o zespole, czy też o grupie osób pracujących razem?

Komunikacja w grupie. Czy członkowie grupy skutecznie się ze sobą porozumiewają?

Organizacja grupy. Czy zespół jest zorganizowany tak, że każdy czuje się dowartościowany i jest zadowolony ze swojej roli w grupie?

Page 28: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 28

Skład grupy Grupa zawierająca uzupełniające się osobowości może pracować

lepiej niż grupa tworzona jedynie na podstawie zdolności technicznych. Ludzie motywowani pracą najprawdopodobniej będą najlepsi technicznie. Ludzie nastawieni na siebie będą zapewne najskuteczniejsi w posuwaniu pracy do przodu w celu jej ukończenia. Ludzie zajmujący się komunikacją będą szczególnie ważni jako pomoc w komunikacji w ramach grupy. Uważam, że najważniejsze jest uwzględnienie w grupie osób zajmujących się komunikacją. Lubią oni rozmawiać z ludźmi, są więc w stanie bardzo wcześnie wykrywać napięcia i nieporozumienia. Mogą pomóc w rozwiązywaniu problemów osobowościowych i związanych z odmiennością, zanim będą miały poważny wpływ na grupę.

Page 29: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 29

Spójność grupy Członkowie spójnej grupy uważają ją za bardziej

istotną od osób do niej należących. Członkowie dobrze prowadzonej, spójnej grupy są wobec niej lojalni. Identyfikują się z celami grupy i z innymi jej członkami. Starają się chronić ja jako całość przed zewnętrznymi wpływami. To sprawia, że grupa staje się solidna i zdolna do radzenia sobie z problemami i nieoczekiwanymi sytuacjami. Grupa radzi sobie ze zmianami przez oferowanie członkom wzajemnego wsparcia i pomocy.

Page 30: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 30

Zalety spójnej grupy Można wypracować grupowy standard jakości. Standardy są

ustawiane jednogłośnie, a zatem grupowy standard będzie prawdopodobnie lepiej przestrzegany niż standard narzucony grupie z zewnątrz.

Członkowie grupy blisko ze sobą współpracują. Osoby należące do grupy uczą się od siebie nawzajem. Zahamowania wynikające z niewiedzy są zminimalizowane przez zachętę do wzajemnego nauczania.

Członkowie grupy mogą nawzajem znać swoje prace. Gdy członkowie opuszczają grupę, można zachować ciągłość.

Można urzeczywistniać programowanie pozbawione indywidualizmu. Programy są uważane za własność grupy, a nie poszczególnych osób.

Page 31: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 31

Komunikacja w grupie Zasadniczą sprawą jest zapewnienie dobrej

komunikacji między członkami grupy tworzącej oprogramowanie. Członkowie grupy muszą wymieniać informacje o stanie swoich prac, podjętych decyzjach projektowych i koniecznych zmianach poprzednich decyzji. Dobra komunikacja wzmacnia także spójność grupy, ponieważ jej członkowie poznają motywacje oraz silne i słabe strony innych członków.

Page 32: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 32

Podstawowe czynniki mające wpływ na skuteczność komunikacji

Wielkość grupy Struktura grupy Skład grupy Fizyczne środowisko pracy grupy

Page 33: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 33

Organizacja grupy Małe grupy programistów są zwykle zorganizowane w nieformalny

sposób. Lider grupy bierze udział w tworzeniu razem z innymi jej członkami.

Może wyłonić się lider techniczny, który skutecznie zapanuje nad produkcją oprogramowania.

W nieformalnej grupie pracę do wykonania omawia się w ramach grupy jako całości i przydziela zadania zgodnie ze zdolnościami i doświadczeniem.

Projektowanie systemu na wysokim poziomie wykonują wyżsi rangą członkowie grupy, ale projekty niskiego poziomu są zadaniem osoby przydzielonej do konkretnego zadania.

Grupa nieformalna może osiągnąć powodzenie zwłaszcza wówczas, gdy większość jej członków jest ludźmi doświadczonymi i kompetentnymi.

Page 34: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 34

Zespół wodza-programisty

AdministratorAdministrator

Narzędziowiec Narzędziowiec

Specjalista do SOSpecjalista do SO

AdministratorAdministrator

Autor dokumentacjitechnicznej

Autor dokumentacjitechnicznej

Wódz--programista

Wódz--programista

Programistazapasowy

Programistazapasowy

Bibliotekarz Bibliotekarz Komunikacjaz otoczeniem

Page 35: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 35

Wybieranie i zatrzymywanie personelu

Jedną z ról menedżera przedsięwzięcia jest wybór personelu do pracy przy przedsięwzięciu.

W wyjątkowych wypadkach menedżerowie mogą zatrudnić osoby najlepiej nadające się do tej pracy, niezależnie od innych zobowiązań i kwestii budżetowych.

Zwykle menedżer nie może swobodnie wybierać personelu. Musi on wykorzystać tych, którzy są dostępni w firmie, musi znaleźć ludzi szybko i może mieć ograniczony budżet.

To ograniczenie budżetu może mieć wpływ na liczbę (drogich) doświadczonych inżynierów, którzy będą pracować przy przedsięwzięciu.

Page 36: Zarządzanie personelem

Czynniki wpływające na wybór personelu

Czynnik WyjaśnienieDoświadczenie Jeśli przedsięwzięcie ma doprowadzić do zbudowania udanego systemu, to w dziedzinie jego twórcy muszą rozumieć dziedzinę zastosowania.zastosowaniaDoświadczenie Może być istotne, jeśli prace obejmują programowanie na niskim poziomie. w pracy z platformą W przeciwnym wypadku zwykle nie jest krytycznym atrybutem.Doświadczenie Zwykle jest istotne jedynie w wypadku krótkotrwałych przedsięwzięć, przyw pracy z językiem których nie ma czasu na naukę nowego języka.programowaniaZdobyte Może być podstawową wskazówką co do tego, co kandydat powinien umieć,wykształcenie i o jego zdolności do uczenia się. Ten czynniki jest coraz mniej istotny, gdy

inżynierowie zdobywają coraz więcej doświadczenia w wielu przedsięwzięciach.Zdolności Są ważne, ponieważ personel przedsięwzięcia musi się porozumieć ustniekomunikacyjne i pisemnie z innymi inżynierami, menedżerami i klientami.Zdolność do Tę zdolność można ocenić przyglądając się różnym rodzajom doświadczeń przystosowania się zdobytych przez kandydata. To ważny atrybut, ponieważ wynika z niego

zdolność do uczenia się.Nastawienie Personel przedsięwzięcia powinien być pozytywnie nastawiony do

wykonywanej pracy i chcieć zdobywać nowe umiejętności. To bardzo ważny atrybut, ale zwykle bardzo trudny do oceny.

Osobowość To bardzo ważny atrybut, ale zwykle trudny do oceny, kandydaci muszą być racjonalnie zgodni z innymi członkami zespołu. Żaden konkretny typ osobowości nie jest bardziej lub mniej odpowiedni do inżynierii oprogramowania.

Page 37: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 37

informacje dostarczane przez kandydatów o ich przeszłości i doświadczeniu (ich życiorys lub CV)

informacje zdobyte przez wywiady z kandydatami

rekomendacje od innych osób, które współpracowały z kandydatami.

Decyzję, kogo przyjąć do przedsięwzięcia, zwykle podejmuje się na podstawie informacji następujących trzech rodzajów:

Page 38: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 38

Miejsce pracy ma istotny wpływ na ludzką wydajność i zadowolenie z pracy. Za pomocą eksperymentów psychologicznych wykazano, że na zachowanie mają wpływ wielkość pomieszczenia, umeblowanie, temperatura, wilgotność, jasność i jakość światła, hałas, poziom postrzegania prywatności.

Zachowanie grupy zależy od organizacji architektonicznej i udogodnień telekomunikacyjnych. Komunikacja grupowa zależy od architektury budynku i organizacji przestrzeni pracy.

Koszt braku dobrych warunków pracy jest realny i znaczący.

Środowiska pracy

Page 39: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 39

Najważniejsze czynniki środowiskowe

Prywatność. Programiści potrzebują miejsca, w którym mogliby się koncentrować i pracować. Potrzebują miejsca, gdzie nikt by im nie przeszkadzał.

Świadomość otoczenia. Ludzie wolą pracować przy świetle naturalnym i z widokiem na otaczające ich środowisko.

Dostosowanie do osobistych potrzeb. Ludzie przyjmują różne style pracy i mają odmienne opinie o wystroju wnętrza. Możliwość przebudowy swojego miejsca pracy tak, aby pasowało do jej stylu , oraz możliwość osobistego gospodarowania swoim środowiskiem, są bardzo ważne.

Page 40: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 40

Warunki pracy Ludzie lubią indywidualne pokoje, które mogą sobie po swojemu

urządzić. Jest tam mniej przerywania i przeszkadzania w pracy niż w otwartych przestrzeniach biurowych.

W otwartych biurach ludziom odmawia się prywatności i cichego środowiska pracy.

Zapewnienie inżynierom oprogramowania oddzielnych pokoi może spowodować znaczący wzrost wydajności.

DeMarco i Lister (1985) porównali wydajność programistów w różnych rodzajach biur. Zauważyli, że czynniki, takie jak oddzielne pomieszczenia i możliwość wykluczenia przerywania pracy, maja znaczący wpływ. Programiści mający dobre warunki pracy byli ponad dwa razy bardziej wydajni niż równie umiejętni programiści pracujący w gorszych warunkach.

Page 41: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 41

Grupowanie pokoi osób i pokoju spotkań grupy

Pokój

Pokój

Pokój

Pokój

Pokój

Pokój

Pokój

Pokój

Pokójspotkań

Wspólnaprzestrzeń

Dzielonadokumentacja

Okno

Page 42: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 42

Model P-CMM Software Engineering Institute (SEI) ze Stanów

Zjednoczonych prowadzi długotrwały program ulepszania procesu tworzenia oprogramowania. Częścią tego programu jest CMM (Capability Maturity Model- model dojrzewania zdolności), tzn. model procesu tworzenia oprogramowania.

CMM dotyczy najlepszych praktyk inżynierii oprogramowania.

W celu wspierania tego modelu SEI zaproponował także P-CMM (People Capability Maturity Model- model dojrzewania zdolności ludzi).

Page 43: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 43

Poziomy modelu P-CMM Początkowy. Doraźnie stosuje się nieformalne metody

zarządzania personelem. Powtarzalny. Ustalenie strategii rozwoju zdolności

personelu. Zdefiniowany. Standaryzacja najlepszych praktyk

zarządzania personelem w całej firmie. Zarządzany. Ustalono i wdrożono ilościowe cele

zarządzania personelem. Optymalizowany. Ciągła koncentracja na zwiększaniu

indywidualnych kompetencji i motywacji do pracy.

Page 44: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 44

Cele P-CMM Poprawa zdolności firmy programistycznej przez

zwiększenie zdolności jej siły roboczej. Upewnienie się, że zdolność do tworzenia

oprogramowania jest atrybutem firmy, a nie kilku osób.

Dopasowanie motywacji poszczególnych osób do motywacji firmy.

Utrzymywanie w firmie zasobów ludzkich (tzn. osób z krytycznymi umiejętnościami i wiedzą).

Page 45: Zarządzanie personelem

Model P-CMM

Ustawiczne odnawianie siły roboczejTrenerzyRozwój kompetencji personelu

Ustawiczne odnawianie siły roboczejTrenerzyRozwój kompetencji personelu

Optymalizowany

Początkowy Początkowy

WynagrodzenieSzkoleniaZarządzanie wydajnościąWybór personeluKomunikacjaŚrodowisko pracy

WynagrodzenieSzkoleniaZarządzanie wydajnościąWybór personeluKomunikacjaŚrodowisko pracy

Powtarzalny Wprowadźpodstawowądyscyplinę do działańsiły roboczej

Wyrównanie wydajności w firmieZarządzanie kompetencjami w firmiePraktyki zespołoweBudowa zespołuMentorzy

Wyrównanie wydajności w firmieZarządzanie kompetencjami w firmiePraktyki zespołoweBudowa zespołuMentorzy

Zarządzany

Kultura uczestnictwaPraktyka największej kompetencjiRozwój zawodowyRozwój kompetencjiPlanowanie sił roboczychAnaliza umiejętności i wiedzy

Kultura uczestnictwaPraktyka największej kompetencjiRozwój zawodowyRozwój kompetencjiPlanowanie sił roboczychAnaliza umiejętności i wiedzy

Zdefiniowany

Ustawicznie poprawiaj metodyzwiększania kompetencjiposzczególnych osób i całej firmy

Zarządzaj ilościowo przyrostemzdolności siły roboczej firmyi utwórz zespoły zgodnez kompetencjami

Rozpoznaj zasadniczekompetencje i dostosujdo nich działania siłyroboczej

Page 46: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 46

Główne tezy Zarządzanie tworzeniem oprogramowania to głównie zarządzanie

ludźmi. Menedżerowie powinni więc rozumieć naturę człowieka, aby nie stawiać sobie lub personelowi nierealnych żądań.

Ludzie mają szybką pamięć krótką, pamięć roboczą i pamięć długą. Wiedza może być nieuporządkowaną wiedzą składniową lub głębszą wiedzą znaczeniową. Rozwiązywanie problemów polega na integracji znaczeniowych z pamięci długiej z nowymi informacjami w pamięci krótkiej.

Czynniki, które można wziąć pod uwagę przy wyborze personelu, to m.in. Doświadczenie z dziedziny zastosowania, zdolność do przystosowywania się i osobowość.

Page 47: Zarządzanie personelem

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 22 Slide 47

Główne tezy Grupy tworzące oprogramowanie powinny być małe i spójne. Liderzy

grup powinni być kompetentni technicznie. Należy im zapewnić wsparcie administracyjne i techniczne.

Na porozumiewanie się w ramach grupy wpływają takie czynniki jak status członków grupy, wielkość grupy, rozkład płci, osobowość i dostępne kanały komunikacyjne.

Zapewnienie osobistego środowiska pracy z odpowiednimi udogodnieniami komunikacyjnymi i komputerowymi może zwiększyć wydajność i zadowolenie z pracy programistów.

P-CMM (People-Capability Maturity Model) stanowi zrąb i powiązane z nim poradnictwo na temat poprawy zdolności ludzi zatrudnionych w przedsiębiorstwie i zdolności firmy do osiągania korzyści z jej zasobów ludzkich.