Application development refers to the creation of a computer program that will do a specific set of tasks. If it is a business app created by an internal development team, the requirements will be driven by the needs of the employees who will be using it. It might be an app to help a team calculate their expenses and project their budget needs, for example. If it is a commercial app which will be sold to customers, the requirements will be driven by product managers who assess the market needs and emerging opportunities.
The app development process is comprised of some common steps or phases: planning, requirements gathering, analysis of requirements, designing, building, implementing, monitoring and supporting. While the steps are usually the same for most development projects, the methods that are used to execute them can be very different, depending on the development methodology being used. There are three common app development methodologies: waterfall, agile, and Rapid Application Development (RAD).
In a waterfall project, the requirements are fully defined and scoped before work begins, and each phase is done sequentially, and completed before the next phase begins. In an agile project, the requirements evolve through the collaboration of cross-functional teams, and phases are iterative, and done in short sprints. A RAD project is similar to agile, and refers to a highly adaptive development approach that often uses prototypes instead of design specifications.
Cloud developers frequently use RAD development methodologies, and tools like Cloud Foundry have emerged to help enterprise developers by providing a systematic approach to application delivery that streamlines and automates many processes.