Have you ever jumped straight into coding, only to realize later that you built the wrong thing? I have. Many times. In fact, I tend to do it so often that I’ve started thinking about why it happens—and how I can avoid it. One reason, I’ve found, is that I often get stuck drinking too much from the wrong mug.

Wait, mugs? Yes, mugs. Let me explain.

🎩 First, a sip from Edward de Bono

You might already know Edward de Bono’s brilliant concept, the “Six Thinking Hats”. He suggests that when solving problems or making decisions, we should consciously adopt different modes of thinking, represented by colored hats. For example:

  • White hat: Objective facts and neutral information.
  • Red hat: Emotions, intuition, and gut feelings.
  • Yellow hat: Optimistic thinking, benefits, and positive outcomes.
  • Black hat: Critical analysis, risks, and caution.
  • Green hat: Creative thinking, new ideas and possibilities.
  • Blue hat: Meta-thinking, managing the overall thinking process.

Edward de Bono argues that deliberately switching between these perspectives improves decision-making, creativity, and problem-solving.

I love this approach, but in software development, I wanted something slightly different. Something more tailored to the daily processes we developers experience. Also, I’m a coffee and tea guy—so naturally, I prefer mugs over hats.

Thus, I present to you: The Six Mugs of Software Development.

☕️ Introducing the mugs (and their secret ingredients)

Imagine you have six mugs on your desk, each containing a special psychoactive drink. Each drink temporarily changes how your brain works, influencing your mindset and perspective. You can freely switch between them, but here’s the catch: you should be mindful about when and how much you drink from each mug.

Let’s meet them:

Mug ColorMindsetPsychoactive Effect
🟦 BlueAnalyticalCalms your mind, makes you curious, detail-oriented, and eager to deeply understand the problem.
🟩 GreenCreative (Divergent)Opens your mind, fills you with strange and wonderful ideas, and makes every solution seem possible.
🟨 YellowEvaluative (Convergent)Sharpens your thinking to evaluate and filter ideas, helping you pick the best solution clearly and confidently.
🟥 RedAction-oriented without overthinking (Hacker Mode)Energizes you, giving you a powerful urge to build and implement solutions quickly. You feel productive and eager to code.
⬛ BlackCritical (Tester mindset)Makes you skeptical and critical. You suddenly see potential problems everywhere—edge cases, bugs, scalability issues.
🟧 OrangeReflective (Reviewer mindset)Gives you fresh eyes and a calm perspective, helping you spot subtle improvements and details you previously missed.

Each mug has its own unique flavor and effect, but they all work together to create a balanced approach to software development.

A figure showing a drawing of the six mugs with different colors and their respective mindsets. It shows that the first three is grouped as design related, the next coding related, and the last two quality assurance related.
The Six Mugs of Software Development

There is a natural order to use the mugs (from left to right in the figure above). However, just like De Bono’s hats, the mugs aren’t meant to be used strictly in order, you can switch freely between them, depending on your needs.

Let’s take a closer look at each.

🟦 Blue Mug: Analytical Mindset

Before jumping into solutions, take a deep sip from the blue mug. Suddenly, you’re calm, patient, and curious. You ask good questions. You talk openly with product owners and stakeholders. You become certain you understand exactly what the problem is before solving it.

I often neglect this mug, rushing to code without clarity—and paying the price later.

🟩 Green Mug: Creative Mindset (Divergent Thinking)

One sip, and your mind overflows with creative ideas. You brainstorm freely, generating multiple possible solutions without judgment. Quantity over quality here—you’ll filter ideas later. Right now, it’s all about exploration.

If you ever feel stuck, this mug is your best friend. It’s also the most fun to drink from.

🟨 Yellow Mug: Evaluative mindset - Convergent Thinking

After the creative buzz, you might feel overwhelmed by too many ideas. Now take the yellow mug. It helps you focus, evaluate your creative ideas critically and positively, and choose the most promising solution.

Skipping this mug often leaves me indecisive, or worse, choosing poorly without proper evaluation.

🟥 Red Mug: Action-oriented without overthinking (Hacker Mode)

The red mug is powerful. It gives you energy, motivation, and the urge to code. You prototype quickly, build iteratively, and see immediate results. This is the mug we developers naturally prefer.

