Design Planning and Execution in Agile


With regards to the Agile development methodology, a topic that arises often is the question of how to fit the application design function into Agile software development.  Let us assume that there are some aspects of the design process that do not fit neatly into Agile while others are perfect for Agile. With that in mind, let us discuss how to design within an Agile framework.

Several key aspects of design—the requirements gathering, user interviews, journey mapping, personas, and all other design steps that inform the design itself—can without a doubt fit nicely into the Agile process. In fact, this is conveniently where Agile projects begin anyway.  When completed with a careful consideration of the user and the essence of the system being designed, the requirements gathering is the most important phase of the design process.  

Once we have our requirements gathered and interactions mapped out, whether it is the journey maps, user flows, etc., we can move onto wireframing, which I believe also fits nicely into the Agile framework.  Wireframing, or creating low-fidelity mockups, is from my experience a more analytically driven process, thus, making it a prime candidate for plug-and-play application in even the strictest of Agile implementations.

It is from this point forward—creating our design system and prototyping—that the design process begins to diverge from a nice and neat Agile implementation.  The design system is the collection of colors (palette), font styles, button styles, form and input styles, and any other elements used throughout our system.  And by prototyping, I am referring to the process of creating high-fidelity comps for the system.  Given the subjective nature of the artistry involved in these activities, one cannot quickly create and iterate on a design system or prototype.  Furthermore, it is difficult to forecast how many iterations will be necessary before they meet the acceptance criteria.

Once you have your design concept, which includes some form of design system and a high-fidelity prototype, you can return to a purely Agile development structure if you plan to do so.  Later, if some elements of the design need to be tweaked due to implementation restrictions or, if, for instance, an interaction no longer fits within the broader context, you may have to accept that the solution will be a redesign, or a bit of a step backward. At this point, the design typically requires one or more iterations and will not fit easily into the Agile methodology as the new design might require time than is available in a sprint to be recreated and accepted.  Flexibility will most likely be required at this point.

While there are some aspects of design that can easily occur within an Agile framework, there are others that cannot be forced into a strictly Agile approach. The strength of Agile is its adaptability.  While most companies can continue to maintain that they utilize the Agile methodology, they should, at the same time, embrace the freedom and flexibility of adapting the framework to the needs of their organization.