Depending on customer wishes, type and duration of project we are usually using one of following development methodologies.
Scrum is an iterative, incremental process for product development and work management. It is an agile process to manage and control development work. Scrum is a team-based approach to iteratively, incrementally develop systems and products when requirements are rapidly changing. It is the way to improve communications and maximize cooperation and to control the chaos of conflicting interests and needs. Scrum is an effective way to detect and cause the removal of anything that gets in the way of developing and delivering products and to maximize productivity. It has controlled and organized development and implementation for multiple interrelated products and projects with over a thousand developers and implementers.
Extreme Programming (XP) is an agile software development methodology focused on a set of values, principles, and practices that its founders believe results in higher quality software and a higher quality of life for the development team. XP is the most prescriptive of the agile methods when it comes to appropriate engineering practices for software development. The key belief of teams practicing XP is that if a team follows a specific minimal set of engineering practices extremely well, they will be much more successful and have much more rewarding software development experiences. XP provides a collection of good software development practices. When used with each other and in conjunction with other agile practices for managing work and collaborating, these practices can lead to highly effective software development teams that produce high quality code. XP also enforces the idea of doing only what needs to be done and doing it extremely well.
RUP (Rational Unified Process) is an iterative software development process framework. It emphasizes obvious project management practices such as defining user needs, interactive development and testing, reusing working code components, inter-developer communications, change control, risk management and other. The goal of this process is to produce, within a predictable schedule and budget, high-quality software that meets the needs of its end users. RUP-based processes are various: from the most simple for small projects with short development time to more complex processes which meet the majority of demands of large developers groups. RUP is used in projects of all types and levels