Reconsidering Five Common Software Engineering Practices
By
kiyanwang
Front-window bakery material. Catches the eye, delivers the goods.
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 pulledThe 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.
You might also wanna read
Reflections on Becoming a Senior Software Engineer After 2.5 Years
Holden Nelson reflects on being promoted to Senior Software Engineer just 2.5 years after starting his first software job out of college. He
The Unassuming Nature of Talented Software Engineers
This blog post explores the concept that truly talented software engineers often don't display obvious external signals of their abilities.
surfingcomplexity.blog·7mo agoCritique of Technical Interview Practices: When Coding Puzzles Don't Reflect Real Job Requirements
The article critiques modern technical interview practices through a personal anecdote about a backend developer interview. The author descr
Three Years In: A Senior Engineer's Reflection on AI's Impact on the Software Development Role
A senior engineer reflects on the long-term sustainability of AI tools in software development, three years into deep organizational adoptio
Three Years In: A Senior Engineer's Reflection on AI's Impact on the Software Development Role
A senior engineer reflects on the long-term sustainability of AI tools in software development, three years into deep organizational adoptio
Bijou64: A variable-length integer encoding that's both correct and accidentally fast
This article describes the development of bijou64, a variable-length integer (varint) encoding created for the Subduction CRDT sync protocol
