Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Szoftvermenedzsment - 01

A menedzsment fogalma
by

Sandor Soos

on 4 December 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Szoftvermenedzsment - 01

Szoftvermenedzsment - 1.

2010/2011. tanév őszi félév

Soós Sándor

Nyugat-magyarországi Egyetem
Faipari Mérnöki Kar
Informatikai és Gazdasági Intézet
Sopron Mit kell menedzselni egy szoftverprojekt esetében? Köszönöm a figyelmet! Emberek
Költségek
Minőség
Konfiguráció Nem műszaki feladat,
de nagyon fontos része a projektnek
A projektmenedzser egyik legfontosabb feladata
az emberek megfelelő menedzselése Hogyan lehet megbecsülni a szoftver költségét?
Ez egy nagyon bizonytalan terület, de léteznek
szoftverköltség-becslési módszerek
Megnézzük a COCOMO II. modell alapjait Szoftvermenedzsment 1. Emberek menedzselése Költségek menedzselése A szoftver minőségének növelését célzó
különböző folyamatok és technikák.
Hogyan lehet továbbfejleszteni a szoftverfolyamatot, hogy a végtermék és maga a folyamat minél jobb legyen? Minőségmenedzsment Kisebb rendszerek fejlesztésekor nem tűnik komoly problémának, nagyobb rendszerek esetén azonban alaposan meg kell tervezni
Ide tartozik a konfigurációtervezés, a verziókezelés, és a változtatáskezelés Konfigurációmenedzsment Az emberek menedzselése A vállalatok legnagyobb vagyonát az ott dolgozó emberek alkotják
Minden vállalat elemi érdeke, hogy a lehető legjobban felhasználja ezt az erőforrást
A szoftverfejlesztő cégek esetében a cég sikere azon múlik, hogy milyen jól sikerül megszervezni a szoftverfejlesztők munkáját
Ez alapvetően a projektmenedzser feladata 4 kritikus tényező Következetesség A csapatba tartozó embereket azonos módon kell kezelni
Ha nem mindenkivel szemben azonosak az elvárások, akkor egyesek úgy érezhetik, hogy az ő teljesítményük alulértékelt a szervezetben A csapat különböző tagjai különböző szaktudással és tapasztalattal rendelkeznek
A csapat akkor tud jól működni, ha mindenki a maga szintjén a legtöbbet nyújtja és ennek megfelelő elismerésben részesül a többi csapattag és a vezetés részéről Elismerés Az emberek szívesebben működnek együtt, ha úgy érzik, hogy elfogadják őket, meghallgatják a véleményüket
Nagyon fontos olyan munkakörnyezet kialakítása és fenntartása, amelyben még a legfiatalabb munkatársak véleményét is mérlegelik és figyelembeveszik Befogadás Őszinteség A vezetőnek mindig őszintén meg kell mondania, hogy a csapatban mi megy jól, és mi megy rosszul
Őszintén kell nyilatkoznia saját technikai tudásáról, és el kell fogadnia a többiek véleményét, ha azok nagyobb tudással rendelkeznek valamely területen
Ha nem őszinte, akkor nem fogadják el a véleményét és elveszti tekintélyét a csoport előtt A projektmenedzser feladatai A személyzet kiválasztása
Az emberek motiválása
A csoportok kezelése A People Capability Maturity Modell (P-CMM) Információ források a
személyzet kiválasztásához szakmai önéletrajz
interjú a pályázóval
korábbi munkatársak ajánlásai

