Overview: Enhancing Group Discussions and Decision-Making with Edward de Bono’s Six Thinking Hats Technique

TLDR The Six Thinking Hats by Edward de Bono, is a powerful tool for group discussion and individual thinking. It segments thought processes into six distinct approaches, each represented by a colored hat. This method enhances focus, creativity, and collaboration, making it great for effective decision-making and problem-solving.

Context

As I mentioned in my previous post, Unlocking Innovation and Value: A Summary of SRI's Five Disciplines of Innovation (5DOI), innovation is a key driver of growth and value creation. It is a complex process that requires a systematic approach to be successful. SRI International has developed a framework for innovation called the Five Disciplines of Innovation (5DOI). This framework include a technique called "Value Creation Forum process", which is a systematic approach to structured thinking and problem-solving. As I wrote there, that is really similar to Edward de Bono's Six Thinking, which is, in my opinion, a more general and powerful tool for group discussion and individual thinking.

While the Five Disciplines of Innovation (5DOI) framework is a systematic approach to innovation, the Six Thinking Hats is focused on structured thinking and problem-solving, allowing individuals and groups to explore different ideas and approaches to a problem without getting into a debate involving personal opinions.

The thinking hats allows for what's called "enclothed cognition", which is a phenomenon in which the clothes you wear (including hats) can affect your psychological processes. In other words, the hats help you to think in a certain way.

Introduction to Six Thinking Hats

The Six Thinking Hats is a model introduced by Edward de Bono in 1985. It's a thinking process that simplifies and streamlines discussions, particularly in group settings. By "wearing" different colored hats, participants can switch perspectives and explore various angles of a problem.

In my experience, physically wearing the hats is important. It helps to keep the conversation focused and on track, and helps the participants to "own" their role. It also helps to keep the conversation from getting personal, which is more important than what you think. The hats are a tool to help you think, not a way to judge others. Once you judge others or get personal, the conversation is about the people, not about the ideas. And once that happens, the conversation is over and people will start defending their positions instead of exploring new ideas.

Once you wear a hat, you are only allowed to speak and share ideas from that perspective. This means, that if you are wearing the black hat, you can only share critical thoughts and ideas. Wearing the hat also protects you from becoming the "bad guy" or the devil's advocate in a conversation. It's not you, is the hat.

Why the Six Thinking Hats Method is so interesting?

This method is intriguing as it breaks down complex decision-making processes into manageable parts. It encourages diverse perspectives, reduces conflict, and makes it easier to have constructive dialogue. The Six Thinking Hats approach is a game-changer for teams and individuals seeking to enhance their problem-solving skills and actually get things done in a collaborative way.

Why You Should Use This Method

  • Enhances Creativity: Encourages out-of-the-box thinking in a safe way.
  • Reduces Conflict: By seeing things from multiple perspectives and using the hats, misunderstandings and conflicts are minimized as it helps prevent getting personal.
  • Streamlines Decision-Making: Makes group discussions more focused and efficient, as there is a structured approach to the conversation.

The Six Thinking Hats

