Myers-Briggs Database on Android

As a warm up for a more complicated app, I created a database that tracks my friends' Myers-Briggs type.

Myers-Briggs Database on Android

As a warm up for a more complicated app, I created a database that tracks my friends' Myers-Briggs type.

Drag-and-Drop and Drop-Down List sort examples

I developed the Myers-Briggs Database software in Android Studio using Java.

Examples of app in portrait and landscape orientation

This project is inactive; previous progress is compiled below. Original posts can be tracked via the What's Your Type tag.


from: Work-In-Progress: What's Your Type

What's Your Type is a simple Android app I decided to make my first project for a couple of reasons...

  1. What's Your Type is an opportunity to expose myself to Android's version of the SQLite database. I have a future project idea that would use a large database with complex relationships and this is a great tune up for that project.

  2. The essence of What's Your Type is fairly simple (and familiar to my friends). That made it easy to dive right into testing the design with users, and re-calibrating the design, based on their experience.

When I began the project, I already knew I would want to:

  • Design the software with users in mind, and...

  • Make sure my design hit that mark by testing the design, on paper, early and often.

I've experienced many sub-optimal design choices and thought, you obviously never watched anyone try to use your product. I didn't want my design to suffer the same fate.

But honestly? Each time I hit print on a new set of interface designs, I was confident that I'd totally nailed it.

And then I saw user after user struggle to navigate each of those designs.

That's when I quickly developed a deep, emotional appreciation for placing paper designs in front of users early and often. With each redesign, I was so relieved to be moving boxes around in Inkscape instead of re-coding the application in Android Studio.[1] It's the software equivalent of "measure twice, cut once."

What's Next
I'm excited to refine the design (code and interface) in preparation of having a few friends test out their very own version of the app for a month or two.


from: What's Your Type (2016-07-01 update)

It's finally time to share more about what the software actually does: What's Your Type is a way to keep track of your crew's Myers Briggs profiles.[2]

Screen grabs from Android virtual device, data was randomly generated
What's Your Type Main Screen Grab
What's Your Type Edit Screen Grab

I talk Myers Briggs with my friends all the time and I can never remember anyone's type. That being the case, the primary goal for What's Your Type is simply to be a memory aid. "You're an ISFP?? I think Mike's an ISFP, too... let me check."

An unintended-but-welcome effect of having this information around is that it's actively improved the quality of our conversations. Now, instead of abstractly speculating about ISFPs and people we think may be ISFPs, we get to specifically consider each other, how we're similar, how we're dissimilar, and Myers Briggs' utility (or lack thereof) in helping any given person understand herself and her friends.

Whatever the scientific merits of Myers Briggs, I love that it's a conversation piece and a way for people to feel connected to each other; What's Your Type has enhanced those conversations.

An early mock-up (v2): Having a button for each possible letter was very confusing for users. Also, having the input gathering tools always on screen caused confusion.
What's Your Type New Record Mock Up

Developing this application has been a great way to learn more about how Android implements SQLite. The database's simplicity and my familiarity with the subject matter have been extremely helpful during that exploration.

Finding an intuitive way to gather input from users was the biggest challenge of this past design phase. As I look back through the sketches, I love that decluttering the interface A) made the app nicer to look at and B) made it easier to use. I guess it's hard to choose the wrong option when the only option you see is the right option.

Early sketches of Edit and Search screens
What's Your Type Edit and Search Sketch

Early mock-up of Search screen (v3).
What's Your Type Search Mock

Screen grab of current search interface
What's Your Type Search Screen Grab

Finally, a quick story:
After I'd been telling a friend about the project, showing her mock-ups, etc., she eventually opened up and said something along the lines of: Hey... I've been thinking about your app and I feel like it's sort of creepy.

It's hard to convey in print, but this wasn't exactly an accusatory statement... it felt mostly like concern. Still, she honestly found the whole thing a little creepy and I'm grateful I had an opportunity to hear that.

As someone who...

  • Finds Myers Briggs wildly fascinating,
  • Has friends who feel the same,
  • Often discusses Myers Briggs with those friends, and
  • Is actually crafting the application...

... it never occurred to me that someone might find it creepy -- I didn't have the outsider's perspective necessary to notice it. Now that she's mentioned it, I can totally see it: I'm collecting information about people and keeping it in a database on my phone... that could easily slide into creepsville.