Melyik mennyire megbízható? Szakember vs. vezető egyes cégeknél a szakmai karrier megtorpan, vezetővé kell válni a megfelelő jövedelem eléréséhez
nem jut elég idő a szakmára! Motiváció a munka és a környezet olyan megszervezése, ami az embert a lehető leghatékonyabb munkavégzésre serkenti
ha az ember nem motivált, akkor lassabban dolgozik, és többet hibázik Maslow modellje, 1954 Fiziológiai szükségletek Biztonsági szükségletek Szociális szükségletek Megbecsülés igénye Önmegvalósítás igénye élelemszükséglet
alvásigény Fontossági sorrend biztonságérzet
tényleges biztonság egy társadalmi csoporthoz való tartozás a többiek általi elismertség a személyi fejlődés igénye Az emberi szükségletek hierarchiája Szoftverfejlesztő csoportok esetében Szociális szükségletek engedélyezni és támogatni kell a munkatársakkal való rendszeres találkozást
ehhez időt és helyet kell biztosítani
az elektronikus kommunikáció segíthet
de szükség van a személyes találkozásokra is ahhoz, hogy megfelelő csoportszellem kialakulhasson nyilvános elismerés, dicséret
megfelelő fizetés felelősséggel való felruházás
megfelelő feladatok
továbbképzés Önmegvalósítás igénye Fiziológiai szükségletek Megbecsülés igénye Biztonsági szükségletek Az emberi szükségletek hierarchiája Szakemberek 3 típusa Feladatorientált

Önorientált

