Showing posts with label design. Show all posts
Showing posts with label design. Show all posts

Visualizing the systems behind our designs

Mike's Notes

A toolbox of diagrams for visual thinking about systems.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > UX Collective
  • Home > Handbook > 

Last Updated

26/10/2026

Visualizing the systems behind our designs

By: Justin Farrugia
UX Collective (Medium): 25/02/2020

Justin Farrugia: Editor of Casumo Design and Soundbite.

...

Tangible systems thinking that goes beyond buttons.

A button on the left which is what we see, and a complex casual loop diagram on the right which is what’s actually happening

Systems thinking is often heralded in different circles as a competency that’s worth investing in. Having a wider lens and being able to model the systems that influence inputs, outputs and the patterns of behavior for people using the products we build is how we can deliver real value.

Most product designers tend to default to design systems as a proxy for systems thinking. They’re not entirely wrong. The ecology around building design systems does require maintainers to think systematically. They need to deeply understand the core needs of the product team, to deliver reusable component libraries coupled with accompanying guidelines, processes, and documentation.

However, this doesn’t mean that building a design system is the only natural outcome of thinking in systems. Far from it.

Beyond buttons

As of writing, few people in history have had the surreal experience of being able to witness the Earth from space in person. Astronauts often recall the overwhelming experience they felt when looking at the fragile blue ball they called home. Their front row seats enabled them to see the world through a different lens, one where all life was interconnected and every system they’ve come to know was working in concert.

Astronomy author Frank White called this experience, ‘The Overview effect’.

Whilst not nearly as life-changing of an experience, zooming out from our narrowly focused product domains and realizing every design decision’s ripple effect in the ecosystem we operate in, can have a similar effect. Designing software often requires us to situate ourselves at both a macro and micro level. Yet, sometimes there’s a tendency to over-index on the latter at the expense of a broader set of goals.

As a result, we risk becoming distracted with the details when we can’t afford to do so. The tools, products and service experiences we’re shaping today are responsible for far more than just the daily metric movements relative to the bottom line. They inhabit already complex systems such as political landscapes or socioeconomic hierarchies and sometimes unconsciously introduce new dynamics that have outsized impacts.

"We are surrounded by systems that we’ve directly or indirectly shaped or been a product of."

That being said we’ve done very little to represent any of them. By doing so we can peel back the layers and uncover patterns, boundaries, behaviors and even points of leverage where we can infer our influence. The good news is that we have an underdeveloped muscle which we ought to flex more often that can help us out.

Tools of the trade

We often picture systems in a linear fashion where A leads to B. Needless to say this is a reductive way of describing relationships and causality, as it overlooks the fact that each node may disrupt or restore the balance in uniquely different ways. In other words, systems are messy.

Linear Systems Thinking versus Loop Based Systems Thinking

Instead of A leading to B, it’s more likely you’ll find something like, A can cause B and C given a set of conditions, both of which reinforce D which restarts the cycle. Now trying to articulate all that through text isn’t exactly the best way to explain what’s actually going on. That’s where system diagramming can come in handy. Below are a few examples.

Behavior Over Time Graph

You’ve probably already seen this type of diagram being plotted somewhere on an office whiteboard. This graph helps us see patterns and interrelationships that emerge over a specific period of time. We can use it to observe how and why something is happening.

Let’s use something we’re all too familiar with as an example — product debt. Two things that we can use as variables in our graph are the cost of building features which keeps rising exponentially as the product matures, and customer value delivered which is inversely proportional due to fragmentation and debt that the team is spending time wrestling with.

A behaviour over time graph that indicates when a product team should address its mounting debt.

Despite ancillary efforts to revive that delivery curve from declining further, it most likely wouldn’t be enough to curb the overhead. The intersection point between the two curves signals the necessity for a cadence of refactoring or even a commitment towards building a design system.

Quadrant Matrix

This is another common diagram, that also has likely donned a few whiteboards. It is mainly used to represent the strength of relationships between several different items. You’ve likely seen it being used to chart the impact versus effort of doing something in a bid to inform the decision-making process.

A quadrant of usability issues with repetition versus impact

Let’s say you’ve finished up a moderated usability testing session and you’ve come away with a few insights. To start applying what you’ve learned you’ll need to rank your findings against a few different dimensions namely repetition and impact. Using a quadrant matrix will help you synthesize the raw data you’ve collected and visually make sense of what issues were the most severe and iron them out through iteration.

Iceberg Model

