Click here to close now.

Welcome!

Microservices Expo Authors: Pat Romanski, Jason Bloomberg, Plutora Blog, Elizabeth White, Carmen Gonzalez

Related Topics: Microservices Expo, Java IoT, Microsoft Cloud

Microservices Expo: Article

Change on a Dime: Agile Design

Agile allows for a consistent stream of feedback from your client

What does it mean to have a good experience? Think of your favorite restaurant, the interior of your car, and the software on your phone: how do people craft these experiences? What details, planning, and design go into the process?

Would it be possible to create a great experience if you were limited from laying out a full design before you got started? That's the typical scenario in designing a user experience within the realm of agile software development. As a designer, how do you manage in an environment with such a quick pace and changing specifications? This article provides a brief overview of agile development and gives several tips for working as a designer in this environment.

Development Through Agile
In large part, the movement towards agile is a response to an industry perception of heavy, slow, and bloated software development. Specifically, agile is a movement away from the typical waterfall model of software development that requires an initial comprehensive design ("big design up front"). With the waterfall model, deliverables and the value from having a functioning product take the form of one bulk delivery near the end of the process. The drawbacks are that development can be delayed, come in over budget, or be irrelevant by the time the product is finished.

Agile was conceived as an alternative approach that delivers a constant stream of value through much smaller deliverables. Typically, agile development takes place through defined iteration cycles that are usually 1-2 weeks in length. At the end of each iteration, a customer-defined set of features, called a story, is delivered. Stories have their own progression through development (typically a backlog, in-process, review, and production queue) and are continuously prioritized by the client. This means requirements can change quite frequently through development. Along the way, refactoring takes place from time to time in order to ensure that features fit together into a single cohesive application.

The primary values of agile are to quickly deliver functioning software and allow for changes in requirements throughout development. As a designer, you may be asking yourself how (or why) requirement change is even allowed. Because no big design up front is delivered, developers can start working on simple features for clients that add immediate value. Although this potentially leads to a larger discussion as to what exactly is conveyed by the term "value," in this case, I am specifically talking about functioning (versus theoretical) software. Through agile development, changes are not only allowed but also expected.

Assume for a moment that you're tasked with creating a mobile travel application. Specifically, your client wants the user to be able to browse destinations, write reviews, and book travel. With agile, it's possible to deliver the smallest units of functionality (e.g., browse destinations) almost immediately. Furthermore, because feature sizes (i.e., the stories) are small, a large UX design may not immediately be necessary (or in some cases, budgeted). However, what this gives your client is a product that can stand on its own at any given time throughout development. It's important to clarify that deliverables prior to the final product will likely not provide a response to all problems the product set out to solve. That said, these deliverables will allow your client to see progress and steer the course of development as they see fit.

The sunny side of this methodology is it allows development to adapt to customer needs, budgets, innovations in the field, and potential ventures into uncharted territories (e.g., completely new concepts). The dark side encompasses the same notions that make it great: the client can change requirements at any time, features developed independently of one another may feel disjointed, and there is rarely time to create a comprehensive user-centric design.

As a designer, someone who is responsible for the end-user experience, how can you best react in such an environment? Let's take a moment to examine some of the more prominent issues as well as some possible solutions for working in this periodically unpredictable and sometimes volatile field.

