We use Agile Scrum methodology for implementing our projects. Agile methodology is widely accepted in the world and effective for developing complex custom web and mobile applications.
The overall development process is broken into chunks or iterations which are mostly in the range of 14 days. Each iteration goes through whole development life cycle: planning, requirements analysis, design, coding, testing and documentation. The goal of each iteration is to attain a stable release. A new iteration is aimed at enhancing current functionalities or creating new version. Project priorities are reviewed on completion of each version.
The difference between Waterfall model of software development v/s Agile method of software development is shown in the following image:
Principles of Agile Project Management: