Glean 拾遗
Recent picks

2picks · chronological

09-21

After 14 Years of Programming, Complexity Is Still the Enemy

After 14 years of shipping software, Piglei distills eight lessons on why programming stays hard. His central claims: good code remains a low-probability event even inside large companies serving millions of users; the ideal programming experience resembles solving LeetCode problems — separated concerns, fast precise feedback, near-zero cost of mistakes — and teams should chase that feeling through modularity, automated tests and shorter feedback loops; and the real enemy is not the product manager who keeps changing requirements but compounding complexity. Along the way he argues that SRP is really about people requesting changes, that perfectionism in code is a trap, that learning effort should be allocated by ROI rather than zeal, and that starting unit tests early reshaped his career. Written for engineers with production experience who are rethinking code quality and their own growth.

www.piglei.com · 10 min · Career Advice · Code Quality · Complexity Management
09-17

High Internal Quality Makes Software Cheaper, Not More Expensive

Martin Fowler argues that the familiar quality-versus-cost trade-off does not apply to the internal quality of software. He splits quality into external attributes users can perceive — UI, defects — and internal ones they cannot, such as architecture, naming, and modularity. Customers will pay more for a better interface but cannot judge internal structure, so it is usually treated as a cost to be cut. Fowler's claim runs the other way: internal quality lowers the cost of future change, making software cheaper to produce, not more expensive. A pseudo-graph of cumulative functionality against time shows low-quality projects starting fast and then stalling as cruft accumulates; the developers he canvassed report being slowed within weeks. Even the best teams create cruft — they hold it down with automated tests, frequent refactoring, and continuous integration. He concedes that output cannot be measured, so the crossing point rests on experience rather than data. Written for engineers who need an economic, not moralistic, case for quality.

martinfowler.com · 15 min · Code Quality · Refactoring · Software Engineering