On August 20, 1980, Reinhold Messner and Peter Habeler were the first to summit Mount Everest without the use of bottled oxygen. They accomplished this amazing feat by doing what no other expedition had ever done. They carried all of their own gear, did no route preparation, and did not use supplemental oxygen. They were successful where others were not, because they approached the problem from a different angle. After years of climbing experience, they recognized that their two greatest assets were agility and improvisation in the face of constant change. This philosophical shift enabled them to not only succeed, but to innovate, while others had attempted only to survive.
In today’s social web space, there’s also been a shift towards agility and improvisation, and just like Messner and Habelar, designers and developers that adapt and embrace these new conditions will succeed in creating the future of the web. Today’s emerging web applications and services differ from past web companies and sites in a number of ways: faster time to market, lower development costs, greater transparency with users and more social models. Web users have grown to expect a more mature internet – one that lets them explore social spaces, connect via instant, real-time communications, control privacy and sharing with one-click controls, stay up to date with instant, live news feeds, personalize a design, or discover new people or patterns. In her article, “Design 2.0: Minimalism, Transparency, and You,” co-author Emily Chang wrote about trends in design philosophies that support this shift in web applications and online products.
It seems fitting that the web has finally evolved technologically and socially to allow its organic nature to emerge. Designing and developing the web is a live experience and we’re just beginning to witness a new phase of interaction: time-based, collective discoverability, environmental influence from users, mutable to constant change, evolutionary. Agile.
Agile Design Meets Agile Development
Agile software development began in the late 1990’s as several new programming methodologies came onto the scene. One common thread that tied them together was that they all encouraged close collaboration with programmers and business people, constant face to face communication with the client, frequent deliveries of working software, and the ability to program in small self-organizing teams. In 2001 a workshop was held by a group of the thought leaders and practitioners of these methodologies in order to discuss the commonality in their work. They decided to use the word “agile” to name their emerging programming methodologies. They also developed the Manifesto for Agile Software Development, whose most important parts were the statement of shared development values and principles.
The concept of agile design is also not an entirely new one. James Hobart wrote an article in 2002 title, “Optimizing User Experience with Agile Design” where he lays out a great case for using agile design in the development of user interfaces for software application. Scott Ambler, the creator of agile modeling, described that “with an iterative approach to development you work a bit on requirements, do a bit of analysis, do a bit of design, some coding, some testing, and iterate between these activities as needed. It is critical to think through how you’re going to build something, to actually design it, before you build it.” Your design efforts may take on the form of a sketch on a whiteboard, a detailed model created with a sophisticated modeling tool, or a simple test that you write before you write business code. Agile designers and developers realize that design is so important that it is part of the iterative cycle. Design isn’t just a phase you do at the end of a development project.
While forms of agile development have been around for a decade now, some of the newer methodologies have integrated very quickly into the philosophies of web 2.0. Currently our web consultancy, Ideacodes, is designing the user interface and user experience for five new startup companies with web applications and services, all of which have one thing in common – a unique process of collaborative agile design and development.
Think of agile design as user interface design strategy meets agile programming methodologies. In addition to mental mapping, task flow analysis, and user testing, we’re seeing the importance of a new type of agile process. In design, just as in development, “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.”
In this new process, we suggest that the core values and principles of agile design closely match those of agile development as a whole. While we imagine that this list will certainly grow and need refinement, there are some major concepts that have already been experienced our clients with great success.
Core principles of Agile Web Design
– Design the system not the surface
– Design as evolutionary and user-driven
– There is no page, only pathways
– Rapid and iterative over final
– Simplicity over complexity
– Collaborative and open design
As we design custom applications for clients at Ideacodes, we’ve adapted and developed several processes to which these principles apply. Our next segment of the Agile Web Design Manifesto will discuss these techniques and more.