Software is about people, not code (2020)

Hacker News Top News

Summary

An essay arguing that software success depends more on understanding people and their needs than on writing perfect code, illustrated by abandoned codebases that solved no real problem.

No content available
Original Article
View Cached Full Text

Cached at: 08/07/26, 05:12 PM

# Software is about people, not code Source: [https://letterstoanewdeveloper.com/2020/01/27/software-is-about-people-not-code/](https://letterstoanewdeveloper.com/2020/01/27/software-is-about-people-not-code/) Dear new developer, When I was starting out, I thought that software development was all about code\. After all, that was the main thing I was working on\. Well, maybe not the main thing, as I needed to know what code to write, how to interface with other code, what was the problem being solved, how to deliver it, the correctness of the code, and how it could be maintained\. But, the writing the code felt like the most important part of the job\. It was certainly the most tangible and fundamental\. After all, if the code doesn’t work, all those other things won’t matter, right? This led me to focus on how to write code\. I wrote up a style guide for the company\. Researched new technologies\. Read and commented in online forums\. Learned how to decompile java bytecode to reverse engineer proprietary software\. Argued about code formatting\. Joined a design patterns discussion group\. Attended meetups and blogged\. I undertook all of these activities to be better at writing code\. However, I eventually learned that people were far more important for the success of a software project than code\. This crystallized for me after I saw a few very interesting \(to me\!\) codebases abandoned for lack of a market or other business flaws\. This was a surprise to me, insofar as I’d assumed the code was the most important part of software development\. But really: - Software and code is created for people and their purposes\. It doesn’t exist on its own, isolated from human needs\. - People will use the tools or applications built with code \(or, worse, they won’t\)\. This means that they have to be bought in to what is being built and consulted about functionality\. - Most people don’t know or care about the code\. \(If they did, they’d likely be a developer\.\) They’re just trying to get something done\. The most beautiful, well tested, flexible, configurable, documented, future proofed codebase that does the wrong thing is useless\. At the end of the day, code is a general purpose tool, just like accounting or research and development\. Code must solve real world problems of real people\. Sincerely, Dan **Published**January 27, 2020January 5, 2020 ## Post navigation

Similar Articles

Writing Toy Software Is A Joy (2025)

Lobsters Hottest

A blog post advocating for writing toy programs as a way to understand software deeply and rediscover the joy of coding, arguing against over-engineering and the industrialization of software development.

The Project of Software is Complete

Lobsters Hottest

An opinion piece arguing that the democratization of coding via LLMs has not produced transformative new software because most useful applications already exist; the vessel of software is already full.

Why write code in 2026

Hacker News Top

Argues that despite AI coding agents, humans still benefit from writing code for better understanding, ownership, and maintaining software quality.

@saranormous: https://x.com/saranormous/status/2064510215056400652

X AI KOLs Following

Despite rapid advances in AI coding agents like Devin, which have dramatically increased code writing and shipping, the article argues that the most valuable aspects of software engineering remain illegible to benchmarks and require human judgement and organizational coordination that cannot be easily automated.

Towards Understandable Software

Lobsters Hottest

The article critiques current programming practices and the reliance on LLMs, arguing instead for better abstraction, documentation, and software stacks to make code more understandable and maintainable.