Software Development Methodologies

Much like various areas of study, or activities, there are methodologies in software development that a good developer should be familiar with. These methodologies describe a process or framework for planning, creating, testing, deploying, and maintaining an information system.

Methodologies I relate to: 

Agile Methodology

Agile promotes adaptive planning, evolutionary development, early delivery, continuous improvement and encourages rapid and flexible response to change.

Described in the Agile Manifesto as:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over Processes and tools
Working software over Comprehensive documentation
Customer collaboration over Contract negotiation
Responding to change over Following a plan

That is, while there is value in the items on the right, we value the items on the left more.[1]

Scrum Methodology
A subset of Agile Methodology:

“Scrum emphasizes the idea of “empirical process control.” That is, Scrum uses the real-world progress of a project — not a best guess or uninformed forecast — to plan and schedule releases. In Scrum, projects are divided into succinct work cadences, known as sprints, which are typically one week, two weeks, or three weeks in duration. At the end of each sprint, stakeholders and team members meet to assess the progress of a project and plan its next steps. This allows a project’s direction to be adjusted or reoriented based on completed work, not speculation or predictions.” [2]



References: has a great reference that describes the principles, strengths, weaknesses, and use-cases for the Waterfall Model, Prototyping, Incremental, Spiral, and Rapid Application Development (RAD).

[1] Beck, Kent; et al. (2001). “Manifesto for Agile Software Development”. Agile Alliance.

[2] What’s Unique about Scrum?