I'm still working through how inherently unpalatable the whole endeavor may actually be. I'm also processing how to make sure this particular software, and also transactions of this nature, are safe and comfortable for people. The huge take away, though, is this: always get an outsider's perspective. Probably a few.

Designing better options to get input from users
What's Your Type Single Button Toggle Sketch

What's Your Type Single Button Toggle Design

What's Your Type Add Record Screen Grab

What's Next

  • After tweaking a few things -- both visual and internal -- I'll load What's Your Type onto a tablet and get users to test the live software with random data.
  • In those same sessions, after the live tests, I'll be doing paper tests of new functions, at least including:
  • Ways to sort results
  • A quick test (under 2 minutes) for people who don't know their Myers Briggs type.

from: What's Your Type: 2016-10-01 update

The devil's in the details software updates

Here's a recap of a significant chunk of my last three months:

Software: Hey! Do you wanna update me!? It's important to keep your software up-to-date...


Me: Sure. But let's do it quickly so I can get back to work.

Software: Cool... I'm all done and just so you know I totally don't work anymore.

Me: Sounds good. ... Wait, what??

So that was fun. But I learned and re-learned some lessons in the process:

  • Test updates before installing them on important systems.
    I know, in the abstract, that this is a good idea. It's been a while since I've had to worry about it, and this is my first experience getting burned.
     
  • Always back-up before updates.
    No excuses from me on this one... just me being an idiot.
     
  • Have a plan for what happens if you need to nuke the entire thing and start over.
    After spending a lot of time trying alternatives, a fresh install was my solution. Fortunately, I was able to save all my data.

While those points are important, I think the most important reminder was this: things don't always go as planned and it's important to stay calm, keep it together, and keep moving.

Favors and "Oh no...." moments

1) Do a stranger a favor and place the Delete button far away from the Send button.

If I'm trying to delete something, it's expressly because I don't want to send it. Why put those two buttons next to each other? That's a slip just waiting to happen.

Screen grabs from two Android apps
What's Your Type Main Screen Grab

Here's how I've been thinking of it, recently: People often use software while drinking; when they can, designers should do a favor for a drunk stranger.

If I see someone having a good time at a bar, wearing a loose scarf, and hovering precariously over a tealight candle, I'll move the candle[3]... just to do a drunk stranger a favor. It's the sort of thoughtfulness that holds society together.

In this particular case, let's say that the Delete key is a scarf and the Send key is an open flame... do a drunk stranger a favor and put them far away from each other.

Screen grabs from Google Messenger
What's Your Type Main Screen Grab

I bring this up because it happened to me recently. I was editing a message to a friend and accidentally hit Send instead of Delete. (Not drinking, just rushing and clumsy.)

I immediately released my error, though, which brings me to point number two.

2) Give people a chance to undo that terrible thing they've just done.

After hitting send I immediately started mumbling "no no no no no no no no..." while searching for an undo option. Or an edit option. Or a delete option.

It's a special sort of sad when you realize you can't unsend an accidental message.

Luckily the message was nonsensical -- not offensive or otherwise damaging. Still, it's an unnecessary bit of frustration that's avoided by a) placing the Delete and Send keys far away from each other and b) giving users an option to undo that terrible thing they've just done.

All of which is to say: I need to add better undo functionality to What's Your Type. (Glass houses and whatnot.)

Sort Interface
After contemplating a number of sort interfaces, I decided to test two: a drop and drag option (similar to how you might re-order a shopping list) and an option where users adjust a series of drop-down boxes (like something you might see in Excel).

Two What's Your Type sort options
What's Your Type Main Screen Grab
The plan is to show both to users and see which one seems better for them.

It's also worth noting that I switched from Inkscape to Balsamiq for wireframing. I'm still learning the software, but I can already feel the difference. Balsamiq came highly recommended and it's wonderful.

Myers Briggs Test
Creating an in-app test has been a tough process, but I think the work will be worth it.


First, I wanted to make sure my test was quick.

I've been showing the app to friends, adding their types to the program, and informally watching them poke around in the software. People who don't know their type are often curious, and that curiosity most often happens incidentally... in the flow of the moment and conversation: at a party, at a restaurant, walking from the train to the ballpark. In those moments, it would be disruptive to break the conversational flow and have someone silently take a 10 minute test.

The point of the software should be facilitating conversation, not grinding it to a halt or exiling someone to a corner to take a pop quiz.

