== Методиски техинки и алатаки на Extreme Programming == XP не дозволува избор на техники, оваа методологија е најефективна кога се користат правилата и техниките кои таа ги наведува. Двете техники кои највеќе ми се допаѓаат се pair programming и collective code ownership. Pair programming се погрижува целиот процес на развивање е ефикасен со што два девелопери работат на секој модул. А со collective code ownership, членовите на парот девелопери се менуваат меѓусебно со цел секој член на тимот на девелопери да биде запознаен со секој модул од системот, и да се осигура компанијата дека доколку еден девелопер си замине од компанијата, неговото знаење за дел од системот, нема да биде изгубено.\\ Бидејќи XP предвидува користење на одредени техники, во кратки црти ќе ги опишам нивните карактеристики:\\ • Pair programming – предвидува работа на двајца програмери на еден компјутер на една задача во исто време. Едниот програмер го пишува кодот и се фокусира на него, додека другиот програмер размислува за големата слика и како тој код ќе се вклопи со останатиот.\\ • Release schedule planning meeting – состанок кој се случува пред почетокот на развивање на системот, со цел да се одреди кои user stories ќе бидат развиени и генерален план за колку време ќе треба да се развие системот. Доколку има потреба може и во текот на развивање да се одржат уште вакви состаноци со цел да се приспособи, односно промени распоредот на итерации и времето потребно за развивање на системот.\\ • Iteration planning meeting - служи за планирања на задачи на програмерите пред почетокот на развивање на секоја итерација. Овде се одредуваат кои user stories ќе бидат развиени во следната итерација и на кои неуспешни тестови од предходната итерација треба да се работи.\\ • Користење на unit tests за тестирање на системот или во нашиот случај подсистемот пред крајот на времето предвидено за моменталната итерација. Ова е добро бидејќи овозможува брзо откривање на грешки.\\ • Acceptance tests се дел од functional testing каде корисникот одредува user stories за која треба да се провери дали системот работи правилно.Ова најчесто се прави пред пуштање на системот во продукција, со цел да се осигура дека системот нема некои грешки.\\ • Small releases – доставување на софтверот преку итерации, со цел клиентот да го може да го следи развој на системот, во секој чекор од процесот на развивање.\\ • Coding standard – целиот тим на девелопери се согласува да програмира според даден стандард.\\ • Collective code ownership – претставува техника или пракса, преку која секој девелопер од компанијата е запознаен со основите на кодот од секој модул од проектот, со цел да не се изгуби знаење доколку некој девелопер ја напушти компанијата.\\ • Simple design – поедноставување на кодот во секоја можна итерација, со цел едноставен дизајн.\\