The iceberg model is a tool that can be used to show the four levels of abstraction within a specific setting that can allow us to uncover the root cause of why something is actually happening the way it is. It helps us go beyond the observable events that anyone can notice, and help us realize the patterns that might have contributed to those events, the structures that have influenced those patterns and the underlying mental models that keep those structures in place.

Often times when we try to address a problem, we do it on an event level which in turn leads to suboptimization. It’s not enough to swap things around, change information flow or incentives. You’ll need to expand the perception and shift mental models to have leverage and upend the system.

Let’s take a real-world example of a product team that’s trying to meet a deadline. An event would be that the team doesn’t ship in time. The natural tendency is to be reactive and start to find people to blame. Instead of playing the blame game start looking at the trends that might have led to this.

The Iceberg Model representing the Events, Patterns, Structures and Mental Models behind a product team missing a deadline.

A pattern might be looking at recurring evidence like the team’s collective track record and finding that three of the last five things they’ve worked on have had overrun dates. The structures that might be causing these patterns could be bandwidth issues with engineers and designers needing to context switch due to commitments outside the team.

What’s keeping this system in place is the mental model each team member holds, which might normalize the balancing act of being first responders instead of establishing a cadence coupled with some boundaries.

Reinforcing Feedback Loops

However intentional it might have been, you’ve probably designed a reinforcing feedback loop. As the name suggests, these kinds of loops have self-reinforcing behavior where the actions of one variable reinforce another. I’d be remiss to not mention the Hooked model as an example of a reinforcing loop that optimizes user stickiness and engagement.

The Hooked Model by Nir Eyal.

Unsurprisingly, reinforcing feedback loops are used and abused. Most consumer products with some kind of social component and a healthy network effect have reinforcing feedback loops baked into the fabric of the core experience. Products like TikTok have predictive models, computer vision and matrix factorization algorithms each built-in to perfect the content recommendation loop and have our attention.

TikTok’s reinforcing feedback loop.

Even though it has a cold start problem, after only a few seconds of watching and a series of swipes TikTok has collected enough data points and spun that loop so many times, that the content suddenly becomes unmissable. The diagram above illustrates this example.

Balancing Feedback Loops

Instead of creating a snowball effect, balancing feedback loops counter an input with an opposite output. These loops can correct an oversupply or undersupply, indicate that a plateau has been reached or restore the lost stability back to the system. Like reinforcing feedback loops however, the outcome of balancing feedback loops might not always lead to positive outcomes depending on prior inputs.

Some teams seem to jump the gun when it comes to bridging the gap between their customer success representatives and the customers. Access to an agent is either obscured by a messy navigation system or else it’s available at all times even when unnecessary. Both are examples of a balancing feedback loop.

The ramifications of introducing a chat bubble representing as a balancing feedback loop.

The former being the increase in customer frustration in trying to flag an issue by jumping through a few hoops which leads to an inevitable decrease in experiential and customer satisfaction measures. The latter shows a complete disregard for the time spent in answering repeatable queries which increases given there is no FAQ-like system in place which in turn leads to customer success agents availability decreasing, diminishing the likelihood of being a first responder for high-value accounts.

External Factors, Gaps, and Delays in Causal Loops

In the ever-increasing complexity of the systems we build towards, loops rarely ever have equally defined units of input or output. There are usually things that happen in between or outside of the model that have an effect. What better way to represent concepts like gaps and delays than an unpredictable complex landscape like healthcare, specifically the use of software in aiding care decisions.

Electronic Health Records or EHRs are real-time robust systems used in hospitals that contain the medical history of a patient. Their goal is to ultimately chip away at the mundanity of paperwork and enable a meaningful patient to physician interaction. If you zoom out far enough, the most basic loop you can make out is the one where the effects of introducing an EHR into a previously paper-run practice become visible.

Diagram of a reinforcing feedback loop that shows the effects of introducing an Electronic Health Record or EHR.

As can be seen in the diagram above, the impact of introducing an EHR into the mix has saved staff time which in turn has increased the patient treatment quality. As a result, the better the treatment quality, the more time will be saved in preventing adverse drug events or readmissions.

Diagram representing a delay within a causal loop.

Now that’s not going to happen overnight, the staff on hand needs to be gradually onboarded onto the new system and get familiar. That’s why this feedback loop will likely have delays which we can represent by marking the arc with a double line.

Diagram representing an external factor, in this case an update to the software.

Our feedback loop is still looking a bit too convenient. Let’s introduce another component, such as an update to the EHR software. That in itself might eat up some of that time the staff is saving since there might need to be retraining. That’s called an external factor. Gaps can also be another feature of causal feedback loops. A gap can exist between the actual quality and the actions we’re taking to improve that quality.