My solution was putting the options right in front of users, with a quick description, and letting them choose. Or, better yet, the person with the app can read them aloud.

Two examples from the What's Your Type test
The example on the right is a "last chance" that encourages the user to make a choice

What's Your Type Main Screen Grab
Users have 3 chances to make a choice for each of the 4 slots, so the question count can be as small as 4 and has a ceiling of 12. The last of the three chances always encourages people to go with their gut and just choose something. [See the example on the right in the above image.]

If someone wants to take a longer test, they can always do so once they're at home; in this moment, the focus is the conversation and interaction going on in real life, not on screen.


Second, I wanted to pay close attention to each statement/question's wording; I've seen many Myers Briggs tests ask the wrong thing. For example, a test might ask a user if they agree with the following statement:

"It's important to have a solid plan."

With a statement like that, you'll find out what a user values, not how they act: Yes. I see the importance of solid plans.

A better option might be:

"I often take the time to develop solid plans."

Now you have a chance to capture whether or not the user actually develops solid plans, regardless of how they value it.

Another example, which comes from the current iteration of my test, gets at the importance of setting context:

"My personal calendar tells me where to be."

Initially the statement read, "My calendar tells me where to be." When I casually asked a friend how she related to the statement, she responded, "well it depends... are we talking about my work calendar or my personal calendar?"

This is a great point: there's a huge difference in how some people would approach a work calendar and a personal calendar. Or, a question about a party feels very different if the user is thinking of a 6 person dinner party or a 50 person birthday party.

I've been trying to identify and fix as many of those issues as I can, but many of them will stay hidden until I watch other people take the test.


Between completion speed, question wording, and creating something that stays true to Myers Briggs, this test has not been an easy test to create. It has been fun, though, and I'm looking forward to refining the questions more as I take them to users.

What's Next
I'd hoped to get in front of users and test these designs in Q3, but life doesn't always work out the way you want it to. (Especially when you have a day job and a lot of hobbies.) For Q4, though, my main concern is getting the designs in front of people to figure out what works and what needs work.

  • Test designs with users
  • Some infrastructure maintenance

from: What's Your Type: 2017-01-01 update

Design Testing and Quiz Making

Quiz Making
Creating a Myers-Briggs quiz continues to be fun and difficult, specifically the Thinking vs. Feeling pairing. In some cases, there was some negativity attached to the Feeling choice, from people I suspect might be Feelers.

Example of Thinking vs Feeling questions
Example Thinking vs Feeling questions

Now that I've noticed, it makes some sense: a question like "Do you make decisions by thinking or feeling about them?", could easily generate answers that reflect our collective attitude about decision making, more than someone's personal strength in that area. And I can see how our society talks about decision making in a way that casts "thinking" as a virtue and "feeling" as a vice. People demonstrating a bias doesn't seem like a huge stretch.

While there's some work to do on all of the pairings, T vs. F will take some heavy lifting: I'm trying to recraft the questions to circumvent any negativity that "feeling about decisions" may evoke.

People don't like tutorials

There was a tutorial at the beginning of the quiz and every single user skipped it. I guess people don't like tutorials... now I know.

Tutorial pages, previously unseen
Cut tutorial page

So the tutorial has been cut, and I'm working on integrating any important knowledge from the tutorial into the quiz itself.

Data Sorting Interfaces

During testing, people checked out two options for sorting search results: drag-and-drop and drop-down lists. Currently, drop-down lists have been more intuitive for people, so I anticipate that's the option that I'll create first.[4]

Drag-and-Drop and Drop-Down List sort examples
Drag-and-Drop and Drop-Down List sort examples

Code Cleaning

As always, there's a list of housekeeping tasks to be done and tiny adjustments to be made; I did some of those tasks and made some of those adjustments.

What's Next

  • Make sure any important information from the now-cut-tutorial is integrated into the quiz itself.
  • Continue reworking the quiz questions to deliver quick, consistent, accurate results.
  • Start coding the quiz, once I feel confident the design is fine and it's just the text that needs further work.
  • Start coding the sorting interface, once I feel confident most people prefer drop-down lists.

from: What's Your Type: 2017-04-01 update

Project highlights from last quarter
Data sorting interface
In the first few waves of testing, people overwhelmingly preferred drop-down boxes to a drag-and-drop interface. However, the drop-down test always came after the drag-and-drop test; it's possible users were biased toward whichever interface they saw second.[5]