The Six Thinking Hats method uses 6 thinking hats, each of which represents a different perspective. The hats are:

  1. White Hat: Focuses on data and facts. (What information do we have? What information do we need?)
  2. Red Hat: Represents emotions and feelings. (How do we feel about this? What are our gut reactions?)
  3. Black Hat: Concerns caution and critical thinking. (Something like the Devil's Advocate, from which there is always something to learn)
  4. Yellow Hat: Symbolizes optimism and positive thinking. (What are the benefits? What are the opportunities?)
  5. Green Hat: Represents creativity and new ideas. (What are some alternatives? What else can we do?)
  6. Blue Hat: Manages the thinking process. (What is the goal? What is the next step? Who is responsible for each step?)

Examples in Fictional and Real-Life Situations

  • Corporate Strategy Meeting: You discuss a new product launch strategy from different perspectives, in a structured way.
  • Educational Setting: Teachers use hats to encourage students to explore different perspectives.
  • Personal Decision-Making: An individual uses hats to evaluate career options, weighing facts, emotions, risks, benefits, creative possibilities, and overall planning.

The Six Thinking Hats Method in Action

Step 1: Define the Problem

The first step is to define the problem or issue you want to address.

Step 2: Assign Roles

There are three main roles in my experience:

  1. Facilitator: The facilitator is responsible for
  2. guiding the conversation and making sure that the rules are followed,
  3. making sure that the conversation is focused on the problem and not on the people,
  4. intervening if the conversation gets personal.

It is important to note that the facilitator should not be the one that is wearing the hats, as it is difficult to manage the conversation, wear the hats and try not to be biased at the same time. (been there, done that 😁)

This person usually wears the blue hat (according to some sources), as it is the one that manages the thinking process. I like to leave the facilitator without a hat because thinking process, or processes in general, are also part of the perspectives the group should explore.

  1. Recorder: The recorder is responsible for taking notes and keeping track of the ideas and perspectives that are shared. You can think of this person as someone who wears the white hat, as it is the one that focuses on data and facts but, as I said with the facilitator, I like to leave this person without a hat.

  2. Participants: The participants are the ones that wear the hats and share their ideas and perspectives.

Step 3: Assign Hats

According to the topic to explore and discuss, and the number of participants, I personally use two approaches:

  1. Assign hats to participants: Assign each participant a role, represented by a hat. For example, one person can be the white hat, another the red hat, and so on. You can also assign multiple hats to one person, depending on the size of the group. This allows for a more focused conversation, as each person is responsible for a specific perspective, but prevents the participants from exploring other perspectives and the group from exploring the topic as a whole.
  2. Rotate hats: Assign each participant the same hat and rotate the hats after a certain amount of time. This allows for a more holistic conversation, as each participant is responsible for all the perspectives, but it can be more time-consuming.

Step 4: Explore Perspectives

Once you have decided on the approach to use, you can start exploring the different perspectives. The facilitator should guide the conversation and make sure that the rules are followed. The recorder should take notes and keep track of the ideas and perspectives that are shared.

Step 5: Summarize and Decide

Once you have explored all the perspectives, you can summarize the ideas and perspectives that were shared and make a decision. If there are to many ideas and insights, you can use a tool like Affinity Diagrams to group them and make sense of them.

This looks something like this:

Affinity Diagram from mindtools.com
Affinity Diagram from mindtools.com.

In easy words, you write each idea on a sticky note and group them by similarity and then assign them a name for each group, much like a category. This allows you to make sense of the ideas and insights and to make a decision.

If the time allows it, you can this in the same session. Depending on the topic, number of participants and time available, I sometimes leave this as a task for the facilitator and the recorder. They then analyse and prepare the results for the next session to be discussed and decided on.

Step 6: Results and Follow Up

Once you have made a decision, you can start implementing it. It is important to follow up on the decision and to make sure that it is implemented. This can be done in a follow-up session, where you can use the same approach to explore the results and to make adjustments if necessary.

In the previous step, in the discussion of the results, you also decide on the next steps and assign responsibilities. This is important, as it makes sure that the decision is implemented and that the next steps are clear.

By not way should you leave the session without a clear next step and a responsible person for each step. This is a common mistake that I have seen many times. People leave the session with a decision, but without clear next steps and a responsible person for each step. This leads to the decision not being implemented and the next steps not being clear, which leads to frustration and a waste of time, and worst of all, with the feeling that the methodology does not work.

Key Takeaways

  • Structured Thinking: The 6 thinking hats provides a clear framework for discussions.
  • Defined Roles: The hats and roles allow for a clear definition of what is expected and give the participants the freedom and security of exploring different perspectives that they would not usually pursue.
  • Focus: The hats help to keep the conversation focused and on track, and help the participants to "own" their role. (if I'm being the Devil's Advocate, it's not me, it's the hat, and I may as well play my role right. Later I will be able to say my creative ideas, or my need to get data, and so on.).
  • Safe: The hats help to keep the conversation from getting personal.

References

  1. Edward de Bono's book "Six Thinking Hats"
  2. Affinity Diagrams
  3. Experiences using the method in different settings and with different groups.

  • Disclosure: This post includes affiliate links to books I endorse. Should you choose to make a purchase through these links, I may earn a commission at no extra cost to you. Rest assured, I recommend only those books I've personally read and found valuable. 

Unlocking Innovation and Value: A Summary of SRI's Five Disciplines of Innovation (5DOI)

Context

Innovation is a key driver of growth and value creation. It is a complex process that requires a systematic approach to be successful. SRI International, a nonprofit research institute, has developed a framework for innovation called the Five Disciplines of Innovation (5DOI). This framework provides a systematic approach to innovation that can be applied to any organization or industry.

SRI’s Five Disciplines of Innovation (5DOI) and Value Creation Process

Note: SRI stands for Stanford Research Institute

First, one should start defining what Innovation is. For SRI, it means:

The creation and delivery of new customer value in the marketplace with a sustainable business model for the enterprise.

It is also important to highlight that for SRI, Innovation is a process, not an event.

(Innovation) is a disciplined, continuous improvement process with a focus on creating customer value.

So, what are the 5 disciplines of Innovation?

Discipline 1: Need (Important Needs)

You need to know who the customer is and why would the customer take out their wallet and give you their money.

If you are trying to innovate (bring something new to the marketplace), you need to know who the customer is and why is the customer compelled to solve that problem now. This means focusing on an important market need, not an interesting one.

There should be a sense of urgency to solve a particular need.

Discipline 2: Value (Value creation)

You need to be able to explain yourself and your value proposition to the one you want to sell it to (investor, customer, team, etc.)

The template for the Elevator Pitch has, according to SRI, the following parts:

  1. a hook: to get their interest
  2. a core: you NABC value proposition (check below)
  3. a close: action to get to the next step

NABC or How to create a value proposition (Value Creation)

NABC is an acronym for Need, Approach, Benefits, Competition. It is a way to structure your value proposition and to make sure you are communicating the right information.

Each letter represents a question:

Need: What is the need you are trying to solve?

Approach: How are you going to solve it?

Benefits: What are the benefits of your approach?

Competition: What is the competition doing?

Value Creation Forum process

This is a lot like 6 Thinking hats, from Edward de Bono (1985) (which is a topic for another post).

The idea is to have a structured way of providing feedback. This is very useful for example in a PITCH or the discussion of an Idea.

A PITCH is a presentation of an idea, a project, a product, etc. It is usually done to get funding, but it can also be done to get feedback, to get buy-in, to get support, etc. It should be short and to the point.

When you give a PITCH, presentation or similar, you are expecting SMART Feedback. (We will get back to it later).

For the feedback to be valuable, it has to be structured and understood. For this the following roles are needed, according to SRI:

  • Green Hat: only good, what is working and is successful in the pitch.
  • Red Hat: What would I like to see more of, what can be improved.
  • Eyes of the customer: Customer's perspective
  • White Hats: What would a founder or the decision maker need to hear to fund or make the final decision?

Discipline 3: Champion (Innovation Champions)

You need to identify and encourage champions.

Even if you have a great story, for an innovation to get into the market, someone has to be the champion. This champion has to have passion and drive.

You recognize a champion by their behavior. They are extra-energetic people and can bend the rules a little bit to make the time.

Why is this important? Because if you don't have a champion, the innovation will not happen. You need someone to push the project forward and does everything in his power to make it happen. This person should be well-connected (internally) and resourceful.

Discipline 4: Team (Innovation Team)

If you are going to have a successful innovation process, on a repeated basis, you need to have programs and processes to form teams and to encourage teams to work together.

Even if you have a champion, they cannot do everything by themselves. They need a team with the right skills and focus.

This team should be able to work together and have the right level of expertise to reach the goals and place the innovation in the market. They should also be open-minded and willing to learn from their mistakes.

Remember: this is a process, not a one-time event.

There will be mistakes and failures, and the team should be able to keep moving forward when this happens and adapt to the new situation. Even if this means changing the product, the concept, or starting again from another point.

Level of expertise matches the level of ambition.

You cannot have a non-experienced team working on a high-ambition project. This will most likely fail and cause frustration in the team. You need a balanced team with the right level of expertise for the project.

Discipline 5: Organization (Organizational Alignment)

An innovation needs the support of the organization.

Organizational alignment. The organization should have procedures in place to support innovation and not squash it. For example, objections because a new Idea might threaten an existing business might hinder innovation.

Final Thoughts

These disciplines are thought as being multiplicative. This means that if one of them is 0 (zero) then your odds of success are 0. You need all of them for this to work.

It is also important to note that an innovation could put another business inside your organization out of business, or it could also be in development in another company which may do it faster and better than yourself. You should be aware of this and be prepared to react to it.

References

How to Use Virt-Manager on Linux Mint/Ubuntu: A Step-by-Step Guide

TLDR

This article guides you through the installation and usage of Virt-Manager on Linux Mint or Ubuntu, providing an easy way to manage virtual machines (VMs).

Context

Virt-Manager is a graphical tool for managing virtual machines via libvirt. It's user-friendly and supports KVM/QEMU and Xen virtualization.

Why Virt-Manager?

  • Graphical Interface: Easy for beginners.
  • Wide Support: Works with KVM, QEMU, and Xen.
  • Linux Compatibility: Ideal for Linux Mint and Ubuntu users.

Steps

1. Installing Virt-Manager

  1. Open Terminal: You can press Ctrl + Alt + T or search for terminal in the start menu.
  2. Update Repositories:
sudo apt update
  1. Install Virt-Manager:
sudo apt install virt-manager

2. Adding Your User to Relevant Groups

  1. Add Your User to the libvirt Group:
sudo usermod -aG libvirt $USER
  1. Add Your User to the kvm Group:
sudo usermod -aG kvm $USER
  1. Reload Groups:
newgrp libvirt 
newgrp kvm

3. Using Virt-Manager

  1. Open Virt-Manager: You can search for virt-manager in the start menu or run the following command in the terminal:
virt-manager
  1. Create a New Virtual Machine: Click on the Create a new virtual machine button.
  2. Select Installation Method: Choose Local install media (ISO image or CDROM).
  3. Select ISO Image: Click on the Browse button and select the ISO image you want to use. You can downlaod Ubuntu server from here: Ubuntu Server.
  4. Follow the Wizard: Choose the installation method and configure your VM.

4. Managing Virtual Machines

  • Start/Stop VMs: Right-click on the VM and select Start or Shut Down.
  • Access VM Console: Double-click the VM.
  • Edit VM Settings: Right-click and choose Open.

Troubleshooting

1. Unable to Connect to libvirt qemu:///system Error on Linux Mint/Ubuntu

Steps to solve

1. Ensure libvirt Service is Active
  1. Check Status:
sudo systemctl status libvirtd
  1. Start Service:
sudo systemctl start libvirtd
  1. Verify user group permissions:
# check groups for user
groups $(whoami)
# add required groups if missing
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
# reload groups or log out and log in again
newgrp libvirt 
newgrp kvm
2. Check libvirt Configuration
  1. Open libvirt Configuration File:
sudo nano /etc/libvirt/libvirtd.conf
  1. Enable TCP Connections: Uncomment listen_tcp = 1.
  2. Restart libvirtd Service:
sudo systemctl restart libvirtd

Note: Sometimes just rebooting the service also works.

Reboot the System

Sometimes, even in linux, rebooting the system can solve the problem.

References

How to Create a 'Next/Previous' Article Navigation in Nikola Static Site Generator

TLDR

This guide demonstrates how to create and implement a 'Next/Previous' navigation shortcode in Nikola. Ideal for article series, this feature enhances user navigation through sequential content.

Context

Navigating through an article series or multipart content can be challenging for readers without proper navigation aids. Implementing a 'Next/Previous' button system in Nikola SSG helps readers seamlessly move through related content and allows you to create article series with ease.

I am using this on my UX series, and it looks like this:

UX Series Navigation

I wanted a way in Nikola to create a 'Next/Previous' navigation system for my article series and I wanted to be able to reuse it in other articles, thus I decided to create a shortcode.

Prerequisites

This guide assumes you have a basic understanding of Nikola and have already created a Nikola site. If you haven't, please check the Nikola Handbook for more information.

We will be using the Bootstrap framework for styling and Jinja2 for templating.

I will be saving the shortcode in the shortcodes folder in the root of my Nikola site. You may also save it to the templates folder, but then other steps are needed.

Creating the 'Next/Previous' Navigation Shortcode

What I wanted to achieve is a shortcode that displays two buttons: one for the previous article and one for the next article. The buttons should be styled with Bootstrap and should be responsive.

The button will receive 4 parameters:

  • previous_url: The URL of the previous article.
  • previous_text: The text to display in the previous button.
  • next_url: The URL of the next article.
  • next_text: The text to display in the next button.

If the previous_url or next_url are empty, the corresponding button should not be displayed and the button should use the full width of the row.

For example for the first article, there is no previous article, so the previous button should not be displayed and for the last article, no next button should be displayed.

Of course, you can also use the buttons for something else, like linking to your next recommended article or something similar.

Step 1: Create the Shortcode

In the shortcodes folder, create a file called series_buttons.tmpl and add the following code:

<div class="row mb-4" id="series-buttons">
    {% if  previous_url %}
    <div class="{% if next_url %}col-md-6{% else %}col-md{% endif %} d-flex align-items-stretch">
        <a href="{{ previous_url }}" class="btn btn-secondary w-100 d-flex justify-content-between align-items-center mb-2 series-button-prev" aria-label="Previous in series">
            <i class="fa fa-arrow-left"></i> <span class="mx-auto">{{ previous_text|default("Previous in series") }}</span>
        </a>
    </div>
    {% endif %}

    {% if  next_url %}
    <div class="{% if prev_url %}col-md-6{% else %}col-md{% endif %} d-flex align-items-stretch">
        <a href="{{ next_url }}" class="btn btn-secondary w-100 d-flex justify-content-between align-items-center mb-2 series-button-next" aria-label="Next in series">
            <span class="mx-auto">{{ next_text|default("Next in series") }}</span> <i class="fa fa-arrow-right"></i>
        </a>
    </div>
    {% endif %}
</div>

Step 2: use the Shortcode in an article

Depending on which markup language you are using, you can use the shortcode in different ways.

In all cases, the same (optional) parameters are used:

  • previous_url: (optional) The URL of the previous article. If not present, the previous button is not displayed.
  • previous_text: (optional) The text to display in the previous button. If not present, the default text is "Previous in series".
  • next_url: (optional) The URL of the next article. If not present, the next button is not displayed.
  • next_text: (optional) The text to display in the next button. If not present, the default text is "Next in series".

reStructuredText

In reStructuredText, you can use the shortcode like this:

.. series_buttons:: 
    :previous_url: /previous-article
    :previous_text: Previous Article
    :next_url: /next-article
    :next_text: Next Article

Markdown

In Markdown, you can use the shortcode like this:

series-button-md-html-example.html (Source)

{{% series_buttons previous_url="/previous-article" previous_text="Previous Article" next_url="/next-article" next_text="Next Article" %}}

HTML

In HTML, you can use the shortcode like this:

series-button-md-html-example.html (Source)

{{% series_buttons previous_url="/previous-article" previous_text="Previous Article" next_url="/next-article" next_text="Next Article" %}}

AsciiDoc

In AsciiDoc, you can use the shortcode like this:

[series_buttons, previous_url="/previous-article", previous_text="Previous Article", next_url="/next-article", next_text="Next Article"]

Step 3: Customize the Shortcode Styles (Optional)

The shortcode uses Bootstrap 4 styles and have the following classes and ids:

  • the main row has the id series-buttons
  • the previous button has class .series-button-prev
  • the next button has class .series-button-next

You can customize the styles of the buttons by adding the custom CSS to your custom.css file.


That's it! You now have a 'Next/Previous' navigation shortcode that you can use in your Nikola site.

Key Insights from the UX Design Series | UX Series Part 6 of 6

TLDR This article offers a condensed overview of the insights from my UX Design series, highlighting essential aspects like user testing, information architecture, visual design, and prototyping in UX.

Context:

Understanding and effectively implementing UX design principles is crucial in today's digital landscape. This sum-up article brings together key insights from my learning on UX Design from the course, my experience and other resources.

Key Insights from the UX Design Series:

1. Understanding and Implementing UX

  • UX design, also known as User-Centered Design (UCD), is about understanding and addressing the needs and preferences of users.
  • It encompasses every interaction a customer has with a business, both online and offline.
  • UX design is a dynamic, ongoing process integral to the success of any (digital) product.
  • t requires a deep understanding of the user and a commitment to continual improvement based on feedback and evolving user needs.
  • It also requires a multidisciplinary team with diverse perspectives and skills.

2. The Role of User Feedback and Research

  • User feedback is essential for uncovering real user needs and preferences, often missed due to "expert blindness".
  • Methods like focus groups, surveys, and market research play a critical role in gathering user insights
  • Marketing personas are fictional characters that represent our ideal customers, helping us understand their needs and behaviors.
  • UX is complex and requires you to understand the user, its needs and expectations. It's not just about adding pretty colours to a website or app. It's about understanding the user and creating a product that is easy to use and intuitive.

3. Designing the User Experience: User Journeys and Visual Design

  • User journeys outline the steps a user takes to complete a task, crucial for understanding user needs and expectations.
  • There is always a happy path, but you should also consider alternative routes that might include errors or unexpected user actions.
  • Visual design, encompassing elements like typography, colors, and layout, is crucial for conveying the brand message and enhancing user interaction.
  • There are tools like card sorting, which involves organizing information into categories, to help designers understand how users think and organize information and colour theory, which helps designers understand how color evoke emotions and convey meaning.

4. The Significance of Information Architecture and Prototyping

  • Information Architecture (IA) involves organizing information for a logical, user-friendly flow through a product’s content.
  • Prototyping, ranging from simple sketches to interactive models, is vital for visualizing and testing design concepts.
  • Information Architecture is the strategic organization of information to ensure a logical and user-friendly flow through a product's content.
  • Prototyping is creating early models or mockups of a product to visualize and test design concepts.
  • User Testing refers to observing real user interactions with the prototype to gather feedback and refine the design.

5. User Testing in UX Design

  • User testing is critical for understanding how real users interact with products, involving methods like focus groups, surveys, and formal lab usability studies.
  • Effective user testing requires unbiased, relevant, and clear questions to gather meaningful feedback.
  • There are many methods for user testing, including focus groups, surveys, market research, and formal lab usability studies.
  • Each method has its pros and cons, and you should choose the one that best fits your needs and budget.

Conclusion:

The course was a great entry-level introduction to UX design, covering the fundamentals of UX design and its role in Product Development. It also offered a practical structure to understand and implement UX design principles, which, without a structure, can be overwhelming.


User Testing in UX Design | UX Series Part 5 of 6

TLDR

User testing is a pivotal aspect of UX design, offering direct insights into user needs and preferences. This article outlines various user testing methods, illustrating their role in creating effective and user-friendly designs.

Introduction to User Testing

User testing is an essential process in UX design, aimed at understanding how real users interact with products. It uncovers user needs, preferences, and challenges, ensuring that the final product resonates with its intended audience (or at least, it should). There are always questions involved in user testing, which should be non-leading and non-biased.

Importance of Non-Leading Questions: Ensuring unbiased and genuine user responses.

Methods of User Testing

Focus Groups

A focus group is a group interview involving a small number (sometimes up to ten) of demographically similar people or participants who have other traits/experiences in common depending on the research objective of the study. Their reactions to specific researcher/evaluator-posed questions are studied.

-- Focus Group on Wikipedia

Essentially, a focus group is a (small) group of people who are brought together to discuss a particular topic.

There are 3 main components to a focus group:

  1. The Moderator: The person who leads the discussion and asks questions. Without a good moderator, the focus group will not be successful. This person is responsible for keeping the discussion on track and making sure that the participants are engaged and the goals of the focus group are met. The moderator is also responsible for the preparation of the questions and topics of discussion.
  2. The Participants: The people who are invited to take part in the focus group. Without participants, there is no focus group. The participants are usually selected based on their knowledge of the topic and their ability to contribute to the discussion, always keeping in mind the goals of the focus group.
  3. The Observers: The people who observe the focus group and take notes. The observers are usually the people who are responsible for the analysis of the focus group. They are responsible for taking notes and making sure that the discussion is on track and that the goals of the focus group are met. The moderator is not able to moderate, take notes and observe, and thus are observers really important.

And you can add additional components as needed:

  1. The Recording: The recording of the focus group, which can be audio, video, or both. Now a bit more difficult with data privacy laws, but still possible.
  2. The Report: The report of the focus group, which is a summary of the discussion and the findings.
  3. The Analysis: The analysis of the focus group, which is the interpretation of the findings.
  4. The Recommendations: The recommendations of the focus group, which are the suggestions for the future.
  5. The Follow-Up: The follow-up of the focus group, which is the action that is taken after the focus group.

Surveys

A survey is a structured way of gathering information from a group of people. It is a way of collecting primary data which should be aligned with the research objectives and support the research questions.

A good survey should be:

  • Precise: The questions should be clear and concise.
  • Unbiased: The questions should be unbiased and not leading.
  • Relevant: The questions should be relevant to the research objectives.
  • Easy to answer: The questions should be easy to answer.
  • Easy to analyze: The questions should be easy to analyze.
  • Easy to understand: The questions should be easy to understand.

The answer types should be aligned with the research objectives and support the research questions. This means, that even if some answer types are easier to analyze but do not help gather the information you need, you should not use them. The contrary is also true, if some answer types help you gather too much unstructured information, but you just need to get a boolean (yes/no) answer, you should not use them.

Market Research

A market research study is a study that is conducted to understand the market and the customers. There are many types of market research studies, but the most common are:

  • Explorative: Exploring a topic, a market, or a customer segment.
  • Descriptive: Describing a topic, a market, or a customer segment.
  • Causal: Understanding the cause and effect of a topic, a market, or a customer segment.

Market research studies are usually conducted by market research companies or marketing professionals with experience in market research design and analysis.

Formal Lab Usability Studies

A usability lab is a place where usability testing is done. It is an environment where users are studied interacting with a system for the sake of evaluating the system's usability.

-- Usability Lab on Wikipedia

In other words, it's conducting controlled tests to observe user interaction in a controlled environment.

I would this is the most expensive and time-consuming method of user testing.

Regrettably, I have not had the opportunity to conduct or participate in a formal lab usability study, so I don't have much more to say about it.

Interpreting User Feedback

Understanding and effectively utilizing user feedback is crucial. It involves identifying common pain points, gauging user satisfaction, and iterating the design based on this feedback.

It is important to note that not everything must be taken under account. Some feedback is not relevant, some feedback is, and is the job of the UX designer to identify what is relevant and what is not.

In all cases, if the testing/ research was correctly designed and conducted, the feedback should be taken into account and should be relevant for your business and product. If this is not the case, you should review your methodological approach.

Key Takeaways

  • User testing is a pivotal aspect of UX design, offering direct insights into user needs and preferences.
  • There are various methods of user testing, each with its own advantages and disadvantages.
  • User testing is an iterative process, and it should be conducted regularly throughout the design process.
  • User testing is a methodological process, and it should be designed and conducted with care.

References


Intro to Databases: Understanding OLAP, OLTP, Embeddable, and Standalone

TLDR

Databases are essential if you work with computers, varying in type and purpose. OLAP and OLTP represent different data processing approaches, while embeddable and standalone databases differ in their integration with applications. This article serves as an introductory guide to these concepts.

Introduction to Databases

If you have ever worked with computers, you have probably heard of databases. They are the (usually correct) way for storing and managing data efficiently. While some (of us) still use Spreadsheets as a database, there are many types of actual databases, each with its own purpose and advantages.

Databases are used in almost every application, from simple blogs running WordPress to complex ERPs. They are used in banking, e-commerce, and even in your smartphone.

That said, databases are pivotal in storing and managing data efficiently if you work with data. With various types available, understanding the basics, like OLAP, OLTP, embeddable, and standalone databases, is important, but regrettably not enough, for choosing the right database for your needs. but we need to start somewhere.

Why this article?

A few weeks ago I found out about DuckDB, an embeddable SQL OLAP database that can be used with Python (and many other). I was curious about its positioning as an OLAP database, and I found a mention to this paper in Reddit where I found this graphic:

Systems Landscape from the paper "DuckDB: an Embeddable Analytical Database"

And I thought interesting to dive a bit deeper into the concepts of OLAP, OLTP, embeddable, and standalone databases.

So here we are.

What is OLAP?

OLAP (Online Analytical Processing) is a type of database designed for complex queries, data analysis, and reporting. It's often used in business intelligence and data warehousing, allowing users to analyze data from multiple perspectives.

OLAP is an approach to answer multidimensional analytical (MDA) queries swiftly in computing. Typical applications of OLAP include business reporting for sales, marketing, management reporting, business process management (BPM), budgeting and forecasting, financial reporting and similar areas. OLAP tools enable users to analyze multidimensional data interactively from multiple perspectives.

-- Automatic Summary from Wikipedia using this script

An example of an OLAP database is a data warehouse that stores historical data from multiple sources. It allows users to analyze data from different perspectives, like sales by region, product, or time.

Database that are in this category are:

  • Amazon Redshift: A fully managed, petabyte-scale data warehouse service in the cloud.
  • Snowflake: A cloud-based data platform that provides a data warehouse as a service designed for the cloud.
  • BigQuery: A serverless, highly scalable, and cost-effective cloud data warehouse designed for business agility.
  • DuckDB: An embeddable SQL OLAP database that can be used with Python and many other languages.
  • ClickHouse: An open-source OLAP database management system developed by Yandex. It is column-oriented and allows to generate analytical reports using SQL queries in real-time.

What is OLTP?

OLTP (Online transaction processing) databases are optimized for managing transaction-oriented applications, like e-commerce systems, banking, and reservation systems.

Online transaction processing (OLTP) is a type of database system used in transaction-oriented applications, such as many operational systems. "Online" refers to that such systems are expected to respond to user requests and process them in real-time (process transactions) The term is contrasted with online analytical processing ( OLAP) which instead focuses on data analysis.

-- Automatic Summary from Wikipedia using this script

An example of an OLTP database is a banking system that stores customer information and transactions. It allows users to perform transactions like deposits, withdrawals, and transfers.

Database that are in this category are:

  • MySQL : An open-source relational database management system.
  • MariaDB: An open-source relational database management system, and a fork of MySQL before being acquired by Oracle.
  • PostgreSQL: An open-source object-relational database management system.
  • Oracle: A relational database management system developed by Oracle Corporation.
  • SQL Server: A relational database management system developed by Microsoft.
  • SQLite: A relational database management system that is embedded into the end program.

What is Embeddable?

Embeddable databases can be directly integrated into an application's software. They run within the application’s process, making them ideal for desktop applications, small-scale web applications, or for use in portable devices.

Database that are in this category are:

  • SQLite: A relational database management system that is embedded into the end program.
  • DuckDB: An embeddable SQL OLAP database that can be used with Python and many other languages.
  • H2: An embeddable RDBMS written in Java.
  • Firebird: An open-source SQL relational database management system.
  • HSQLDB: An open-source relational database management system written in Java.

What is Standalone?

Standalone databases operate separately from the application. They require their server process and are accessed over a network. This type is suitable for large-scale applications that require robust database management systems.

Database that are in this category are:

  • MySQL : An open-source relational database management system.
  • MariaDB: An open-source relational database management system, and a fork of MySQL before being acquired by Oracle.
  • PostgreSQL: An open-source object-relational database management system.

Understanding the differences

OLAP vs OLTP

OLAP and OLTP are two different approaches to data processing. OLAP is used for complex queries and data analysis, while OLTP is used for transaction-oriented applications.

Transaction-oriented means that the database is optimized for handling transactions, which are a set of operations that must be executed as a whole. For example, when you buy something online, the transaction is the whole process of adding the item to the cart, entering your payment information, and confirming the purchase.

OLAP databases are optimized for complex queries and data analysis. They are used in business intelligence and data warehousing, allowing users to analyze data from multiple perspectives.

Embeddable vs Standalone

Embeddable databases can be directly integrated into an application's software. They run within the application’s process, making them ideal for desktop applications, small-scale web applications, or for use in portable devices. But they also have a sweet spot in data science and machine learning applications, where they can be used to store data without the need for a separate database server.

Standalone databases operate separately from the application. They require their server process and are accessed over a network. This type is suitable for large-scale applications that require robust database management systems. In data science and machine learning applications, they are used for storing large amounts of data, and you can also run them using Docker, if you want to avoid the whole setup process.

With embeddable databases, you can store data in a single file, which is easier to manage and move around, and you just need to install the database driver to use it. With standalone databases, you need to install the database server, the client and everything in between.

Conclusion

Understanding these basic database concepts is crucial but not enough for selecting the right database type for your specific needs. Each type offers unique advantages depending on the application's requirements and your use case.

References

The Significance of Information Architecture and Prototyping in UX | UX Series Part 4 of 6

Context

In the realm of User Experience (UX) design, Information Architecture (IA) and Prototyping are pivotal elements that contribute significantly to the development of user-centric digital products.

Information Architecture (IA) in UX

We already saw in the previous article that User Journeys are the steps a user takes to complete a task, both online and offline. They are a critical component of UX design, as they help designers and other team members understand the user's needs and expectations. IN that article we also discussed the elements of Information Architecture.

In this article I will relate IA with Prototyping, so a small review is needed.

Information Architecture involves the strategic organization of information to ensure a logical and user-friendly flow through a product's content. Key elements include:

In simple words, Information Architecture is how you organize your information for something. The outcome is a logical, clear and user-friendly flow through all the content of your sites.

  1. Content Organization: Structuring information in an intuitive manner.
  2. Labelling: Using clear and concise words and icons.
  3. Navigation: Designing user movement through the site or app.
  4. Search Functionality: Allowing users to find information efficiently.
  5. Personalization: Tailoring experiences based on user history and preferences.

Regular testing and refinement are crucial to ensure the IA aligns with user needs and behaviors.

Prototyping in UX

Prototyping is creating early models or mockups of a product to visualize and test design concepts. It encompasses:

  1. Sketches: Initial ideas captured through simple drawings.
  2. Wireframes: Basic layout designs showing essential elements.
  3. Interactive Prototypes: Advanced versions incorporating user interactions, ranging from low to high fidelity.

Responsive design is a critical consideration in prototyping, ensuring the product adapts to various screen sizes and devices.

User Testing in Prototyping

User Testing is an integral part of the prototyping process. It helps identify issues and gather feedback, guiding the iterative design process. Effective user testing involves:

  • Observing real user interactions with the prototype.
  • Gathering feedback to refine and improve the design.
  • Balancing user needs with technical feasibility and business goals.

Key Takeaways

Information Architecture and Prototyping are foundational to the UX design process. They facilitate a deep understanding of user needs and enable the creation of intuitive, effective digital experiences.

  • Information Architecture: The strategic organization of information to ensure a logical and user-friendly flow through a product's content.
  • Prototyping: Creating early models or mockups of a product to visualize and test design concepts.
  • User Testing: Observing real user interactions with the prototype to gather feedback and refine the design.

Learn more about Information Architecture and Prototyping


Simple Steps to Send Emails with Static Images in Django

Context

I wanted to send an email with a template that included an image using send_mail from Django. The image was stored in the static folder of the Django project. I wanted to use the Django template system to generate the email content, but I was not sure how to reference the image in the template.

Requirements

I asume you have a Django project with a static folder and a template that you want to use to generate an email.

Issue with {% static %} in Emails

The first thing I tried was to use the {% static %} template tag to generate the URL for the image. However, this tag does not generate a full URL, but a relative URL. This is not a problem when the template is rendered in the browser, but emails need a full URL to access the image.

This means that {% static %} only appends the relative path to the STATIC_URL, which is not sufficient for email clients to locate the image.

Solution - Generating Full URLs in the View (with code snippets)

The solution I found was to generate the full URL in the view and pass it as a context variable to the template.

This involves combining the site's domain with the static file path. This approach uses get_current_site to fetch the current site's domain and static to get the static file path, concatenating these to form a complete URL.

In the view

This is an example code to demonstrate how to create the full URL in a Django view:

This URL is then passed to the email template context and used in the src attribute of the img tag.

Please note that you need to adapt the paths to your project.

# in views.py

# imports we need to create the full URL
from django.contrib.sites.shortcuts import get_current_site
from django.templatetags.static import static

# imports we need to render the template to use in the email
from django.template.loader import render_to_string

# imports we need to send the email
from django.core.mail import send_mail

def my_view(request): # or any other view
    # we get the current site to get the domain
    current_site = get_current_site(request)

    # we get the static file path and concatenate it with the domain
    logo_url = f'https://{current_site.domain}{static("images/your-logo.png")}'

    # we generate a context with the variables we want to use in the template
    context = {
                'logo_url': logo_url,
                # ... other context variables ...
                }

    subject = 'Subject of your email'

    # we render the templates to use in the email
    message_plain = render_to_string('my_template.txt', context)
    message_html = render_to_string('my_template.html', context)

    email = '[email protected]'

    # we send the email
    send_mail(subject, message_plain, None, [email], html_message=message_html)

In the templates

When you send emails, it is recommended to provide both a plain text and an HTML version of the email. This is why we have two templates in the view.

HTML template

<!-- in my_template.html -->
<img src="{{ logo_url }}" alt="Your Logo">

Plain text template

In my case, I did not need to include the image in the plain text version of the email, but if you need to do so, you can use the same approach as in the HTML template.

<!-- in my_template.txt -->
Your Logo: {{ logo_url }}

Keep in mind

  • This approach is not limited to images. You can use it to generate full URLs for any static file.
  • This approach is not limited to emails. You can use it to generate full URLs for any static file in any context and render the templates.

Key Takeaways

  • Django's {% static %} template tag only generates a relative URL, which is not sufficient for email clients to locate the image.
  • To generate a full URL for a static file, you need to combine the site's domain with the static file path.
  • You can use get_current_site to fetch the current site's domain and static to get the static file path, concatenating these to form a complete URL.
  • You can use this approach to generate full URLs for any static file in any context and render the templates.
  • You construct the full URL in the view and pass it as a context variable to the template.

Happy coding!

References

Designing the User Experience: User Journeys and Visual Design | UX Series Part 3 of 6

Context

Designing the user experience (UX) is a multifaceted process, involving the creation of user journeys and incorporating visual design elements to enhance user interaction.

What are User Journeys in UX

User journeys are the steps a user takes to complete a task, both online and offline. They are a critical component of UX design, as they help designers and other team members understand the user's needs and expectations.

You should always what tasks the user has to complete and the steps the user takes to complete it. This is not just an online process. It's also an offline process. For example, if you are designing a website for a restaurant, you need to take into account the user journey of the user when they are in the restaurant. If you are designing a complex system or an enterprise system, you need to take into account the user journey of the user from before the even use your product.

The 'Happy Path' and Alternatives

Designers anticipate the ideal path (happy path) users should follow, along with alternative routes that might include errors or unexpected user actions, typos in search, or other issues. This helps designers identify potential alternative routes and create a seamless user experience.

The Importance of Visual Design

Graphic and visual design is a way of telling your users how they should feel about you and your product before even using the product or knowing you. This can make r break the user experience. -- https://www.usability.gov/what-and-why/visual-design.html

When I mean visual design I mean brand, graphic design and the look and feel of the product.

And this is a lot more than just adding pretty colours. These are some things you should keep in mind, as Visual Design encompasses elements beyond aesthetics:

  1. Typography: Choice of fonts and text styling.
  2. Colors: Use of color schemes to evoke emotions and clarity.
  3. Imagery: Deciding between photographic or illustrative styles.
  4. Layout Elements: Utilizing space, shapes, and lines for visual hierarchy.
  5. Symbols: Incorporating visual cues for intuitive navigation.
  6. Branding: Conveying the brand message through design elements.
  7. Accessibility: Ensuring that the design is accessible to all users.
  8. Consistency: Maintaining consistency across all design elements.
  9. Information Architecture: Organizing content for logical flow and navigation.

and these are just a few of the things you need to take into account when designing the visual design of a product.

In my opinion, all UX Teams should have a good graphic designer, or at least a good graphic designer should be part of the company.

All team members can and will contribute to the visual design, but a skilled designer adds the "Golden Touch" or "Designer's Touch" to the visual design efforts, providing that essential element that is usually unattainable without their expertise and that makes everything flow.

A skilled designer also understands that he/she needs to work with the team and not against the team and need all the different inputs to create the best possible design. She/ he also knows that the design is not about them and that it may and will change based on user feedback and other inputs.

Some tools for Visual Design

Mood Boards

Mood boards are a collection of images, colors, and other design elements that help designers visualize the look and feel of the product. They are a great way to communicate ideas and get feedback from stakeholders.

Colour Theory

Color theory is the study of how colors interact with each other and how they can be used to evoke emotions and convey meaning. It is a crucial element of visual design, as colors can be used to create a visual hierarchy and guide users through the design. (check our fictional example in the previous article)

When to Integrate Visual Design

  • Early Concepts: used to communicate ideas and generate interest.
  • During Analysis: During requirement gathering, interactive prototypes are encouraged. In this step is tempting to add visual design into the prototypes, but you have to take into account the effort and resources needed to do this, as this step is a highly iterative process.
  • Later in Design: When you are more confident about the features of your product, you can build more visual aspects into the prototype. This is called a High-fidelity prototype which is highly functional and can be interactive .

Information Architecture in UX

Information Architecture (IA) involves organizing and labeling content to ensure a logical and user-friendly flow. Key elements include content organization, navigation, search, and personalization. Testing and refinement are essential for effective IA.

In simple words, Information Architecture is how you organize your information for something. The outcome is a logical, clear and user-friendly flow through all the content of your sites.

Important: Test and refine: there will be parts that you did not understand correctly.

Important

  • Good Information Architecture is invisible. You don't notice it when it's good, but you notice it when it's bad.
  • Good Information Architecture is important to Google and other search engines. If you have a good IA, your site will be easier to index and rank higher in search engines.

Key Elements of Information Architecture

  1. Organizing your content: How do you organize your content? How do you group your content? How do you label your content?
  2. Labelling (Words and icons) of the different parts
  3. Navigations (how does the user move around your site)
  4. Search
  5. Personalization. For example recommendations based on past activities.

Tools for Information Architecture

  • Card Sorting: A technique for organizing content into logical groups. It involves writing content on cards and asking users to group them into categories. This helps designers understand how users think about the content and how they expect it to be organized.
  • Tree Testing: A technique for testing the effectiveness of a site's navigation. It involves asking users to complete tasks by clicking through a site's navigation. This helps designers identify issues with the navigation and improve the IA.
  • User Testing: for identifying issues in the design and gathering valuable feedback for improvement.

Prototyping and User Testing

Prototyping involves creating models or mockups to visualize the design. It ranges from simple sketches to interactive, high-fidelity prototypes.

Prototype: a model or a mockup or an early version of a product before the real product is build. It’s faster and cheaper in the long term.

Humans are visual and tactile creatures and makes the idea tangible to start conversations.

-- from the course

The detail and tools used are going to change during he proces.

User Testing is essential for identifying issues in the design and gathering valuable feedback for improvement.

Key Takeaways

The journey of designing UX requires careful consideration of user journeys, visual design, and continuous user testing. Each element plays a vital role in creating an engaging and effective user experience.

-Discover more about User Journeys and Visual Design