Representing Gaps in EHR causal loops

In our example for patient treatment quality to improve, the gap in between, as shown in the diagram, is the secure migration of the patient records from paper to digital records. This, in turn, enables more confidence to adopt and inevitably invest in the software beyond just procurement, but also designing training programs for practitioners and defining performance targets such as decreasing error rates or patient treatment time.

Cause and Effect Diagram, Onion Model Diagram and a Hierarchy

These are just a select few of the tools available in your systems utility belt. Needless to say, there’s an abundance of other ways you can visualize systems. If you’re trying to bring clarity to a post mortem, you can use a cause and effect diagram to isolate what went wrong during a project. A stock and flow diagram can help you simulate the impact of your design decisions, whereas an onion model or hierarchy can help us see top-down or bottom-up causality, and chart the flow of influence.

...

Each of these visual aids helps us see things we couldn’t have possibly seen through a block of text, especially when co-created with people outside our discipline. They enable us to align viewpoints, understand root causality, synthesize, generate options and even simulate design decisions within our product experiences and organizations. Quite frankly, being able to produce these artifacts is a superpower.

That superpower, however, shouldn’t go unchecked. Systems can also be consciously designed to manipulate, cheat and sometimes even harm people. This underscores our responsibility to make we have a full understanding of the chain reaction our design decisions cause beyond canvas and code.

Just like the astronauts whose new perspective of our planet engendered a new sense of responsibility for the environment, we can use whatever palette of system diagrams to shape, tug or prune systems in small but impactful increments and become catalysts for sustainable and ethical change.


Designing Nested Tables: The UX of Showing Complex Data Without Creating Chaos

Mike's Notes

This gem was listed in a recent Smashing Magazine article. Will be included in a future update to the Pipi Design System.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Smashing Magazine
  • Home > Handbook > 

Last Updated

03/10/2026

Designing Nested Tables: The UX of Showing Complex Data Without Creating Chaos

By: Damilola Bamgbelu
Medium: 20/05/2025

Damilola Bamgbelu: Product Designer, best known for crafting great experiences that deliver audacious results for both users and stakeholders.

...

Nested tables have a bit of a reputation. They’re often seen as messy or overwhelming, but when used thoughtfully, they can actually help users make sense of complex, layered information, without jumping between screens.

UI comparison of single vs. multi-level nested tables showing category data, with notes on usability benefits for each approach

I remember the first time I designed a nested table. It looked amazing in Figma: beautiful rows expanding neatly into sub-rows. I thought I was a genius.

Until user testing.

One participant squinted at the screen, clicked a few times, then said:

“Wait… where am I now? What row was I just looking at?”

That’s when it hit me:

Nested tables aren’t just about organizing data. They’re about organizing thinking.

…If you’ve ever struggled to design tables that show parent and child data together , without overwhelming users, this article is for you. Let’s walk through it step by step.

1. Always Start with “Why Nest This?”

Imagine you’re packing for a trip. Do you cram everything into your backpack just because you might need it? Or do you only pack what you’ll actually use?

Nested tables are the same. If users don’t need the child data right now to make a decision or take action, don’t show it inline.

Always ask:

  • Why does this need to be visible right now?
  • What task does seeing both parent and child data help users complete faster?
  • Could a modal, tab, or progressive disclosure do it better?

If you don’t have a strong reason, nesting is clutter, not clarity.

As Steve Krug puts it in Don’t Make Me Think,

“Every element you add competes with every other element for your user’s attention.” [1]

The more things you show on screen at once, the harder it is for users to know what to focus on.

A designer processing thoughts on what design decisions to make. Source: Freepik

2. Keep It Shallow: Two Levels Max

Picture this: you’re standing at the edge of a swimming pool. Jump into the shallow end? Great. Dive straight into the deep end with no bottom in sight? Panic.

Deep nesting feels like drowning in data.

  • One level of nesting (Parent > Child) is good.
  • Two levels (Parent > Child > Grandchild) is manageable — if truly needed.
  • Three or more? Stop. Redesign.

Humans aren’t built to track endless layers while scanning a screen. This aligns with George Miller’s Law, which says:

“Humans can comfortably hold 5 to 9 items in working memory.” [2]

If you must use multi-level nesting:

  • Visually differentiate each layer (indentation, color bands, labels)
  • Limit nesting to 2 levels
  • Provide expand/collapse all and clear context cues