To allay my concern, I decided to run at least one test with the order flipped, and it didn't matter at all; drop-down boxes still won in a landslide.[6]

Success on 1st attempt with drop-down boxes; success on 4th attempt with drag-and-drop.
What's Your Type Main Screen Grab

Coding is going well. At the moment, I've completed the basic mechanisms for:

  • Choosing which database column to sort (first name, last name, etc.)
  • Adding (and removing) additional drop-downs for secondary, tertiary, etc. levels of sorting.

Up next:

  • Adding the ability to sort columns ascending or descending
  • Getting everything into a SQL query

Code Maintenance
As always, there were small-to-medium tweaks and adjustments to make. A couple of notable victories:

  • There are two types of "gravity" in Android layout, both of which act as a virtual gravitational point toward which elements are pulled. Once I figured out a) that there were two types and b) how they differed, I was able to use one of them to move the Cancel and OK buttons to the right side of dialog boxes.

  • Figuring out how an App Bar, a Toolbar, and an Action Bar all relate to each other was surprisingly annoying. Android's documentation uses some of the terms interchangeably in an unfortunate way. Once I figured out the hierarchy[7], I was able to activate and deactivate them, appropriately.

Quiz Questions: Taking time to get it right
Developing questions for What's Your Type's quick quiz remains tricky. It constantly feels so close and not quite right.

Notes from a recent test
What's Your Type Main Screen Grab

For a brief moment, I considered coding the framework of the quiz while I continued to work on the questions; I quickly decided that was a bad idea. If the questions still don't feel quite right, it's possible they'll never feel quite right. If they never feel right, I may decide to change the overall design of the quiz. If I change the overall design of the quiz, I'll be very happy I didn't start coding the old design.

In consideration of:

  • My limited time-and-energy resources[8],
  • My desire to get it right, and
  • The fact that things you do for fun should be fun...

I'm resetting my expectations and acknowledging it may be a while before I find the right set of questions for the quiz. I'm going to take my time and hopefully put some of the joy back into the process.


from: Project Updates, et al: 2017-07-01

Looking Beyond What's Your Type

Despite a new day job (which is a delight) and spring/summer (also a delight), I found some time to figure out one last thing in What's Your Type: retaining data and visual states when a user rotates their screen.

Portrait and landscape orientation
Examples of app in portrait and landscape orientation

What I eventually discovered was that none of the data was being preserved as I originally presumed. Instead, when Android recreated the visual state of the app, those actions triggered code that recreated part of the data state. So, the data wasn't being partially preserved at all... it was getting partially reconstructed.

Which is to say: once I figured out what was going on, creating a solution was much easier.

With that problem solved, it's time to look forward.

The stubborn part of me would rather focus on What's Your Type non-stop, through completion and release onto Google's app store. However, the important ROI for this project was refreshing my knowledge of Android and learning about Android's implementation of SQL databases.

I've refreshed and learned, and it's time to look forward.

I'll still work on What's Your Type, occasionally. It'll be good to keep the code somewhat fresh in my mind, insert more comments, and try to add some new things, as I can. If anything notable happens with it, I'll be sure to note that happening in this space.


  1. Or, as a friend pointed out to me, deciding it was too much work and simply not re-coding it. ↩︎

  2. Myers Briggs Basics: there are 4 slots, and you can pick between two options for each slot. A person's Myers Briggs "type" or "profile" is a series of 4 letters, e.g. "ESTJ" or "INFP".

    Based on what I can tell, Myers Briggs is sort of hated by scientists and academics who actually do personality profiling; its popularity persists all the same. For the record: I do love Myers Briggs and I can't imagine a scenario in which I would promote or defend its scientific validity.

    Here are a few sources to learn more about Myers Briggs:
    Wikipedia
    Myers Briggs Website
    16 Personalities Website ↩︎

  3. Or I might tell a staff member, or otherwise neutralize the danger... but the general point remains. ↩︎

  4. I may code a drag-and-drop option, at some point, just for the fun of it. ↩︎

  5. e.g. Perhaps the practice they got during the first test made the second test easier, independent of which interface they were using. ↩︎

  6. Something to explore in the future: An animation, demonstrating how the items move, would potentially clear up much of the confusion with the drag-and-drop interface. ↩︎

  7. Toolbar and Action Bar are types of App Bars.
    App Bar
    -- Toolbar
    -- Action Bar ↩︎

  8. i.e. My day job and desire to see friends and family. ↩︎