All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

Reconsidering Five Common Software Engineering Practices

By

kiyanwang

5mo ago· 7 min readenOpinion

Summary

The article critiques five common software engineering practices that the author believes should be reconsidered: 1) The 'don't reinvent the wheel' dogma, arguing that sometimes writing custom code is better than adding dependencies, 2) The 'write tests first' (TDD) approach, suggesting it can be overrated, 3) The 'code must be self-documenting' principle, advocating for proper documentation instead, 4) The 'agile is always better' mindset, noting that different methodologies work for different contexts, and 5) The 'you must have a CS degree' requirement, emphasizing that practical skills matter more than formal education. The author provides personal experiences and reasoning for why these dogmas need reevaluation in modern software development.

Key quotes

· 5 pulled
The CTO of a startup I worked at hated dependencies. We worked with some 3D calculations (software for drones), and he was writing tens of mathematical functions himself. He insisted that even though it's slower, he at least understands every part and can fix it.
TDD is great for some scenarios, but it's not a silver bullet. Sometimes you need to explore the problem space first, and writing tests can actually slow you down.
The 'code must be self-documenting' dogma often leads to code that's neither self-documenting nor properly documented. Good code should be readable, but complex logic still needs explanation.
Agile methodologies work well for many teams, but they're not universally applicable. Sometimes a more structured approach or even waterfall makes sense depending on the project and team.
I've worked with brilliant engineers who never finished college, and mediocre ones with PhDs. What matters is problem-solving ability, not a piece of paper.
Snippet from the RSS feed
A few months ago, I wrote about 13 software engineering laws, which are observations about how software projects behave.

You might also wanna read