Tag
The article explains that software should be designed to match human cognitive systems, particularly the fast intuition and slow attention processes, for better effectiveness and user experience.
Matt Pocock shares a developer philosophy: rather than writing tests to catch the next occurrence of an error, aim to make that class of error impossible through better design.
Valentina Servile argues that good software design still matters even as AI writes more code, because the audience for well-designed code now includes AI agents as well as humans.
A blog post exploring emerging UI/UX design idioms associated with AI interfaces, such as sparkle emojis, shimmering text, and tiny icons, and speculating on their lasting impact on software interaction paradigms.
This PDF introduces the concept of data-oriented design, a software design approach focused on efficient data layout and processing, particularly in game development.
The author observes that AI agents are becoming the primary users of business software, shifting focus from human UIs to agent-accessible APIs and tool schemas.
The article argues that despite tech's focus on empathy and delight, software becomes disrespectful by removing user agency and control, ultimately infantilizing users. It calls for designing with respect rather than pity.
The article argues that the decoupling of development speed from system importance, accelerated by AI coding, leads to fragile critical systems with wide blast radius failures, and advocates for 'slow software' that enforces careful design.
Discussion of two approaches to software design, as documented on the C2 wiki.
A tweet argues that subagents are an antipattern in AI/software design.
A blog post discussing how excessive nil pointer checks in Go can indicate unclear code and poor error handling practices, advocating for early failure and explicit modeling of unavailable dependencies.
Kent Beck clarifies that the YAGNI principle is not about saving coding effort but about avoiding the costs of speculative structure—building code before it's needed. He argues that even correct guesses incur a penalty because they remove the option to build the right structure later.
A practical guide to writing effective software design documents, outlining key components and best practices drawn from the author's experience at Google and Microsoft.
The author shares lessons from designing a testing framework in Guile, focusing on how adding context to test definitions makes tests more reusable and improves developer experience.
The article argues that duplication is cheaper than the wrong abstraction, and advises developers to avoid forcing abstractions that later become complicated with conditionals.
A blog post arguing that every UI frame should be visually perfect, with examples of poor animations and transitions.
This article explores the design of Lispy domain-specific languages using SCSS, a Scheme-based CSS preprocessor, as a case study. It discusses how SCSS represents CSS as first-class values and the limitations of its implementation.
The author explores how software design might need to evolve when AI agents become regular users, discussing needs like durable state, collaboration rules, permissions, and audit trails.
A critical opinion piece argues that AI agents like Claude lack the contextual judgment and ability to say 'no' needed for real software architecture, warning against letting them design systems without human oversight.
The author details the process of designing a custom query language tailored for non-technical analysts to filter vehicle maintenance data, outlining user needs, data schema, and specific use cases.