

“Unfortunately, the most common metaphor for software development is building construction. [...] Well, software doesn’t quite work that way. Rather than construction, software is more like gardening—it is more organic than concrete. You plant many things in a garden according to an initial plan and conditions. Some thrive, others are destined to end up as compost. You may move plantings relative to each other to take advantage of the interplay of light and shadow, wind and rain. Overgrown plants get split or pruned, and colors that clash may get moved to more aesthetically pleasing locations. You pull weeds, and you fertilize plantings that are in need of some extra help. You constantly monitor the health of the garden, and make adjustments (to the soil, the plants, the layout) as needed.
Business people are comfortable with the metaphor of building construction: it is more scientific than gardening, it’s repeatable, there’s a rigid reporting hierarchy for management, and so on. But we’re not building skyscrapers—we aren’t as constrained by the boundaries of physics and the real world.
The gardening metaphor is much closer to the realities of software development. Perhaps a certain routine has grown too large, or is trying to accomplish too much—it needs to be split into two. Things that don’t work out as planned need to be weeded or pruned.”
― The Pragmatic Programmer: From Journeyman to Master
Business people are comfortable with the metaphor of building construction: it is more scientific than gardening, it’s repeatable, there’s a rigid reporting hierarchy for management, and so on. But we’re not building skyscrapers—we aren’t as constrained by the boundaries of physics and the real world.
The gardening metaphor is much closer to the realities of software development. Perhaps a certain routine has grown too large, or is trying to accomplish too much—it needs to be split into two. Things that don’t work out as planned need to be weeded or pruned.”
― The Pragmatic Programmer: From Journeyman to Master
“An engineers goal is to make himself obsolete.”
―
―
“There is a simple reason why you should commit yourself to writing programs that are free of errors from the very start. It is that you will never be able to establish that a program has no errors in it by testing. Since there is no way to be certain that you have found the last error, your real opportunity to gain confidence in a program is to never find the first error. The ultimate faith you can have in one of your programs is in the thought process that created it. With every error you find in testing and use, that faith is undermined.”
― Structured Programming: Theory and Practice
― Structured Programming: Theory and Practice

“Engaging in 'vibe coding' as a non-technical founder is like surfing with an AI-powered board—catching waves effortlessly, but without understanding the ocean, you're one wipeout away from a crash.”
― The 6 Startup Stages: How Non-technical Founders Create Scalable, Profitable Companies
― The 6 Startup Stages: How Non-technical Founders Create Scalable, Profitable Companies

“Erase outdated elements and rewrite programs: learn, unlearn and relearn to constantly adapt.”
― Disrupt With Impact: Achieve Business Success in an Unpredictable World
― Disrupt With Impact: Achieve Business Success in an Unpredictable World
Seunghwansohn’s 2024 Year in Books
Take a look at Seunghwansohn’s Year in Books, including some fun facts about their reading.
Seunghwansohn hasn't connected with their friends on Goodreads, yet.
Polls voted on by Seunghwansohn
Lists liked by Seunghwansohn