Designing Without Design Upfront
The sooner you understand and internalize the fact that big upfront designs may not exist, the better. Because of the pace of an agile environment, it can be difficult to produce high-fidelity designs and systems ahead of development. The only exception may be when style or branding guidelines are clearly defined. Even then, you may actually be wasting your (and your client's) time by flushing out a high-fidelity mockup if requirements are to change.

Even though you will not likely have an opportunity to create a big upfront design, you may be able to take advantage of the period immediately before development begins (known as iteration zero). Try to get as much groundwork done as possible. If you're lucky enough to have direct contact with the client, ask as many questions at this time. What are they envisioning? What features are they aiming for? What theoretical features could be introduced? Why are they building the application? Who are their users? What would their ideal scenario be?

This information may save you from potential rework or dead ends in design.

Reacting to Course Change
The course of development may change at any time. This may cause frustration if the newly proposed idea deviates too far from a preconceived idea or design.

Let's jump back to our theoretical travel application and assume that after using the first implemented feature, your client wants to drop the ability to write reviews and instead provide the ability to message other users within the application. How do you react to this? While potentially frustrating, it's important to remind yourself of the client's current needs and requirements. Additionally, you must be able to separate and drop what is no longer needed. Sometimes this means removing something you just spent an entire day on; know that this is okay.

Keeping Designs Simple
Because the horizon may be unknown, try to keep all solutions and designs as simple as you possibly can. Reduce problems down to their lowest common denominator and create only what is necessary - nothing more, nothing less. Not only are such systems easier to maintain, but they may also save you time in case something gets changed, added, or scrapped.

Simple and quick solutions may be all that are necessary. This means ditching perfectionism (pixel counters, I'm looking at you). However, this does not mean relinquishing your perspective on the entirety of the application. On the contrary, sometimes the most important time to consider your high-level design is when you're creating specific solutions. In any case, respond accordingly within the scope of stories, features, and iterations.

Maintaining Consistency Through Development
Even though a comprehensive application design may not be created, it is important to understand feature consistency and congruence. As a designer, one of your greatest challenges may be ensuring that all implemented pieces fit together into a single cohesive experience. One barrier may involve implementation problems; your design for a feature may be spot-on, but due to the quick pace of agile, it may not be fully (or properly) implemented. Because of this, it's important to review all stories that go through iterations.

Alternatively, sometimes your feature designs are properly implemented but the over-arching design feels disjointed. To combat this, try creating a low-fidelity task flow diagram or outline to keep in mind how it all should fit. Not only does this give you some sense of direction and context, but it can also provide your developers with immediate direction if needed.

At times, it will be necessary to jump out of the iterative flow and examine the whole system for congruency. Do components fit? If not, why? As you work through these potential problems, keep in mind the scope of your iteration and deliverables. Refactoring for the sake of consistency is great, but if it means holding up your development team, you may need additional planning for these efforts. Try creating stories specifically for reviewing and updating the UX of your product.

Avoiding the Design Vortex
As a designer, sometimes the most difficult activity to do is to stop designing. It's important to mind the scope and pace of agile, which sometimes means your prototypes will not be pixel perfect. That's okay. Just be able to communicate to your development team how everything should work.

One strategy for this is to conduct basic whiteboarding sessions with fellow designers and your development team. This allows your ideas to be quickly communicated and allows for technical validation of any solutions or features you are considering. If a more formal deliverable is required, try wireframing for multiple screens and layouts.

Considering Your Project
Even though agile development is quick, stay focused on your users, clients, personas, or the closest thing you have to visualize who will be using your product. It's important to be able to visualize who is using your application. How are they using it? Where will they be? Under what conditions? Keep this in mind and help others to understand the project.

And continually ask yourself if the product is still a success. It's really that simple. Is your client happy? Are the users happy? Though subjective, sometimes this is your only metric to check your efforts.

Last But Not Least
Design in an agile setting may be challenging (and even jarring), but it's not all bad. Agile allows for a consistent stream of feedback from your client. Because features are released each iteration, you can potentially gain continuous insight into how your designs are being interpreted and used. Though this provides no substitution for traditional user testing, client demonstrations do provide some level of feedback. In a way, agile may be a great training ground for designers as it provides an opportunity to create smaller, more manageable solutions with a rapid feedback cycle.

For some, creating an effective and memorable user-centric design within an agile environment may seem tricky. Then again, the challenge may also be fun and exciting. It's important to note that there is not one proven method or process that works best. Like all human interaction and patterns, we're still figuring this out. However, as long as you actively consider your end users and design with them in mind, you should do just fine.

More Stories By John Anderson

John Anderson is a User Experience Designer and Certified Usability Analyst at Asynchrony Solutions, Inc. (www.asolutions.com), a leader in Agile software development. He collaborates with a variety of teams in the industries of health care, real estate, and government focused on crafting custom mobile and web applications. For more information, visit http://blog.asolutions.com.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@MicroservicesExpo Stories
Enterprises are turning to the hybrid cloud to drive greater scalability and cost-effectiveness. But enterprises should beware as the definition of “policy” varies wildly. Some say it’s the ability to control the resources apps’ use or where the apps run. Others view policy as governing the permissions and delivering security. Policy is all of that and more. In his session at 16th Cloud Expo, Derek Collison, founder and CEO of Apcera, explained what policy is, he showed how policy should be arch...
The causality question behind Conway’s Law is less about how changing software organizations can lead to better software, but rather how companies can best leverage changing technology in order to transform their organizations. Hints at how to answer this question surprisingly come from the world of devops – surprising because the focus of devops is ostensibly on building and deploying better software more quickly. Be that as it may, there’s no question that technology change is a primary fac...
The last decade was about virtual machines, but the next one is about containers. Containers enable a service to run on any host at any time. Traditional tools are starting to show cracks because they were not designed for this level of application portability. Now is the time to look at new ways to deploy and manage applications at scale. In his session at 16th Cloud Expo, Jake Moshenko, Product Manager at CoreOS, examined how CoreOS + Quay.io fit into the development lifecycle from pushing gi...
Internet of Things (IoT) will be a hybrid ecosystem of diverse devices and sensors collaborating with operational and enterprise systems to create the next big application. In their session at @ThingsExpo, Bramh Gupta, founder and CEO of robomq.io, and Fred Yatzeck, principal architect leading product development at robomq.io, discussed how choosing the right middleware and integration strategy from the get-go will enable IoT solution developers to adapt and grow with the industry, while at th...
This week we're attending SYS-CON Event's DevOps Summit in New York City. It's a great conference and energy behind DevOps is enormous. Thousands of attendees from every company you can imagine are focused on automation, the challenges of DevOps, and how to bring greater agility to software delivery. But, even with the energy behind DevOps there's something missing from the movement. For all the talk of deployment automation, continuous integration, and cloud infrastructure I'm still not se...
Countless business models have spawned from the IaaS industry. Resell Web hosting, blogs, public cloud, and on and on. With the overwhelming amount of tools available to us, it's sometimes easy to overlook that many of them are just new skins of resources we've had for a long time. In his General Session at 16th Cloud Expo, Phil Jackson, Lead Technology Evangelist at SoftLayer, broke down what we've got to work with and discuss the benefits and pitfalls to discover how we can best use them to d...
SYS-CON Events announced today that Harbinger Systems will exhibit at SYS-CON's 17th International Cloud Expo®, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. Harbinger Systems is a global company providing software technology services. Since 1990, Harbinger has developed a strong customer base worldwide. Its customers include software product companies ranging from hi-tech start-ups in Silicon Valley to leading product companies in the US a...
The 4th International Internet of @ThingsExpo, co-located with the 17th International Cloud Expo - to be held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA - announces that its Call for Papers is open. The Internet of Things (IoT) is the biggest idea since the creation of the Worldwide Web more than
SYS-CON Events announced today that ProfitBricks, the provider of painless cloud infrastructure, will exhibit at SYS-CON's 17th International Cloud Expo®, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. ProfitBricks is the IaaS provider that offers a painless cloud experience for all IT users, with no learning curve. ProfitBricks boasts flexible cloud servers and networking, an integrated Data Center Designer tool for visual control over the...
"We got started as search consultants. On the services side of the business we have help organizations save time and save money when they hit issues that everyone more or less hits when their data grows," noted Otis Gospodnetić, Founder of Sematext, in this SYS-CON.tv interview at @DevOpsSummit, held June 9-11, 2015, at the Javits Center in New York City.
17th Cloud Expo, taking place Nov 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy. Meanwhile, 94% of enterprises ar...
Microservices are individual units of executable code that work within a limited framework. They are extremely useful when placed within an architecture of numerous microservices. On June 24th, 2015 I attended a webinar titled “How to Share Share-Nothing Microservices,” hosted by Jason Bloomberg, the President of Intellyx, and Scott Edwards, Director Product Marketing for Service Virtualization at CA Technologies. The webinar explained how to use microservices to your advantage in order to deliv...
Software is eating the world. The more it eats, the bigger the mountain of data and wealth of valuable insights to digest and act on. Forward facing customer-centric IT organizations, leaders and professionals are looking to answer questions like how much revenue was lost today from platinum users not converting because they experienced poor mobile app performance. This requires a single, real-time pane of glass for end-to-end analytics covering business, customer, and IT operational data.
In the midst of the widespread popularity and adoption of cloud computing, it seems like everything is being offered “as a Service” these days: Infrastructure? Check. Platform? You bet. Software? Absolutely. Toaster? It’s only a matter of time. With service providers positioning vastly differing offerings under a generic “cloud” umbrella, it’s all too easy to get confused about what’s actually being offered. In his session at 16th Cloud Expo, Kevin Hazard, Director of Digital Content for SoftL...
Discussions about cloud computing are evolving into discussions about enterprise IT in general. As enterprises increasingly migrate toward their own unique clouds, new issues such as the use of containers and microservices emerge to keep things interesting. In this Power Panel at 16th Cloud Expo, moderated by Conference Chair Roger Strukhoff, panelists addressed the state of cloud computing today, and what enterprise IT professionals need to know about how the latest topics and trends affect t...
Public Cloud IaaS started its life in the developer and startup communities and has grown rapidly to a $20B+ industry, but it still pales in comparison to how much is spent worldwide on IT: $3.6 trillion. In fact, there are 8.6 million data centers worldwide, the reality is many small and medium sized business have server closets and colocation footprints filled with servers and storage gear. While on-premise environment virtualization may have peaked at 75%, the Public Cloud has lagged in adop...
DevOps Summit, taking place Nov 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 17th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development...
One of the hottest new terms in the world of enterprise computing is the microservice. Starting with the seminal 2014 article by James Lewis and Martin Fowler of ThoughtWorks, microservices have taken on a life of their own – and as with any other overhyped term, they have generated their fair share of confusion as well. Perhaps the best definition of microservices comes from Janakiram MSV, Principal at Janakiram & Associates. “Microservices are fine-grained units of execution. They are designe...
Agile, which started in the development organization, has gradually expanded into other areas downstream - namely IT and Operations. Teams – then teams of teams – have streamlined processes, improved feedback loops and driven a much faster pace into IT departments which have had profound effects on the entire organization. In his session at DevOps Summit, Anders Wallgren, Chief Technology Officer of Electric Cloud, will discuss how DevOps and Continuous Delivery have emerged to help connect dev...
In their general session at 16th Cloud Expo, Michael Piccininni, Global Account Manager - Cloud SP at EMC Corporation, and Mike Dietze, Regional Director at Windstream Hosted Solutions, reviewed next generation cloud services, including the Windstream-EMC Tier Storage solutions, and discussed how to increase efficiencies, improve service delivery and enhance corporate cloud solution development. Michael Piccininni is Global Account Manager – Cloud SP at EMC Corporation. He has been engaged in t...