But beware: without visiting the other mugs first, the red mug can lead you astray. Trust me—I’ve been there.

⬛ Black Mug: Critical Tester Mindset

This black mug is bitter, but essential. It makes you skeptical and helps you find edge cases, bugs, and potential risks. You actively try to break your own solution. Painful, but incredibly valuable.

I used to skip it (because who likes criticism?), but now I appreciate it deeply.

🟧 Orange Mug: Reflective Reviewer Mindset

Finally, the orange mug calms you down after the intense coding and testing phases. It helps you look at your own code as if someone else wrote it. You see opportunities for improvement, clarity, and simplification.

This mug has saved me from many embarrassing pull requests.

🧠 Who drinks from these mugs?

It’s important to highlight that these mugs are mindsets, not fixed roles. In some teams, different people specialize in different mugs. One person may excel at creative brainstorming (green mug), another is a brilliant critical tester (black mug), and so forth.

But even if your team has specialists, it still helps immensely to drink from each mug yourself occasionally. You don’t need to be an expert, but awareness of each mindset makes you a stronger developer overall.

And if you’re like me—working in a smaller team or as an individual contributor—you’ll probably need to regularly switch between mugs yourself. The key is mindfulness: Are you drinking from the right mug right now?

🤖 Does this apply to data scientists and data engineers?

You might be thinking: “Okay, mugs and mindsets sound great for frontend and backend developers—but what about data scientists and data engineers? Does this really apply to us?”

Absolutely! While the mugs metaphor might seem very developer-centric at first glance, it’s actually equally valuable for anyone involved in solving technical problems, designing solutions, or building systems—no matter your exact role.

Let’s quickly illustrate with some examples:

Data Scientists regularly switch between these mindsets

🟦 Blue Mug (Analytical): Clearly understanding business problems, data requirements, and the real-world context of your models.

🟩 Green Mug (Creative): Experimenting creatively with new algorithms, features, and modeling strategies.

🟨 Yellow Mug (Evaluative): Comparing models, filtering out less promising solutions, and selecting the best-performing approach.

🟥 Red Mug (Hacker): Rapid prototyping, exploratory data analysis, and quickly iterating on experiments.

⬛ Black Mug (Critical): Rigorously validating models, seeking potential biases, edge cases, and robustness issues.

🟧 Orange Mug (Reflective): Clearly documenting and reviewing your approach, ensuring reproducibility and readability.

Data Engineers similarly benefit from these mugs

🟦 Blue Mug (Analytical): Clarifying requirements for data pipelines, storage, and integration.

🟩 Green Mug (Creative): Designing innovative data architectures, streamlining workflows, and exploring new tools and techniques.

🟨 Yellow Mug (Evaluative): Evaluating and selecting the right database systems, cloud services, and pipeline tools.

🟥 Red Mug (Hacker): Quickly scripting and prototyping new pipeline components or integrations.

⬛ Black Mug (Critical): Thoroughly testing data flows, error handling, scalability, and reliability.

🟧 Orange Mug (Reflective): Reviewing and optimizing data pipelines, documenting clearly, and improving maintainability and readability.

So yes—the mugs are for everyone. Even if your primary job isn't writing code all day, you'll still find value in consciously adopting these different perspectives. In fact, the more diverse your role is, the more important it becomes to know when and why you're drinking from each mug.

✨ Conclusion: It’s about awareness, not perfection

Personally, I’m still learning to be mindful about actively switching between these different mindsets. It’s definitely something that takes practice, and I don’t always get it right. But when I do remember to pause and deliberately take another sip from the analytical blue mug—or spend a bit more time drinking from the green mug of creativity—I find my solutions become clearer, more robust, and ultimately more effective.

This approach isn’t about perfection; it’s about awareness. By simply being conscious of these different perspectives, I’ve found small improvements in my workflow and fewer frustrating moments where I realize I’ve skipped something crucial.

Maybe it’s worth experimenting with in your own development process?

So next time you find yourself stuck, frustrated, or unsure about your coding direction, take a moment to pause. Look at the (imaginary) mugs on your desk. Which one have you been drinking from too much? Which one do you need to switch to right now?

Happy coding!

(Disclaimer: No actual substances were consumed while writing this post. The mugs are metaphorical ☕)