How Designers can succeed on Agile Teams Flashcards
Why is it important to design, build and ship small things?
- We get to deliver a potentially valuable thing to somebody who can start using it immediately instead of making them wait for dozens of other, unrelated features or changes.
- By shipping smaller things more frequently, we have more chances to get feedback on our ideas and execution
- Delivering small features early gives you information that can help your team make a decision about whether the rest of the feature is worthwhile.
How do you design small?
- Understanding the core goal of the feature or product you’re creating
- Experiment with one: consider only fully designing and building one at a time, preferably prioritized by which you think will deliver the most value based on your research.
- Start without code. Code is expensive. Prototypes and experiments are cheap.
- Stop thinking that you have to launch every new feature with a press release and a marketing push. You’re still delivering value to users, even if you’re only delivering it to a few dozen beta testers or some internal folks who have volunteered to try things out.
- Think of all the hours spent grinding out gorgeous designs for products that nobody ever uses. Think of how much more useful it would have been to spend those hours testing ideas and finding a product that people actually want to use before putting the work into making everything perfect.
- Commit to Iterating
What does designing from the outside in mean?
Scope out the overall design first and work on smaller details while engineers are implementing the structure.
What is iteration?
Iteration is about working on the same piece of a product or feature over and over and improving it constantly, rather than shipping something and declaring it done forever or until a major redesign.
What is it to be really agile?
To really be agile, we need to commit to iterating on features and products, until we’ve got them right.
Nothing is perfect forever, and iteration allows us to keep coming back to something that may have worked fine under certain circumstances and fix it so that it works well under new circumstances.
What is refactoring?
When engineers “refactor” code, it means they change the underlying structure of the code generally without affecting the external behavior.
For example, let’s say there are two parts of the code that do very similar things. An engineer might notice that there are functions in multiple places that do similar things and rewrite them into a single function. This is a pretty common way of refactoring code to improve quality and reduce complexity.
What does refactoring involve?
A refactor involves changing the way some part of the design is structured to allow us to scale something or change something in a way that is required to meet our user and company goals.
Knowing that we can refactor a design gives us permission to do what?
It gives us permission to occasionally release something that is an experiment or that we know isn’t going to scale particularly well or to release a feature that isn’t perfect yet.
What do we mean by refactoring a design?
Changing the structure of a part of the design when the current design no longer meets our goals.
Design iteration is important because:
a. Users expect to see new enhancements and redesigns regularly.
b. The business needs to keep shipping new features to stay ahead of the competition.
c. It helps improve the product’s usefulness and usability.
It helps improve the product’s usefulness and usability.
How can design systems help agile teams?
By making the interface elements consistent and defined early, designers can focus more on the process, flow and content of a feature. Often, smaller changes won’t need much visual design at all, and larger changes might only need certain pieces of layout and visual design specified, which can cut way back on deliverables and speed up design time.
What is a design system?
Is a library of reusable components and guidelines that people within a company can combine into interfaces and interactions.
Why are design systems helpful?
Design systems let us be more agile. They help us waste less time designing brand-new visuals for every single feature. They keep things consistent, even when we’re incrementally building over time. And they help us quickly test out our ideas in a cross-functional way by making it easier for anybody to prototype a new feature or idea.
They do take a bit of time upfront to get right, and of course, we do need to keep them up to date over time, but even on smaller teams, they can vastly improve efficiency and outcomes.
When properly implemented, it speeds up the design process. They also make it so that designers and the rest of the product team can focus more on the flow and logic of a new feature or screen rather than the visual design.
It allows you to come up with a new interface element, instead of focusing on an individual element on each screen by hand from scratch.
Instead of making pixel-perfect mockups of every screen, they started working out the designs and flows with engineers collaboratively by discussing user stories and assembling elements together into a coherent, testable whole. As a bonus, these quickly built prototypes were easy to test with users using real data, and once they’d settled on a solution, they were even quicker to turn into real features.
Why are design systems important for agile teams?
While design systems aren’t an explicitly agile tool, they do help teams waste less time, and they cut down on unnecessary deliverables quite a bit. They can also help foster better communication and collaboration between engineers and designers. Let’s look at how they do that.
How can design systems help teams be more agile?
By making it easier for non-designers to create potential designs.
By allowing designers to focus more on logic than visuals.