The more I learn how to code the more similarities I see between computers and ourselves. Like a computer, there’s a limit to how much information the human brain can process at once. When asked to do too much, our willingness to complete a task starts to wither and, eventually, shuts down.
Over the past few months I’ve been working on my first real programming project, a meet up app called Chill. One of the most difficult aspects has been optimizing how it uses the memory allocated by the user’s device. Like bad design, memory issues can be disregarded and your app will still work, but by no means does that give users the best chance to succeed.
I’ve found the same process works whether you're designing for humans or computers; one audience is just more predictable. Both give you hints when you're asking too much of them, and both shut down when you’ve taken it too far. But no matter who (or what) your audience may be, I've learned to never ask for more than what’s necessary.
Manage how tasks are processed
To get the most out of the machine running your code, you dedicate it's memory to the tasks at hand, release anything you don’t need, and point to where it can access information in the future. The same can be done with people.
To get the most from your users, you have to first break down tasks into bite-sized portions. This helps users dedicate all of their mental processing power to whatever task you've asked them to complete. As they progress, show what information has been saved so they dedicate more memory to whatever is next.
If tasks aren’t managed properly you run the risk of users shutting down and leaving your app. But this is entirely avoidable if you’re able to delegate which tasks users need to focus on, and, more importantly, which ones they shouldn’t.
Memory over intelligence
Memory (or mental capacity, in this case) and intelligence are both used when doing something completely new, but with so many patterns and flows reused across the web, only memory is something that is a factor in every user session.
As a designer, I know to lean on as many constraints as I can. If managed the right way, memory can be one of those constraints that breaks up your solution into the right-sized portions.