To borrow a thought Jared Spool and Steve Krug might both agree on:

“The deeper the nesting, the higher the cognitive load. Use with restraint, and always design for collapse.” [3]

3. Make Expanding and Collapsing Feel Effortless

Ever opened a drawer and it jammed halfway? Now compare that to one that slides open smoothly. That’s how expanding a nested row should feel: smooth, responsive and satisfying.

When someone clicks to expand a row, they should get immediate, clear feedback, such as:

  • A smooth animation
  • A skeleton loader
  • A rotated chevron

These are microinteractions, small signals that say, “Yes, that worked.”

According to Jared Spool:

“Good UX reduces uncertainty at every interaction.” [4]

If there’s silence, delay, or confusion, users hesitate or worse, assume it’s broken. Every tiny motion helps users trust what’s happening.

UI showing nested tables with chevron icons to expand/collapse rows and a skeleton loader for loading child data illustrating that expanding and collapsing should feel effortless

4. Prioritize Scanning, Not Cramping

One of the biggest mistakes with nested tables is trying to show everything at once. The result? A wall of numbers, labels, and rows that’s hard to parse.

You know that feeling you get when you walk into a store that’s so packed you can’t even move? That’s how users feel when a table is over-stuffed with information.

Your goal: Make it insanely easy to scan. If someone can’t scan your table in 2–3 seconds and find what they need, it’s too dense.

How to improve scan-ability:

  • Clearly indent child rows to show hierarchy
  • Use soft shading or dividers to separate levels
  • Keep typography clean and consistent
  • Add sticky headers to maintain context

As Edward Tufte famously said:

“Clutter isn’t about the information itself. It’s a failure of layout.” [5]

Table UI showing clear row indentation for hierarchy, soft shading to separate levels, clean typography, and sticky headers to maintain context while scrolling

5. Never Leave Users with a Blank Expansion

Expanding a nested table row should feel purposeful, not like a dead end. Think of it like opening a fridge expecting leftovers, only to find it empty. No note, no label, no clue what happened.

That’s what it feels like when a user clicks to expand a row and sees nothing. When there’s no child data to display, it’s not enough to show an empty cell. A blank space can confuse users and make them wonder:

Instead:

  • Explain the state: e.g. “No related tasks found”
  • Suggest the next step: e.g. “+ Create Task”
  • Make it visually distinct: muted icons, faded backgrounds, or subtle illustrations

This tiny design choice adds clarity.

As Luke Wroblewski advises:

“Empty space should guide users toward their next action, not leave them wondering what went wrong.” [6]

Nested table UI showing an expanded row with an empty state message and a clear call-to-action button

6. Build Accessibility in from Day One

You’ve designed a slick, responsive table. It expands smoothly. It works in dark mode. But here’s the test:

  • Can a screen reader user understand the structure?
  • Can a keyboard-only user navigate the table easily

If not, you’re unintentionally excluding users. As Whitney Quesenbery puts it:

“Accessibility is not a feature. It’s a foundation.” [7]

Nested tables add visual hierarchy and relationships that are obvious to sighted users, but completely invisible to users relying on assistive technologies.

Without proper semantic markup, screen readers can’t tell what’s expandable, what’s nested inside what, or even what content is currently visible. And for keyboard users, expanding a row should be as easy as clicking, but often isn’t.

To make a nested table accessible;

  • Use semantic HTML

    Use actual <table>, <tr>, <td>, and <th> elements — not divs styled to look like tables.

  • Use aria-expanded and aria-controls

    These attributes help screen readers announce whether a row is open or collapsed, and which section it controls.

  • Ensure keyboard navigation

    Users should be able to tab through parent and child rows, expand/collapse with Enter or Space, and not lose focus in the process.

  • Design an alternate flat view

    For users who don’t benefit from inline nesting (e.g. screen reader users), offer a simplified version — a grouped list or summary view that doesn’t require expanding/collapsing.

Accessibility doesn’t only benefit users with disabilities.

  • Clear structure improves usability for everyone.
  • Keyboard-friendly interfaces help power users navigate faster.
  • Screen-reader compatibility often translates to better semantic structure and more maintainable code.

Side-by-side nested table designs, one accessible with semantic HTML, ARIA support, keyboard navigation, where the other lacks these features.

Final Thoughts

Nested tables aren’t the enemy. Careless nesting is. When designed intentionally, they:

  • Reveal relationships
  • Enable fast decisions
  • Prevent unnecessary page hopping

But if poorly designed, they:

  • Confuse users
  • Increase cognitive load
  • Exclude those who rely on assistive tech

