Solving Design Problems like a Mathematician

While reading a forum discussion on FreeCodeCamp, I came across a reference to George P贸lya’s book, “How to Solve a Problem”. In this post, I review P贸lya’s problem solving strategy. I then apply the techniques in this book to provide a structured account of the work I’ve completed in updating my portfolio. Also, some nice photos of the East River. 馃檪

In a recent FreeCodeCamp forum, someone asked a question about journaling:

Hi coders,
While looking for the source for my project, I saw that some programmers or developers wrote a kind of diary to keep track of the code. I think it鈥檚 nice, but I was wondering exactly how you can structure a diary and if any of you use this to write code.聽Question here.

Good question. I’ve seen other people use diaries or online journals, or those things people use…writing logs or whatever. 馃檪

Anyway, the only reply includes a link about using a “logbook”. On the link page, the author references George P贸lya聽and his book聽How to Solve It. I had never heard of this person or his book, so I did a little research.

George P贸lya, (1887 – 1985)

George P贸lya was a Hungarian-born mathematician who was known for his mathematics work, as well as his work in heuristics. Heuristics is “any approach to problem solving or self-discovery that employs a practical method”.

“Examples that employ heuristics include using a聽rule of thumb, an聽educated guess, an聽intuitive聽judgment, a聽guesstimate,聽profiling, or聽common sense.”

He聽wrote a book about solving problems using common sense principles.

1st edition cover of “How to Solve It”, published in 1945, by George P贸lya, a Hungarian mathematician.

The George P贸lya Method of Solving Problems

The Wikipedia page聽shows that聽P贸lya聽lays out some pretty good heuristics for solving problems. Although he intended for these strategies to be used for solving math problems, I think they could be used to provide a structured method for solving almost any difficult problem.

The P贸lya problem solving method involves 4 principles:

  1. First, you have to聽understand聽the聽problem.
  2. After understanding,聽make a plan.
  3. Carry out the plan.
  4. Look back聽on your work.How could it be better?

So how does it work?

Principle 1: Understand the Problem

P贸lya based the first principle, Understand the Problem, on the idea that math students struggled to solve problems due to a聽lack of understanding聽the problem in full or in part. His technique involved coaching teachers to prompt students with the following questions:

  • What are you asked to find or show?
  • Can you restate the problem in your own words?
  • Can you think of a picture or a diagram that might help you understand the problem?
  • Is there enough information to enable you to find a solution?
  • Do you understand all the words used in stating the problem?
  • Do you need to ask a question to get the answer?

Essentially one should not move past principle one until a constructive answer can be given. It’s not clear from the Wikipedia entry if a constructive answer is required for聽each question or the entire problem.

聽Principle 2: Make a Plan

Basically he felt that a person gets better at selecting a good plan/strategy the more times they solve problems. Here’s a big list of strategies:

  • Guess and check
  • Make an orderly list
  • Eliminate possibilities
  • Use symmetry
  • Consider special cases
  • Use direct reasoning
  • Solve an equation
  • Look for a pattern
  • Draw a picture
  • Solve a simpler problem
  • Use a model
  • Work backward
  • Use a formula
  • Be creative – (“[Have] patience to wait until the bright idea appears”)
  • Applying these rules to devise a plan takes your own skill and judgement – (“Always use your own brain first”)

Principle 3: Carry out the plan

Simple enough, but the main problem people have with this step is giving up too soon. For that, the Wikipedia entry says:

“In general, all you need is care and patience, given that you have the necessary skills. Persist with the plan that you have chosen. If it continues not to work, discard it and choose another.”

Principle 4: Review, Reflect and Extrapolate

Take a look at what you’ve done, and evaluate how well it worked (or didn’t), and see how you can use what you’ve discovered for future problems.


Finding the book:

If you want to find this book, I recommend trying your library. I found it by searching for "how to solve it book pdf" (Google suggested the "pdf") and I found a copy.

Applying These Principles

I recently had a conversation with someone about my job hunt, which I temporarily paused聽in order to聽more deeply analyze UX portfolios.聽The person I talked to聽did not understand why I had paused my search and why I seemed so focused on analyzing portfolios instead of fixing my own and getting on with the search.

Thinking back on that conversation, the problem I had in communicating was that I had already done so much prior to all the analyzing that I skipped a lot of the story in explaining my progress.

When I came across the question on FreeCodeCamp and the ideas in this book, I thought I should take the time to write down all the steps I’ve done to provide a more comprehensive and structured account of what I’ve done and accomplished in updating my portfolio and why. My strategy is that it will help me organize my thoughts and resulting actions, and help me either solve my problem(s) or cross an strategy dud off the list.


For the rest of this blog post, that’s what I’m going to do. It’s just going to be a bit of a stream of consciousness, so consider yourself forewarned!

Main Problem: I’m embarrassed to admit this, but my number one problem is unemployment. All of the portfolio problems I’ve been trying to solve for the past undisclosed months are directly due to job hunting. I’ve been so focused on my portfolio because of the feedback I received related to that, and I simply haven’t finished making updates.

Breaking this problem down into sub-problems has led me to spend time improving my resume in the beginning of the year, and now I’m focused on improving my portfolio. I don’t truly know if my portfolio is a聽contributing聽reason for my continued unemployment, but since it’s under my ability to change I’m making updates to see what works.

Although I got some portfolio feedback, I still wasn’t exactly sure how to improve my portfolio or the best tool to use for it.聽But the information I’ve gathered about portfolios has been helpful to help me narrow my options down.

Analysis

Sub-Problem: Which tool is best to rebuild my portfolio
  • Option 1: DIY is a common option and I recently discovered Tachyons.io CSS framework.
  • Strategy: Explore Tachyons.io as a DIY option, vs Bootstrap which I have used before.
  • Actions:聽I learned that the default WordPress 2020 will be using the typeface ‘Inter‘.聽From the Inter website: “Inter is a typeface carefully crafted & designed for computer screens.” When I looked at some of the samples, I saw these Swiss style posters.
https://rsms.me/raster/examples/poster.html
labs.jensimmons.com

The posters聽reminded me of Jen Simmons who uses a similar style for her site labs.jensimmons.com which explores experimental layouts.

There are a few Swiss poster-inspired websites and articles exploring experimental web layouts:

Anyway, because of CSS grid + the Inter font (which is free), and GridbyDesign.com, a site providing InDesign grids, I thought:聽Wow I could really create a unified online and offline experience based on the Swiss poster style!

Outcome thus far:聽Tachyons classes are a little cryptic because they’re meant to be applied one at a time. The other problem is that I don’t really have a design in mind (a sub-sub problem?) so聽it’s a little difficult to evaluate聽whether or not this is a viable option. (A sub-sub-problem I experienced was using BackgroundSync, which I couldn’t initially get to work. I find sub-sub-problems often come up in coding.) Ultimately, I might be better off using a CMS, like Squarespace, to solve the online portfolio problem / job hunting problem, which is more critical than a unified user experience at the moment. WordPress can be free/cheaper and it can be installed on a subdirectory. Squarespace and other CMS tools can only be installed on subdomains or the central domain.

Sub-Problem: How to improve my portfolio.
  • Strategy: Use quantitative analysis to uncover what specific elements make a top UX portfolios.聽And then replicate those elements on mine.
  • Actions: I started a quantitative analysis of a list of 80-90 UX portfolios to find out what makes them so great. For example, in the portfolio guides I read through, they suggested spending time making images look good. But I realized I didn’t really have a clear understanding of what this meant. And given that I’m an exceptionally private person, I also realized I didn’t聽really know聽what was聽appropriate for an About page. And I was curious to learn what most people used to build their sites. So essentially, I set about answering these questions, to help me put together the pieces for my own portfolio redesign.
  • Outcome thus far: Although DIY makes up a sizable portion of portfolios,聽I’ve been surprised to learn how many people use paid CMS tools for their portfolios. I’m trying to learn a little more about the backgrounds of the DIY authors, like are they students, who have time to build a DIY site, or developers who do it all the time. But now that I’m writing this down, I think I need to think a bit more about CMS options.
Sub-problem:聽Feeling overwhelmed with the amount of resources and need a place to put them all.
  • Strategy: Make an orderly list of resources that have been influencing my portfolio revisions and/or could serve as a resource in the future.
  • Action: I created a list of portfolio resources, of guides and websites, JavaScript libraries and CSS tools, and a short list of portfolios that might hopefully come in handy. That list is here.
  • Outcome thus far: Creating this list has led to more investigation on how to create a portfolio. I’m starting to see some overlap and understand more meaning in the portfolio suggestions.
Sub-Problem [Hypothesis]: Online portfolio projects weren’t showing my work and myself as a designer as well as they could.
  • Strategy:聽Go with a temporary PDF portfolio, and remove all projects from my website. Re-evaluate all online materials.
  • Actions: I removed all projects from my website and put in a message to contact me for sample work. My concern was that my website was a) out of date in both style and programming [Bootstrap 3]; b) didn’t represent me well in part due to A. I also took screenshots of all my online portfolios, at Behance, Cargo1, CarbonMade, and Coroflot, to view how I was really representing myself online.
  • Outcome thus far:聽Coroflot is still available, but I don’t link to it from anywhere. CarbonMade is online and I also don’t link to it from anywhere. The different sites have slightly different visual expressions and the experience using them can be different and limited based on the way that the site works.
  • Reflections: On her website, which is built with Kirby, Jessica Hische provides the following advice for getting freelance work:

Have a website.

This might be a no-brainer, but a ton of young people looking for work don鈥檛 have a functioning website because they’re still struggling to build some crazy flash bonanza themselves. STOP. Unless you want to do web work for a living, sites like cargo collective, indexhibit, and carbonmade are perfectly fine ways to make portfolio sites. Many professionals use them as they are easy to update, which you will learn is THE MOST important trait a portfolio website should have.聽Illustrators, this goes for you too.

I read this advice a while back and I think I may have misunderstood a little bit. While using a CMS is important, such as cargo collective, it’s apparently MORE important to have your own domain than it is to use a CMS like cargo collective.

Sub-Problem: Without an online portfolio, I need a way to share my site. Also online portfolios might be showing too much, leading to more opportunity for criticism.
  • Strategy: Use large, static images on Behance, rather than a true online portfolio. I attended a virtual portfolio session with Google, where a portfolio from a UX designer and a Visual designer were reviewed. The UX designer was Simon Pan and his Barclay’s bike project. The visual designer’s work was shared on Behance.聽The visual design project we reviewed was聽essentially a series of very long images that appeared to be created for Behance.聽I figured that if Google’s recruiting team was showing us this project as a viable format, it could potentially work for me. I could draw pictures and tell a story vertically, like the Behance version.
  • Actions: I chose to create聽4-5 projects in Sketch, for the purpose of sharing on Behance. I figured I could use them as slides for an offline presentation if needed.
  • Outcome thus far: I put them up, but they did not receive wide spread acclaim; like 4 appreciates. And the one recruiter I shared them with for a freelance gig didn’t get back to me, and the “views” didn’t increase so I’m not sure what the response was; my assumption is negative. Reflection: Simon Pan uses a custom WordPress theme. My assumption is that it would be聽significantly聽work to customize than even a basic site. But maybe this is an opportunity to use one of P贸lya’s heuristics,聽the inventor’s paradox:

