Development Methodologies


A time-boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.


Behaviour Driven Development is emerged from TDD. The idea is to provide software development and management teams with shared tools and a shared process to collaborate on software development.


Domain-Driven Design is a set of principles and schemes aimed at creating optimal systems of objects. Reduced to the creation of software abstractions, which are called models of subject areas. These models include business logic that establishes a link between the real conditions of the product's application area and the code.


Feature Driven Development is an agile software development methodology that employs a short-iteration model and is intended for use by large teams. An FDD project is organized around five processes: Develop an Overall Model; Build a Features List; Plan by Feature; Design by Feature; Build by Feature. The main goal of this methodology is to develop real, working software systematically, within the deadlines set.


A software development methodology which predates the Rational Unified Process, Extreme Programming and Agile development. It is more lightweight, provides more requirement and design documentation, aims to avoid analysis paralysis, bridging the gap between analysis and design.


An agile method for managing the creation of products with an emphasis on continual delivery while not overburdening the development team. Like Scrum, Kanban is a process designed to help teams work together more effectively.

Pair programming

An Agile software development technique which consists of two programmers sharing one workstation, one development effort. Each member performs the action the other is not currently doing, one writes code while the other reviews each line of code as it is typed in, they switch roles frequently.


A structured customizable project management method that emphasises dividing projects into manageable and controllable stages, separates the management layer.


Rapid Application Development is a general term used to refer to alternatives to the conventional Waterfall model of software development. RAD is well suited for developing software that is driven by user interface requirements.


Rational Unified Process is an object-oriented software development process. It provides a disciplined approach to assigning tasks, guidelines, templates, and other aspects of program development.


An agile framework for managing complex (software) projects. A team works for a short period of time (a 'sprint' or 'iteration') and then demonstrates real stuff that matters to the end-product at the end of each sprint. Emphasizes team self-management and flexibility (change requests can be created and approved at any time during the project). 


Software development process that relies on the repetition of a very short development cycle: first the developer writes Automated Test Case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.

XP (extreme programming)

Extreme Programming is a simplified methodology for organizing the development of programs for small and medium-sized teams of developers who are engaged in creating a software product in the face of unclear or rapidly changing requirements.


A unique, linear development methodology used during a software development life cycle (SDLC). The V-Model focuses on a fairly typical waterfall-esque method that follows strict, step-by-step stages.


A linear and sequential approach to software development. Each phase must be completed fully before the next phase can begin. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. Software testing starts only after the development is complete.

Development by

Sign up for updates
straight to your inbox