Designers must treat nested tables not just as containers of data, but as tools for clarity and action. That means:

  • Start with why
  • Design for scanning and accessibility
  • Plan microinteractions
  • Never leave users wondering what’s happening

Good UX isn’t about making data visible.

It’s about making it useful, usable and usable by everyone. Nested tables are powerful. Use them with care.

References

  1. Steve Krug, Don’t Make Me Think, 2000.
  2. George A. Miller, “The Magical Number Seven, Plus or Minus Two,” Psychological Review, 1956.
  3. Paraphrased synthesis of ideas from Jared Spool and Steve Krug on cognitive load and interface clarity.
  4. Jared Spool, quoted in multiple UX talks and writings on reducing uncertainty in interactions.
  5. Edward Tufte, The Visual Display of Quantitative Information, 1983.
  6. Luke Wroblewski, “Designing for Empty States,” blog and presentations on interface design.
  7. Whitney Quesenbery, quoted in A Web for Everyone: Designing Accessible User Experiences, 2014.

Useful Books For Designers Working On Complex Problems

Mike's Notes

Another wonderful resource list from the one and only Vitaly Friedman of Smashing Magazine fame.

There were too many links to copy here, so check out the original post.

Thanks, Vitaly. 😎

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Smashing Magazine
  • Home > Handbook > 

Last Updated

12/09/2026

Useful Books For Designers Working On Complex Problems

By: Vitaly Friedman
LinkedIn: 14/08/2026

Vitaly Friedman: Vitaly Friedman loves beautiful content and doesn’t like to give in easily. When he is not writing, he’s most probably running front-end & UX workshops. He loves solving complex UX, front-end and performance problems. He also runs Smart Interface Design Patterns, a video course and UX training for passionate UX designers.

...

Chances are high that you are working on a challenging, complex product. And perhaps in a difficult and heavily restricted environment, too — a workplace with deep organizational hierarchy, domain complexity, entrenched culture, untamed legacy and conflicting priorities from opinionated stakeholders at every turn.

How do you thrive and survive in such environments? Well, there are no quick answers to that question. A few weeks ago I stumbled upon a fantastic overview by Daniel Burka, with books for designers who are setting out to make a lasting difference — in healthcare, education, public service, climate change. So I thought I'll put together a few of my personal book recommendations as well. Let's take a look.

My personal book recommendations for designers working on hard, complex problems.

My Personal Book Recommendations

  • How Big Things Get Done, by Prof. Bent Flyvbjerg and Dan Gardner. Fantastic research on why complex projects run late and over budget, why right-to-left thinking matters and how to minimize risks of failures and delays.
  • Factfulness, by Hans Rosling. A fantastic book on how to better understand messy reality by learning where progress has happened, where challenges remain and how evidence can guide better decisions.
  • The Phoenix Project, by Gene Kim, Kevin Behr and George Spafford. A fictional novel, but a truly insightful book on the importance of flow, bottlenecks and operations in a product/IT company.
  • The Goal, by Eliyahu Goldratt. A legendary classic on improving a system by finding and fixing bottlenecks — for PMs and product or staff designers.
  • Thinking in Systems, by Donella Meadows. Probably the clearest guide I could find about systems thinking, feedback loops and how to intervene at the right time, with the right pace at the right place.
  • Algorithms to Live By, by Brian Christian and Tom Griffiths. An insightful deep-dive into how people make daily decisions, and how to deal with overwhelming choices.
  • The Culture Map, by Erin Meyer. A wonderful book on how to communicate and work with truly global teams across cultures — from feedback and trust to collaboration and decision-making.
  • Articulating Design Decisions, by Tom Greever. A very practical strategic book on how to communicate UX work effectively to senior management and people who need to approve your work.
  • Narrative Economics, by Robert Shiller. A book focused on economy, but really about how ideas move markets. A great read on how contagious stories, not just data, drive decisions, events and spread impact over time.
  • Envisioning Information, by Edward Tufte. A deep, dense classic on how to deal with complex data and how to display it to maximize clarity. A must-read for every data visualization work.