Kapcsolatorientált akit a feladat intellektuális kihívása motivál
általában szívesebben dolgoznak egyedül akit elsősorban a saját személyes sikere és az elismerés motivál
a feladat egy eszköz a saját céljainak elérésére
pl. karrierépítés, tanulás, tapasztalatszerzés
nem azonos az öncélúsággal, nem feltétlenül negatív hozzáállás
általában szívesebben dolgoznak egyedül akit a munkatársak és a többi szereplő jelenléte és cselekedetei motiválnak
mivel a szoftverfejlesztés egyre inkább felhasználó-központúvá válik, nagy szükség van az ilyen szakemberekre
általában szívesebben dolgoznak csoportban az emberek motivációjában általában mindhárom szintről találhatók elemek
de egy adott pillanatban az egyik dominál
viszont az emberek nem statikusak, akár a projekt folyamán is változhat a hozzáállásuk
pl. ha nem érzik magukat kellően motiváltnak, elismertnek, akkor önorientálttá válhatnak a szoftverfejlesztő csoportok esetében ezek az igények nincsenek veszélyben Csoportok kezelése a szoftverfejlesztő csoportok mérete kettőtől néhány száz főig terjed
ennyi ember azonban nem tud hatékonyan együttműködni
a maximális csoportméret 8-10 fő
minden csoport egy kisebb részfeladaton dolgozik
a vezetői feladatok kritikus pontja a hatékonyan működő csoportok összeállítása Csoportmunkát befolyásoló tényezők A csoport összetétele
A csoportösszetartás
A csoport kommunikáció
A csoport szerkezete Megfelelő-e a csoporton belül a szakmai tudás, a gyakorlat és az egyéniség aránya? A csoport csapatnak, vagy együtt dolgozó egyének gyülekezetének tartja magát? Hatékony-e a csoporton belüli kommunikáció? Biztosítja-e a csoport szerkezete, hogy mindenki megbecsülve érezze magát, és elégedett legyen a csoportban betöltött szerepével? A csoport összetétele az egymást kiegészítő típusú emberek alkotják a leghatékonyabb csoportot A feladatorientált szakemberek a legfelkészültebbek technikailag Az önorientált emberek a leghatékonyabbak a határidők betartásában A kapcsolat-orientált emberek segítik legjobban a csoporton belüli kommunikációt Mit tegyünk akkor, ha nem tudjuk ilyen emberekből összeállítani a csoportot? Néha nem lehetséges egymást kiegészítő emberekből összeállítani a csoportot
Ilyenkor a csoportvezető felelőssége, hogy a tagok ne a saját céljaikat helyezzék a csoport céljai elé
Könnyebb az irányítás, ha a csoport minden tagja részt vesz a projekt minden szakaszában
Ha a tagok nem látják át a teljes projektet, akkor könnyen szétzilálhatják azt az egyéni akcióikkal
Ha bevonjuk őket az összes döntésbe, akkor könnyebben fogják támogatni azokat A csoportvezetők szerepe A projektvezető nevezi ki és neki tartozik jelenteni
Nem biztos, hogy ő a csoport szakmai vezetője is
Lehet, hogy a tagok mást választanak
Feladata a csoport technikai irányítása, a tagok munkájának szervezése és a projekt adminisztrálása
Néha érdemes különválasztani az adminisztátori funkciót és kijelölni egy adminisztrátort Összetartó csoportban a tagok szerint a csoport előrébbvaló, mint az egyének
a tagok hűségesek a csoporthoz
támogatják a csoport céljait
kiállnak a többi tag mellett
megvédik a csoportot a külső hatások ellen
képesek megbírkózni a problémákkal és a váratlan helyzetekkel Kifejleszthető a csoport saját minőségi szabványa
A csoporttagok szorosan együttműködnek
A csoport tagjai megismerhetik egymás munkáját
Csoportos programozás végezhető Az összetartó csoportok előnyei A csoport maga alkotja meg, ezért szívesebben elfogadják, mint a külső szabványokat A csoport tagjai kölcsönösen tanulnak egymástól A csoport egy tagjának távozásakor nem szakad meg a projekt, a többi tag át tudja venni a kritikus feladatokat A programokat nem egy-egy személy, hanem a csoport tulajdonának tekintik A kommunikációt befolyásoló tényezők A csoport mérete
A csoport szerkezete
A csoport összetétele
A csoport fizikai környezete A kis programozócsoportok általában informálisan szerveződnek
Mindenki részese a teljes folyamatnak
Együtt osztják fel a feladatokat
A vezető programozó vezeti a csoportot is
Ez akkor működik hatékonyan, ha a tagok többsége tapasztalt programozó
Ha a tagok többsége tapasztalatlan, akkor ez visszaüthet, a projekt kudarcát is okozhatja A csoportszervezés Speciális csoportszervezési módok Programozás párban
Vezető programozó köré szervezett csoport
Egy jó programozó 25-ször termelékenyebb, mint egy rossz
A legjobb programozókat kell tehermentesteni és segíteni Címlap Mit kell menedzselni? Emberek menedzselése A projektmenedzser feladatai Az informális szerkezetű csoportokban hatékonyabb a kommunikáció, mint a formális, hierarchikus szerkezetű csoportokban
A több csoportból álló nagy projektekben gyakori probléma, hogy az információ csak felfelé és lefelé áramlik a hierachia szerint, az egymás mellé rendelt csoportok között nincs kommunikáció
Ha az emberek csak a vezetőiken keresztül kommunikálnak, az gyakran késésekhez, félreértésekhez vezet A csoport méretének növekedésével egyre nehezebb biztosítani a hatékony kommunkációt
Egy adott méret felett szükség van speciális eszközök használatára Ha túl sok hasonló típusú személyiség van a csoportban, akkor ezek könnyen összeütközésbe kerülhetnek és ez akadályozhatja a kommunikációt
A vegyes nemű csoportokban általában jobb a kommunikáció, mint az egyneműekben
A nők általában érzékenyebbek a kapcsolatokra, mint a férfiak, ezért célszerű rájuk bízni a csoport építésével, együtt-tartásával kapcsolatos feladatokat A munkahely kialakítása, elrendezése alapvetően befolyásolja a kommunikáció lehetőségét és hatékonyságát
Van, aki szeret egyedül dolgozni
Van, aki inkább társaságban
Az a jó, ha mindkettőre van lehetőség
Az emberek szeretnek természetes fénynél dolgozni úgy, hogy közben látják a környezetüket
Az önálló iroda kb. kétszeresére növeli egy programozó munkájának hatékonyságát
Emellett szükség van közös területekre, tárgyaló, kávézó Költségek menedzselése A szoftver költségeinek becslése Hogyan határozzuk meg egy szoftverprojekt költségét?
A szoftverprojektek esetében a költségek legnagyobb részét a munkaráfordítás teszi ki, ezért ez felhasználható mind a szükséges idő, mind a költségek meghatározására
Gyakran azonban előre meg kell adni egy becsült költség és idő szükségletet
Hogyan becsülhetjük meg ezeket? 1. Mekkora munkát igényel a tevékenység elvégzése?
2. Mennyi időre van szükség a tevékenység elvégzéséhez?
3. Mekkora a tevékenység teljes költsége? A projekvezetőknek az alábbi három kérdésre kell választ keresniük: A projekt teljes költsége három tételből áll össze:
a szükséges hardver és szoftver költsége, beleértve a karbantartás költségét
az utazási és képzési költségek
munkaköltség A munkaköltség a következő tételekből áll:
a munkahely, iroda rezsiköltsége (bérlet, fűtés, világítás, stb.)
a kisegítő személyzet költsége
az infrastruktúra költsége, hálózat, kommunikáció, stb.
munkabér és járulékos költségei Alapesetben: ár = költség + profit
A gyakorlatban azonban sok más szempontot is figyelembe kell/lehet venni: A szoftver ára Piaci lehetőségek
Költségbecslési bizonytalanság
Szerződési feltételek
Követelmények változékonysága
Pénzügyi állapot Egy fejlesztőcég alacsonyabb árat határoz meg, ha be szeretne törni egy új piacra. Vállalja az alacsonyabb profitot ebben a projektben, hogy később magasabb profitra tegyen szert Ha a szervezet nem biztos a költségbecslés pontosságában, akkor az előre nem látható költségek miatt magasabb árat határoz meg Különböző szerződési feltételek befolyásolhatják az árat. Például kinek a tulajdonába kerül a forráskód? Ha nagy a valószínűsége a követelmények megváltozásának, akkor a fejlesztő dönthet úgy, hogy alacsonyabb árat kínál, majd a szerződéskötés után a módosítások miatt emeli az árat A cég pénzügyi helyzete befolyásolja, hogy milyen árpolitikát folytat. Termelékenység Az iparban: a legyártott egységek száma osztva a gyártáshoz szükséges emberórák számával