The more ambitious plan may have more chances of success [鈥 provided it is not based on a mere pretension but on some vision of the things beyond those immediately present.

Maybe I should start with BlankSlate and customize the heck out of it.

Sub-problem: Fixing my Cargo1 (Cargo Collective) portfolio and website.

I’m writing these all under this one heading for brevity and also because they’re related.

Strategy to focus my website on only UX: Some of the feedback聽I got on聽my Cargo1 portfolio was that other links related to coding and design should be removed. I didn’t ask why, but my guess was they were either not interesting or not very good. When I tried taking a more objective view of my website, I felt that the code examples, which were set in a list, weren’t presented well. I chose to update my website to remove references to code examples. There were still 3 projects available, with individual pages for each.

I聽didn’t聽include this video in my other post on Portfolio Resources, but I came across聽a YouTuber discussing design portfolios. A point he makes is that it’s OK to have more than one portfolio. For some reason, it seemed revolutionary and I remembered labs.jensimmons.com. I can include my code examples, but I can put them on another site/portfolio that presents them more appropriately and doesn’t confuse an audience looking for UX projects.

Strategy to take聽my Cargo1 site offline to remove sources of negative criticism.聽I spent a LOT of time writing a significant amount of custom CSS for my Cargo1 site.聽 I also watched a video on web writing to focus on improving how I explained my projects. It’s a good video; I recommend it.

Despite all this work, I got plenty of feedback. To be honest, the feedback shocked me. I wrote about that in an earlier post.

I did attempt to make multiple changes back on feedback received聽鈥 specifically, describing myself/who I am and improving the writing聽鈥 I unpublished聽my entire portfolio聽of projects at cargocollective.com. I did not want to use the Cargo1 template and site as it was to serve as my homepage, meaning changing my DNS to use the Cargo1 site vs my own site.聽Essentially this decision is driven the design heuristic to not show anything you don’t want criticized. Given the feedback and feeling that my attempts to improve it wouldn’t be sufficient, I chose to unpublish it entirely until I settle on another strategy for my UX projects. At that time, I can use it again to show my ITP projects and end my subscription (which I should do now.

Strategy to narrowing down projects from 7 to 3.聽At one point, my site had about聽6-7聽projects and an About page that included logos of companies and brands I had worked for in the past. However, analytics showed that virtually no one was viewing the About page. Actions:聽I removed聽the About page聽because it seemed useless. Meanwhile, the few people that did come to the site in general only viewed a few projects. I decided to remove every project聽except for the聽3 most trafficked, which I re-ordered according to popularity.

Interestingly, one of the projects was just a聽series of experience journey examples, not an actual project. Despite this, visitors were visiting the page. I’ve followed the lead from the analytics ever since. Those 3 projects, including the experience journeys, have always appeared first in their specific order, anytime my projects appear online. Ironically, some of the feedback I got from my acquaintances was that I had too many projects. :/

 


Reflections

Something I haven’t talked about is how many weekends of beautiful weather I’ve missed trying to solve this main problem and all of these sub-problems.

One of my favorite activities is riding the ferry around NYC or riding my bike to my favorite park. I’ve missed at least a month of weekends and ridden my bike about twice in 3-4 months. It’s really been a heavy feeling to see the sun shining outside and feel so much pressure to complete this project, yet not knowing the right way to solve this problem. We only get so many days on this planet and each day is unique.

Here are some photos from聽some sunny days.


Next Steps

Writing blog posts takes time but I find writing helps me organize my thoughts. And this exercise has been helpful to review and take an account of what I have already accomplished.

Given everything I just wrote, I’m going to try and create a design for Tachyons, or at least a layout for a portfolio. Or, I should say create a design again – when I reviewed all my other websites, I found a design that I put together a few years ago!

Regarding DIY with vanilla HTML/CSS, I know that there are static site generators people use, but I don’t really know about using them for my own domain. It’s a bit of an esoteric problem that I’m not sure I want to get into yet. Maybe this knocks DIY off the list, since not using a CMS makes updating kind of painful.

I also want to look into some of the themes I found for WordPress. Probably not BlankSlate, but the guy who is leading the design for WordPress 2020 created a free theme called Chaplin. (Although he uses a theme called Harrison that’s not on his site.) Chaplin has 9,500 downloads. Maybe I’ll look into that. Since I have my own site, I can install WordPress in multiple folders and test out different options.

I think it’s also worthwhile exploring Squarespace (again), at least temporarily.

And maybe I’ll go take a walk while the sun is shining.