Agile design emphasizes people and interactions over processes and tools. This means communicating frequently, both within teams and with the customer, as well as daily meetings so that the whole team can stay looped in on the activities of its members. This creates the consistent feedback loop that enables teams to adjust based on what customers, beta testers and the market is telling them, while also checking frequently to ensure their work is functional.
History of Agile Design
Agile process is a cross between incremental and iterative models.
Iterative process was introduced by Thomas Edison in the 1800’s where he developed a cyclic process of prototyping, testing, analysing, and refining.
Incremental development methods on the other hand use elements of the waterfall model that was first used in 1970. Both iterative and waterfall models have their roots in the building and construction industries and were later adapted to software development.
Agile development methods started to take shape in 1990 as a response to the heavily regulated waterfall model where the design process is overly incremental and is often micro managed.
Early implementations of Agile methods include Unified Process, Scrum, Crystal Clear, Extreme Programming, Adaptive Software Development and Dynamic Systems Development. These implementations are now collectively called as agile methodologies after the Agile Manifesto was published.
In 2001, Ken Schwaber, Jeff Sutherland along with other software developers, met and discussed the agile methods and development and published the Manifesto for Agile Development.
In this manifesto, they outlined the agile values and principles.
Values:
- Individuals and interactions over Processes and tools
- Working software over Comprehensive documentation
- Customer collaboration over Contract negotiation
- Responding to change over Following a plan
Principles:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for
the customer’s competitive advantage. - Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
The Importance of Agile as it Relates to Web Design
- It creates a trusting relationship with your client- Through proper communication, the designer will be able to establish trust with the client.
- It keeps the designers in check- By communicating with the client all throughout the web design process, the designer gains a clearer understanding of what the client is looking for and what not. With agile communication your clients would feel that they are part of the team and would be able to give designers some specifications on how they want the site to look like and feel like.
- It saves time and money- With more client interaction, the designer will be able to tweak the design during its early stages so then it will not cost as much. Without agile design, designers and web developers would not know what exactly the client wants.