Simo Virokannas

Writings and ramblings

Tag: informative

  • Desire Paths and the Myth of the Imaginary User

    Desire Paths and the Myth of the Imaginary User

    Most users will never fully learn your system, read your documentation, or internalize your intended workflow. They will instead discover whatever path minimizes friction, uncertainty and cognitive effort. These unofficial workflows – the software equivalent of desire paths across a lawn – are not evidence of user failure but direct feedback about how the system…

  • Spreadsheets and LLMs: from Prototyping to Archaeology

    Spreadsheets and LLMs: from Prototyping to Archaeology

    Spreadsheets are among the most productive tools ever created. You can take a vague idea, and within minutes have something that resembles a working model. Same goes for LLMs. And both tools become problematic when people quietly start treating the prototype as the final system.

  • All Roads Lead to Latency: The Microservices Illusion

    All Roads Lead to Latency: The Microservices Illusion

    Microservices are often presented as an inevitable evolution of software architecture. The rationale goes something like this: once your codebase reaches a certain age or size, gravity itself pulls you toward service boundaries, containers, and a mesh of APIs because that’s the only way for to survive. Monoliths, they say, are the past. Microservices are…

  • Swipe to Skip Learning

    Swipe to Skip Learning

    For aspiring developers and juniors entering the field, this moment in time is pivotal. You’re being told you can build apps faster than ever, launch startups in a weekend, learn “just enough” programming to glue AI tools together. But if you skip learning how software actually works, you’re not speeding up your career. You’re quietly…

  • Swipe for Technical Debt

    Swipe for Technical Debt

    AI coding tools are spreading through software companies faster than any previous technology. Startups are embracing them for “productivity”, teams are embedding them in every IDE, and developers are boasting about how much code they can generate in an afternoon. It feels like progress. Is it? The truth is, using AI to write code is…

  • End of File

    End of File

    Since the dawn of modern computing, files have been an integral concept in organizing and storing data. Today each device keeps internally track of hundreds of thousands or millions of files. This sheer quantity means that files perhaps are no longer an ideal way to either organize or store information. But is there anything to…

  • The Information Problem

    The Information Problem

    There’s a lot of information available for software developers. On one frequently updated list of free programming books on GitHub, there are several thousand books listed for different programming languages and subjects, in almost 50 languages. And these are just free books, one list. Amazon returns over 40,000 results for the search “programming book”. Reading…

  • Transference of Complexity

    Transference of Complexity

    Summary Programming languages have evolved in accessibility, complexity and readability in the past six decades. The overall internal complexity of a single software application has grown exponentially, while the amount of code lines written to achieve a specific end result has decreased. This naturally occurring transference of complexity brings about completely new kinds of problematic…