120 likes | 280 Views
Razvoj aplikacija. Danijel Pobi, dipl. Ing. Računarstva. Upravljanje projektima. Developer, programer, coder Izrada aplikacije Koncept Dizajn Programiranje Testiranje Radni vijek Rad u timovima Solo vs tim. Upravljanje projektima.
E N D
Razvoj aplikacija Danijel Pobi, dipl. Ing. Računarstva
Upravljanje projektima • Developer, programer, coder • Izrada aplikacije • Koncept • Dizajn • Programiranje • Testiranje • Radni vijek • Rad u timovima • Solo vs tim
Upravljanje projektima • Planiranje, organizacija, motiviranje i kontroliranje resursima da bi se dostigao određeni cilj. • Mjeri dvaput, reži jednom = planiraj dvaput, kodiraj jednom • Mora se znati tko je glavni! Demokracija u ovom slučaju samo usporava stvari. • Programi: • Project management: Microsoft Project, Excel,... • Content Control: Team Fundation server, SVN, Hg,... • Tradicionalni pristup: • inicijacija, planiranje i dizajn, izvedba, testiranje, kraj • Prince2, PRiSM, kritični lanac, metodologija lančanog niza, procesno upravljanje, Agile, Lean, Extreme, Korisno-realizacijsko upravljanje
Ljudi u programskim projektima • Coder • Sudjeluje samo u najnižoj razini izrade • Zna odabrani programski jezik • Zna osnove programiranja • Programer • Programski jezik dobro svladan • Dobro tehnički i tehnološki potkovan • Osnovno znanje tematike projekta • Neradi u planiranju, samo u izvedbi i dokumentiranju • Developer • Detalji projekta i potrebna tematika • Radi u svim dijelovima projekta, od planiranja i dizajna do izrade • Dizajner, Savjetnik,...
Planiranje • Planiranje Dizajna • Likovi • Korisničko sučelje (UI) • Elementi sučelja • Točno šta program mora raditi • Dijagram toka programa • Klase i dijagram klasa (UML) • Segmentiranje projekta • Dali se nešta može paralelno raditi i kako rasporediti • Kritičnost određenih dijelova • Projekcija trajanja projekta • Koje dodatne pomoćne sustave koristiti
Planiranje rada - alati • Alati dizajna: • 3D: 3DStudio Max, Blender, Maya, Oxygen,... • 2D: Photoshop, Fireworks, Corel Draw • GUI: Neki od gore za dizajn, onda pretakanje elemenata u odgovarajući program ili sintaksu • Alati za programski tok: • Koriste se uglavnom bilo koji alati koji daju neki dijagram logički, ali pojedini alati mogu i direktno generirati dio koda iz dijagrama • Dizajnerski alati, Visio, SpecFlow, SketchFlow, Visual Studio, UML Toolscript, ... • Segmentacija projekta: • Služi za ubrzanje i planiranje • Excel, Project, ... • Programiranje: • Ovisi uvijek o tipu projekta i potrebama • Jezici: C/C++, C#, SQL, VB, Java, Objective-C, COBOL,... • IDE: Visual Studio, Eclipse, X-Code, Notepad,... • Dodatne stvari: • Kontrola koda (SVN ako je potreban ili neophodan) • Kontrola rada sustava i ljudi
Rad u timu vs solo rad Tim Samostalno Brže se radi (do određene brojke članova) Svaki član specijaliziran, znači svatko radi svoj dio Paralelizacija posla Razmjena ideja kad se zapne, diskusija Sporije sam nego s nekoliko ljudi Renesansni čovjek, zna sve, ali često i ništa Sve sam Snađi se kako znaš, nema diskusije...
Izvedba • Važno odabir alata! • Još važnije dobro isplaniran projekt! • „Mjeri dvaput, reži jednom”, „Planiraj dvaput, kodiraj jednom”, „Smrt korisniku, život programeru!”,... • Imjene i/ili rad u hodu su često uzrok predugom razvoju i rezultiraju često lošim proizvodom! • Programiranje ... • Teško dati točne smjernice, jer sve uvijek ovisi o projektu • Savjet: Napraviti „kostur”, pa onda dodavati „meso” i nakraju „navuči kožu i odjeću” ;) • Prijevod: Napraviti bazne klase i bazu rada programa, zatim implementirati redom svu funkcionalnost i nakraju spojiti s korisničkim sučeljem i ušminkat ;)
Izvedba, dobra praksa • Jako važno dokumentirati šta se radi i kako bi trebalo to raditi! • Kod uredno i po nekim konvencijama pisati • Organizirati sve po dobro osmišljenim folderima i fileovima • Dobra organizacija fajlova, kao i dobar kod s komentarima je samo po sebi dokumantacija • Zbog sebe da se snađete kasnije u svom poslu je dobro organizirat se, a kamoli ako netko drugi bude morao raditi poslije vas na tome • Dokumentiranje iznomno važno, pogotovo ako kasnije ispravljate neke dijelove i/ili dodajete nove funkcionalnosti
Testiranje • Testiranje je korak koji sam sebe objašnjava... • Medologija testiranja opet, kao i sve ovisi o vrsti projekta, u ovom slučaju programa • Metodologija jednostavna testiraj i ispravljaj dok ne proradi ;) • „Program bez bugova je samo onaj koji se ne koristi ili nije detaljno provjeren”
Zadnja faza projekta • Završetak projekta • Objava, tj. plasiranje na tržište • Marketing i/ili jako veliki faktor sreće ako odlučite komercijalizirazti nešta • Neke zanimljive statistike: • 1 od 12 projekata u prosjeku uspije • loš projekt s dobrim marketingom u većini slučaja bolje prolazi od odličnog projekta bez dobre promocije (čast izuzecima) • ...
Kraj predavanja PITANJA? preko ljeta tko misli raditi, pomoći ću koliko mogu, a možete me i posjetiti u uredu na adresi Vatrogasna 5 danijel@dmt-softver.hr