Hogyan értelmezzük ezt a szoftverfejlesztésben? Mérethez kapcsolódó mérések

Funkcióhoz kapcsolódó mérések Valamilyen tevékenység kimenetének méretéhez kapcsolódó mérés:
a forráskód sorainak száma
a tárgykód utasításainak száma
a dokumentáció oldalainak száma Az átadott szoftver funkcionalitásához kapcsolódó mérés:
funkciópontok
objektumpontok Sorok száma Hogy értendő a sorok száma?
kommentek, üres sorok, sortördelés?
a lyukkártyára írt programok
assembly, FORTRAN, COBOL programok
egy kártya egy utasítás
nehéz összehasonlítani a különböző nyelvű projektek előrehaladását Funkciópont külső bemenetek és kimenetek
felhasználói interaktivitás
külső interfészek
a rendszer által használt állományok

Az egyes elemekhez súlyokat rendelünk tapasztalati alapon UFC - Unadjusted function-point Count
Kiegyensúlyozatlan funkciópont számítás UFC = Summa(az adott típus elemeinek száma x súly)

Ezt még megszorozzuk a projekt összetettségének mértékével Objektumpont Nem OOP!!!

A külön megjelenítendő képernyők száma (1-3 pont)
Jelentések száma (2, 5, 8 pont)
Külön fejlesztett modulok száma (10 pont)

Könnyebben és korábban megbecsülhető, mint a funkciópontok A kódméret becslése AVC =
assembly nyelv esetén: 200-300 LOC/FP
adatbázisprogramozási nyelvek (pl. SQL) esetén: 2-40 LOC/FP AVC - average number of lines of code
LOC - lines of code
FP - function point Kódméret = AVC x funkciópontok száma Problémák a teljesítményméréssel kapcsolatban Mennyiség / idő típusú mérések
nem veszik figyelembe a nemfunkcionális szoftverjellemzőket
mindig a több a jobb???
az újrafelhasználható elemek teljesen eltorzítják a mérést, mind a létrehozás, mind a felhasználás fázisában
könnyen manipulálható, gyakran a minőség rovására!!! Becslési technikák Nem OOP!!!

A külön megjelenítendő képernyők száma (1-3 pont)
Jelentések száma (2, 5, 8 pont)
Külön fejlesztett modulok száma (10 pont)

Könnyebben és korábban megbecsülhető, mint a funkciópontok
Full transcript