This is Part 3 of 7 part series inspired from the book Pragmatic Programmer, read Part 2 here:
- Use Blackboards to Coordinate Workflow: Use blackboards to coordinate disparate facts and agents, while maintaining independence and isolation among participants.
- Estimate the Order of Your Algorithms: Get a feel for how long things are likely to take before you write code.
- Refactor Early, Refactor Often: Just as you might weed and rearrange a garden, rewrite, rework, and re-architect code when it needs it. Fix the root of the problem.
- Test Your Software, or Your Users Will: Test ruthlessly. Don’t make your users find bugs for you.
- Don’t Gather Requirements—Dig for Them: Requirements rarely lie on the surface. They’re buried deep beneath layers of assumptions, misconceptions, and politics.
- Abstractions Live Longer than Details: Invest in the abstraction, not the implementation. Abstractions can survive the barrage of changes from different implementations and new technologies.
- Don’t Think Outside the Box – Find the Box: When faced with an impossible problem, identify the real constraints.
- Ask yourself: “Does it have to be done this way? Does it have to be done at all?”
- Some Things Are Better Done than Described: Don’t fall into the specification spiral—at some point you need to start coding.
- Costly Tools Don’t Produce Better Designs: Beware of vendor hype, industry dogma, and the aura of the price tag. Judge tools on their merits.
Please read part 4 of 7 part series inspired from the book Pragmatic Programmer here.