Not really books for designers, and not books about design either. But great books about planning and thinking: How Big Thigns Get Done and Algorithms To Live By.

  • The Great Mental Models, by Shane Parrish. How people think, grasp new areas, find patterns and understand the world. A lovely series about mental models and how people think.
  • A Pattern Language, by Christopher Alexander. Actually a book about patterns in architecture, but also about how spaces are organized, and how to think of living and working systems.
  • Org Design for Design Orgs, by Peter Merholz, Kristin Skinner. How to build, structure and scale in-house design teams — on hiring, roles and operating models. Not a topic that's often covered.
  • Thinking in Bets, by Annie Duke. Perhaps a bit of a cliché recommendation, but a lovely book on how to make better decisions under uncertainty, when you don't have enough evidence.
  • The Missing Billionaires, by Victor Haghani and James White. To me, a fantastic book about risk management without being a risk management book. How to strategically approach risk and financial decisions over a long period of time.
  • Why Design Is Hard, by Scott Berkun. A lovely little book about the inherent complexities and challenges of the design process.
  • Practical Charts, by Nick Desbarats. The only practical guide to charts that I found incredibly easy to understand. A must-read for data viz and dashboard design.
  • The Laws of Simplicity, by John Maeda. A classic. A very short book that entirely changed how I think about design decades ago.

New Books For UX and Interface Designers

There are quite a few new UX books that I have on my reading list (and had on it for quite some time), but actually didn't yet find time to get into. So if you're looking for a new book for yourself or for your colleagues, here are a few recent ones that caught my attention (published between 2025 and 2026). I hope you'll find them useful, too.

UX & Product Design

  • Inviting Depth: Richer Research Interviews, by Brandon Berry PhD, Thomas Williams. How to conduct more meaningful research interviews and help researchers uncover deeper insights from users.
  • Research Practice, by Gregg Bernstein. With practical advice and frameworks for effective and ethical research practices.
  • Sentient Design, by Veronika Kindred, Josh Clark. A practical book on how to use AI effectively to design "intelligent" experiences, with many useful insights and practical techniques.
  • UX for AI: A Framework for Designing AI‑Driven Products, by Greg Nudelman. Quite technical at times, but packed with real case studies of how products teams design and build AI experiences from scratch. Currently reading.
  • The Designer's Guide To The Buttons, by Andrey Markelov. Actually a mix of a history book about interfaces and UI components — a comprehensive visual guide to the history, logic, and evolution of user interfaces, from Xerox Alto to Vision Pro.
  • Building The Research Engine, by Julian Della Mattia. A practical guide on how to set up a research practice from scratch and how to make sure that research efforts are noticed and its outcomes are actually used.

  • Shift Happens, by Marcin Wichary. An extensive (!) research on the history of keyboards, keyboard layouts — from early typewriters to the pixellated keyboards in our pocket. Sadly sold out at the moment.
  • Designed With Care, curated by Rachel Edwards. A beautiful overview of how to create inclusive trauma-informed content across various domains.
  • Staff Product Designer, by Artiom Dashinsky. A very honest and practical deep-dive into senior product design roles and career progression.
  • Everything is a Prototype, by Brendan Kearns. How to prototype better, with tools for more productive experimentation.
  • Accessible UX Research, by Michele A. Williams, PhD. Our new Smashing book, on how to conduct inclusive UX research — from planning and recruiting to facilitation, asking better questions, avoiding bias and building trust.
  • Good Services, by Lou Downe. Focuses on the principles behind designing digital services that actually work for people.
  • The Solo: Grow Your Own Digital Products, by Christine Vallaure de la Paz. A practical guide for designers looking to create and scale up their own digital products.

  • The Making of Prince of Persia: Journals 1985–1993, by Jordan Mechner. Per se not a classic design book, but a deep dive into how the legendary game I was playing for months came to be.
  • The Core Model Digital Strategy, by Are Halland. How to approach digital strategy and more strategic, collaborative design.
  • The Path to Senior Product Designer, by Artiom Dashinsky. Another book by Artiom, focusing on the journey and skills required for senior-level product design.
  • Hey UX, Hey PM, by Jeff Carpenter. Interesting: explores collaboration and communication between designers and product managers.
  • The Staff Designer, by 🐱 Catt Small 👩🏾💻. A guide for staff ICs on how to grow, influence, and lead effectively without moving into people management. Catt has a great Maven cohort as well.

Dashboards and Data Visualization

  • CHART: Designing Creative Data Visualizations from Charts to Art, by Nadieh Bremer. Very high on my list as I would trust Nadieh on everything data visualization! How to transform data into impactful visual narratives, moving beyond standard charts.
  • Dashboards That Deliver, by Steve Wexler, Jeffrey Shaffer, Andy Cotgreave, Amanda Makulec. New book on designing impactful dashboards with insights and drive action.
  • Speak Data, by Giorgia Lupi, Phillip Cox. An interesting book on how to communicate complex data effectively. Great for a kitchen table, too!
  • Practical Charts, by Nick Desbarats. A hands-on guide to designing honest and functional charts, with useful decision trees to use.

