Tags

simplicity

  • 2026-08-10

    🧱 The hardest things

    The magic of product development appears to live in the complex things: the clever circuit design, the brilliant algorithm, the integration of many technologies. Observation suggests the opposite. Success is grounded in doing the simple thi…

  • 2026-03-10

    🏷️ The simple approach to versioning

    The biggest barrier to starting something is an unwillingness to start simple. Let’s use versioning as an example. The natural tendency is to think that all software components need their own version, which can be a daunting task to impleme…

  • 2026-02-23

    🧠 The Human Factors

    Gerald M. Weinberg once said: No matter what the problem is, it’s always a people problem. — Gerald M. Weinberg At its heart, release-first addresses the human element: Our propensity to procrastinate in getting releases out. Our fear th…

  • 2025-12-30

    ✨ Impressive is not always effective

    When AI generates something, the result is often “impressive.” We might marvel at how quickly lots of code is generated that mostly works. Generated documentation is extremely detailed and well formatted. AI-created diagrams are colorful, u…

  • 2025-11-25

    🤔 Why > How > What

    Why? Is this the right thing to build? How? Can it be done efficiently, repeatedly? What? The deliverable. These are listed in order of importance, which also corresponds to the level of difficulty. The trouble with “How” and “Why” is thes…

  • 2025-10-08

    💡 Reflections from AI-coding a 10,000 line app

    Lessons from AI-coding a 10,000 line app BRun is getting usable. Claude Code wrote almost all of it using Doc-driven development (manually write/update the docs, and have Claude write the code). Some thoughts: Claude is fast – there is no …

  • 2025-10-03

    📏 Less code is not the ultimate goal

    Less code is not the ultimate goal Consider the following byte to binary C program: int main(int b,char**i){long long n=B,a=I^n,r=(a/b&a)>>4,y=atoi(*++i),_=(((a^n/b)*(y>>T)| y>>S)&r)|(a^r);printf("%.8s\n"…

  • 2025-09-30

    😊 Align the "happy path" in your code

    An idiom that I learned in the Go community is to align the happy path. An example in C below: happy path not aligned int process_file(const char* filename) {     FILE* f = fopen(filename, "r");     if (f != NULL) {         char b…

  • 2025-09-11

    ⚖️ Code is a liability, not an asset

    A wise developer once said: Code is a liability, not an asset. Aim to have as little of it as possible. This is perhaps the #1 rule for clean code. Some examples: Don’t implement “just in case” features. Remember YAGNI. Premature abstrac…

  • 2025-09-10

    ✂️ YAGNI

    YAGNI - “You ain’t gonna need it!” If you don’t need it now, the chances you’ll need it in the future are small, or at least not the current implementation. Do the simplest thing that works now. Get feedback. Repeat. Iterations are the key …

  • 2025-09-09

    🐛Kernighan's Law

    Kernighan’s Law: Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. Cliff’s Law: In three months, it will be thr…

  • 2025-09-04

    📊 Simple data formats + powerful tools scale

    There is an ongoing shift in data analysis tools. Another example is datavzrd. datavzrd is a zero/low-code, interactive, visual, server-free, browser-based reporting tool for tabular datasets. The paper makes an interesting statement: Most…

  • 2025-07-18

    🧩 Composing is hard, complexity is easy

    We’ve recently explored the idea that composing simple things is the way to scale. But this is harder than just cranking something out. Some examples: It is much easier to create an Excel spreadsheet than write a Python script to process a…

  • 2025-07-17

    🎼 Compose software like music

    Music is an interesting thing – a beautiful arrangement is composed of very simple constructs – a handful of simple notes on a relatively simple scale. The brilliance is in how these simple constructs are arranged. Likewise, brilliant softw…

  • 2025-07-16

    🌱📈 Simplicity scales

    When programming, we learn that simple interfaces and simple data structures are good, because they are flexible. Simple file formats are the same. We can do way more with a CSV or Markdown file in terms of presentation and automation than …

  • 2025-03-31

    👌 Struggling to scale your IoT system? Simplify your data.

    I recently published a new blog article about IoT data. Have you struggled with adapting your IoT system to new applications and requirements? Is handling configuration updates at both the cloud and edge a challenge? Is synchronizing requir…

  • 2025-03-25

    🌅 Simple stuff is boring

    That may be. But doing the simple stuff well is also rewarding. And which is better: exciting or rewarding? To do the simple stuff well feels good. It feels right. That is because it is right. And what gets the simple stuff done? YOUR Platf…

  • 2025-03-19

    🪙 Complexity and Simplicity -- two sides of the same coin

    To get to simple for someone, it often has to get more complex for someone else. An elegant, easy to use UI was a lot of work for someone to design. A powerful, modern programming language that makes it easy for software developers was no d…

  • 2025-03-14

    ⬆️ What is improvement?

    Improvement often means something got simpler for someone: We refactored the code and it is now easier to read. The build system is more reliable. The automated tests are better, so less manual testing is needed. The documentation is bette…

  • 2025-02-05

    🕊️ Simple -- from whose perspective?

    “Just keep it simple” – we sometimes hear this. But from whose perspective? Legal/IP Management IT Financial R&D Security Sustaining engineering Purchasing Manufacturing Quality Sales/Marketing Customer support End User/Customer How d…

  • 2025-02-04

    🕊️ Simple to maintain vs simple to implement

    Recently we talked about the tension between simple to use vs. simple to implement. Maintenance is similar. If you want something that is easy to maintain, you need to put in the work upfront. The Elm programming is a classic example of thi…

  • 2025-01-30

    🕊️ Simple to use vs simple to implement

    To make something simple to use, often it is not simple to implement. For example, in the SimpleIoT UI, the following line of code is all that is required to add a text input field to a node. No handlers need to be attached, etc. textInput …

  • 2024-11-01

    What can kids teach us about platforms?

    When helping my children with math, one of the biggest struggles is to teach them to break math problems into small steps. They are smart and think they can do it in their head, and inevitably make mistakes because everything gets muddled. …

  • 2024-10-25

    ✨ The easiest path to reliability ...

    … is simplicity. Not that we dumb things down and avoid new technology. That is false simplicity. As we discussed previously, the problem is most often not with the underlying technology, but rather the stuff we do. Therefore, if we can sim…

  • 2024-10-24

    🔍 Where do reliability/stability problems typically come from?

    99% of the time, system bugs/problems come from the stuff you do. The code you wrote. The hardware you designed. The system you configured. The custom PRC system you created. Rarely are we affected by stability problems in the Linux kernel,…

  • 2024-07-24

    🌐 Complex Systems, Simple Platforms

    The word “simple” in the context of modern systems may seem like an oxymoron. We can’t deny that modern systems are complex – they need to be to do the things they do. The role of a Platform is to reign in this complexity and create a way t…

  • 2024-07-22

    🔹 Simplicity

    What is the role of simplicity in your platform? Simplicity makes it easier for people to use your platform. Simplicity helps ensure maintainability. Simplicity moves us toward reliable and secure platforms. Simple is not easy, actually it’…