Its main characteristic is minimal planning in favor of rapid prototyping. The planning and prototyping phases are interlaced with writing the software it self.This method enables more dynamic development process and faster achieving of basic software functionality, which is expanded with new features through iterative repeating of all phases