Cards & Cheat Sheets

For quick reference, here are few lovely card decks and cheat sheets:

  • Storyteller Tactics, by Steve Rawling. A legendary deck of cards to design compelling narratives for presentations and user stories.
  • UX Research Cheat Sheets, by Stéphanie Walter. Helpful user interview question cheat sheets, question cards and UXR workshop templates.
  • UI Fonts Checklist, by Oliver Schöndorfer. A practical guide to selecting typefaces for UI design.
  • Smart Interface Design Patterns, by yours truly Vitaly Friedman. My little collection of useful checklist cards for pretty much any UI component!

“But What About AI?”

There are strong voices arguing that many of these books belong to the pre-AI era, and hence they are slightly outdated and not particularly useful.

I strongly disagree. I don't really think that AI makes these books less relevant today — if anything, AI probably amplifies a desperate need for these books to be written and published and read. And I don't think AI can turn good intentions with poor ideas into good design — even with the best context and design harness provided to it.

In the world where we can generate hundreds of flows and prototypes quickly, or hyper-personalize experiences to every individual user, we need to make very, very good decisions on which flows are driving us towards a goal, and how our work drives users to their goals as well.

The books above are about better judgment, about critical and strategic thinking, human-led research, better sense-making and decision making. AI can surely augment it, but the quality lies in humans curating and choosing directions and making better decisions as a result. I'm quite skeptical about people allowing AI to fully take over decisions any time soon.

Useful UX Book Lists

And just in case you need more specialized book recommendations — for entrepreneurs, researchers, accessibility professionals, product managers or behavioral scientists, here are a few useful bookmarks of recommendations by other fine folks.

50 Short Books For Designers, brought together by David Demaree and the team at Bits&Letters.

  • 50 Short Books For Designers, a wonderful directory of free and non-free books, published by A Book Apart, but then disappearing from the web — now brought together in one single place, with freely available versions, references and links in one place. Kindly put together by David Demaree and the team at Bits&Letters.
  • Free Books For Interface & UX Designers
  • Book Recommendations, by Stripe Press
  • UX Research Books, by Stéphanie Walter
  • Inclusive Design Books, by Jessica Ivins
  • Books For Accessible Products, by Cat Noone
  • Books For Entrepreneurs, by Intercom
  • Product Management Books, by Paweł Huryn
  • Behavioral Science Books, by Robert Meza
  • Data Visualization Books, by Nadieh Bremer
  • Business Books For Designers, by Chris Do
  • Interface Design Books, by Adham Dannaway

Wrapping Up

The world desperately needs patient and passionate designers to improve the messy, complex and legacy-ridden systems that are so common and so frustrating in daily lives of millions of people.

You might feel stuck — in enterprise environments, education, healthcare and public services; yet that's exactly where your design work can make a tremendous impact for people who need it the most. It's at times a painful but extremely rewarding experience, as long as you bring along enough patience and care.

Just one final note. Many of the authors above also provide an incredible amount of free content for everybody to use and learn from. I kindly encourage you to support their work if you can, and always purchase books from their own recommended sources, rather than discount retailers. 

Do you have books you'd add to this list? I'd love to hear your recommendations for books that made a difference for you — please leave a comment below. I try my best to read and answer every single comment and email I receive, so please don't hesitate to reach out.

Digital Accessibility Training

Mike's Notes

I stole this content from all over the place. Sorry if I didn't credit you; I forgot where this came from. All useful stuff.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

04/08/2026

Digital Accessibility Training

