Articles by Joel Spolsky
- Making Wrong Code Look Wrong
Joel provides examples that explain an overall framework for clean code: "Getting the right information collocated all together in the same place on screen in your code lets you see certain types of problems and fix them right away."
- In Defense of Not-Invented-Here Syndrome
Joel argues against the common view that code reuse and avoiding reinventing the wheel are always good, while the Not-Invented-Here syndrome is always bad. He claims that for core business functions, it is better to develop solutions in-house rather than outsourcing, even if that means reinventing the wheel. Outsourcing often leads to poor quality, lack of control, and inability to meet customer needs. Truly valuable companies write their own excellent code that forms their core competitive advantage, rather than relying on third-party solutions. However, for non-core functions, outsourcing and code reuse can make sense.
- A Dusting of Gamification
Joel digs into gamification at Stack Overflow: reputation and karma, aka "magic internet points". He describes specific learnings that came from having upvotes and downvotes, and steps they took to react to the dark side of gamification.
- Rub a dub dub
FogBUGZ started as an experiment but grew popular over time. The code base became messy and difficult to improve. Instead of rewriting the code from scratch, Joel decided to do a thorough refactoring by cleaning up the code without adding new features. This refactoring took three weeks and involved separating HTML from logic, removing hard-coded values, and restructuring the code. Joel argues that this refactoring approach saved time compared to a complete rewrite while still improving the code and fixing bugs. The schedule was predictable and the code is now easier to add new features to. He recommends refactoring tools to make such code cleanups more efficient.
- Don’t Let Architecture Astronauts Scare You
Joel emphasizes the importance of solving useful problems, rather than fixating on interesting architectures.
- Product Vision
Joel references a 2001 article that describes a mad lib process for writing a product vision which has been used frequently across the technology industry.