In contemporary software development, the concept of prototyping has expanded into a holistic approach known as agile software development. The essence of agile development lies in the ability to generate stable releases more frequently than traditional methods, ushering in new functionalities through multiple releases each month instead of occasional significant releases over longer intervals. This approach is often referred to as 'permanent beta.' Agile development places a premium on face-to-face communication for requirement definition, as opposed to detailed requirement specifications.
Scrum: navigating agile development
Scrum is a methodology designed to support agile software development, orchestrating a collaboration involving key stakeholders. These stakeholders include the scrum master, functioning as a project manager, the product owner who represents the interests of stakeholders such as business owners and customers, and the scrum team comprising developers.
Scrum operates through focused sprints, typically spanning 15-30 days, during which the team crafts an increment of software that could potentially be released. The potential functionalities for each sprint are agreed upon during sprint planning meetings, drawing from a prioritized set of high-level requirements known as the product backlog.
The sprint planning meeting itself is an iterative process. The product owner outlines requirements from the product backlog, while the technical team determines the scope they can realistically commit to completing in the upcoming sprint. The term 'scrum' also alludes to daily project status meetings held during sprints.
The Agile Manifesto: guiding principles
The core principles of agile development find their embodiment in the Agile Manifesto, established in 2001 by advocates of earlier rapid development methodologies, including the Dynamic System Development Methodology and Extreme Programming. The Agile Manifesto serves as a blueprint for the principles underpinning agile programming, setting it apart from conventional methodologies. The manifesto asserts:
"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 items on the left more."
Adapted from: Chaffey, D. and Ellis-Chadwick, F., 2012. Digital marketing: strategy, implementation, and practice (Vol. 5). Harlow: Pearson.