= Development metodologies in Web 2.0 timeframe == Fakultetska znanja * difference between bottom-up composition and top-down decomposition * potreba za učenjem dovoljno teškog predmeta na fakultetima (lisp-olikog, FP) da potake razmišljanje i filtrira studente ** nekima više paše znanstveni rad i teoretska čistoća a drugima praktični problemi * iso certifikacija, poslovođa * razumijevanje end-to-end sustava ** papiri su dio IS-a == Revival of 4GL-like tools for Web 2.0 world * Service Oriented Architecture - kockice * Not Invented Here simptom === Frameworks * Ruby on Rails * Maypole, Catalyst, Jifty * Strix? === Model View Controller (MVC) paradigma === zašto su jezici skripti jezici različiti? * JavaScript (u browseru) * php (server, nema podjele logika/prikaz, sličan asp-u) * perl (server, cgi, više različitih MVC frameworka) * python (izgled striktno zadan, odličan end-to-end jezik [client i server], jako dobar za početnike) * ruby (potpuno OO, sličan JavaScript-u) === code re-use * proceduralno * Object Oriented * Multiple Inheritance * Mix-in * closures == FLOSS * Kultura ** Eric S. Raymond: scratch own itch ** Linus: given enough eyeballs all bugs will be swallowed * open source: katedral, bazar * free software, GPL * licence BSD/GPL/OSI/dual-licensing/propriatory == Principi === kolaboracija korištenjem Interneta kao komunikacijskog medija * mailing liste * wiki * bug tracking (RT, Peregrine, SourceForge, trac) * SCM (CVS, Subversion, git) === diljenjenje znanja * physical proxymity (15m rule) * follow the sun * projektna organizacija * product manager, project manager - razlike u pogledima i funkcijama na projektu === dobra dokumentacija === hackable/tweakable (mogućnost modifikacije) -> scratch own itch === testiranje # dokumentacija # testovi # pisanje koda -> rezultat bolji API === pojednostavnjuje produkciju i održavanje * profit * TCO