By: Mike Peters
On a Sandy Beach: 04/06/2026

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Accessibility For Everyone (https://lnkd.in/dVvgMG29), a wonderful free book on web accessibility for designers, developers, content folks — pretty much everyone. Written 9 years ago, but still very much relevant today. With sections on disabilities, impairments, planning for accessibility, design and testing. Kindly released by Laura Kalbag.

Free Books on Accessibility

Giving A Damn About Accessibility, by Sheri Byrne-Haber (disabled)

PDF: https://lnkd.in/eqbz5Npw

  • Audio: https://lnkd.in/emYMbEDc

Web Accessibility In Plain Language, by Charlie Triplett

  • https://lnkd.in/e2AMAwyt

AccessAbility Playbook, by Government of Canada

  • https://lnkd.in/e2W3viJb

Appt Accessibility Handbook, by Jan Jaap de Groot, Paul van Workum CPACC

  • https://lnkd.in/e3V7eTU9

Accessibility Foundations (Free Guide), by Henny Swan

  • https://lnkd.in/erGd9vX7

WCAG 2.2 Card Deck (Updated!), by Johannes Lehner

  • https://lnkd.in/eQgDsY9j

Free Practical Books For Designers

  • https://lnkd.in/dsxAukXq

And a *HUGE* thanks yet again to wonderful Laura Kalbag and everyone sharing their insights, learnings, and experiences in wonderful resources like these — for everyone to learn from and build open. Your work doesn’t go unnoticed!

Jessica Kerr on Symmathesy

Mike's Notes

I was watching "A Learning System Made of Learning Parts" on Still Burning, an episode of Kent Beck's video blog.

Jessica Kerr joins Kent by the fire to argue that AI didn't take the programmer's job; it split it in two. The part we loved, crafting code by hand, has been commoditised like IKEA furniture. What's left is harder and more human: understanding what to build, proving it works, and stewarding the living "symmathesy" of people, code, and agents all learning from each other. They get into accelerated learning, why play is a signal you're learning, the loop that "becomes a noose," and choosing excitement over fear while the ground keeps shifting."

Resources

References

  • Symmathesy — A Word in Progress Proposing a New Word that Refers to Living Systems. Nora Bateson. Nora Bateson Foundation

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Still Burning
  • Home > Ajabbi Research > Library > Authors > Kent Beck
  • Home > Handbook > 

Last Updated

02/08/2026

Jessica Kerr on Symmathesy

By: Jessica Kerr
Jessitron: 15/04/2018

Jessica Kerr manages the Developer Relations team at honeycomb.io, because observability is one way our teams learn from our software. In speaking and teaching, Jess works across languages and communities, spreading cheerful deep thoughts. Code, tools, and people are not separable; all form the team that operates useful software.

Symmathesy is a term coined by filmmaker and systems theorist Nora Bateson in 2015 to describe a learning system made of learning parts, emphasising mutual learning that occurs within and between living contexts. Derived from the Greek roots sym (together) and mathesi (to learn), it serves as a response to mechanical, rigid frameworks by shifting the focus from individual elements to the dynamic relationships that generate evolution and adaptation.

In a symmathesy, learning is not an isolated process of acquiring information; it is an ongoing, multi-contextual process of mutual adjustment and calibration.

Collective problem solving in music, art, science, and software

A Learning System Made of Learning Parts

Everything to Gain from Thriving Southland

Mike's Notes

My notes from an all-day workshop organised for farmers, which I attended yesterday.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Thriving Southland
  • Home > Handbook > 

Last Updated

08/05/2026

Everything to Gain from Thriving Southland

By: Mike Peters
On a Sandy Beach: 07/05/2026

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

I attended the all-day workshop "Everything to Gain" on 6 May 2026, held at the Ascot Park Hotel in Invercargill, New Zealand. Organised by Thriving Southland.

It was a day full of informative speakers on the global agricultural market, attended mainly by working farmers.



I learned a great deal from the objective data presented and from chatting with the farmers at our table. Hard times are ahead.

Thinking visually while listening

I mentally ran the Workspaces for Agriculture, testing the model assumptions against what I learned.

I also did a brain dump by creating 12 A4 drawings and solving the problem with variables in the current Pipi Core buildout.

Lessons I learned

Shifting a working Pipi 9 from a laptop to a data centre led to several unexpected consequences.

I underestimated the impact of

  • The naming, generation, and pub/sub of variables.
  • Host environment.
    • OS
    • Java
    • CFML Engine
  • Needing to turn Pipi into 4 separate role-based editions, which then exposed some hidden problems.
  • Adding a nest structure between Pipi and the host environment.
  • The impact of all of the above when each engine can pub/sub and be both deterministic and probabilistic, with multiple copies of each engine, and many in different locations.
  • Path length constraint in Windows vs Linux.

This very hard problem can only be solved by running a simulation of all 18 engines in parallel and watching the interaction. Lots of feedback loops.

Yesterday, a lot of progress was made visually, answering these questions. The variable-naming convention used for 12 months has held up, despite some earlier false flags.

  • More work is needed on variable distribution rules (messaging) for automation.
    • Global
    • Local
    • etc

Today I did another 8 drawings. They were of the Messaging Engine (msg) routing variables between the engines in both deterministic and probabilistic modes.


I will sleep on all this for a few days to see if anything else pops out, then commit it to code.