Skip to content

Latest commit

 

History

History
14 lines (10 loc) · 1.63 KB

software-dev-methodologies.nootbook.md

File metadata and controls

14 lines (10 loc) · 1.63 KB

Software Developement Methodologies

Agile

Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto[1] introduced the term in 2001.

Agile software development methodologies like Scrum are easy to learn, but hard to master. It's easy to get some of the details wrong. This could keep your team from receiving all the benefits the framework has to offer, or worse, lead to poor communication and defects.


Test-driven development

Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) 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. Kent Beck, who is credited with having developed or 'rediscovered' the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.