How to be an Intermediate Programmer

Topics covered
Popular Clips
Episode Highlights
Stress Testing
Stress testing in a development environment is often seen as a necessary challenge rather than an enjoyable task. Alan Underwood highlights the complexity of setting up a replica of a production environment, which can be a significant headache 1. Stress tests are akin to integration tests, requiring a network and database setup to simulate real-world conditions. Joe Zack adds that stress testing can be frustrating, as it often involves trial and error with tools and configurations 2.
Stress testing is an artificial way to find where that wall is, and then you do what you can to try and move it further back.
--- Alan Underwood
Despite the challenges, stress testing is crucial for identifying performance limits and ensuring system robustness.
  Â
Third-Party Risk
Managing third-party software risks involves skepticism towards promises of future features and readiness for unexpected failures. Alan Underwood advises against relying on "vaporware," or software that is promised but not yet delivered, as it can lead to project delays and unmet expectations 3. He suggests encapsulating dependencies to allow for easier swaps if necessary, though this can sometimes feel like speculative programming 4.
Never let your schedule depend on vapor.
--- Alan Underwood
Being prepared for third-party software to fail or change unexpectedly is crucial for maintaining project timelines and quality.
  Â
Quality vs. Time
The trade-off between quality and development time is a constant challenge in software projects. Alan Underwood humorously notes that developers are often asked to compromise quality for speed, likening it to an unavoidable reality like death or taxes 5. He emphasizes the importance of communicating the potential impacts of these trade-offs to the team and management. Joe Zack suggests coping strategies, such as documenting potential improvements for future reference and sharing experiences with colleagues 6.
You may be asked to trade off quality to speed the development of a project in a way that offends your engineering sensibilities.
--- Alan Underwood
Balancing these demands requires clear communication and strategic planning to mitigate risks.
Related Episodes
How to be a Programmer
Answers 383 questionsHow to be an Advanced Programmer
Answers 383 questionsClean Code - How to Write Amazing Functions
Answers 383 questions

Clean Code - How to Write Classes the Right Way
Answers 383 questionsThe Pragmatic Programmer - How to Generate Code
Answers 383 questions
Tackling Tough Developer Questions
Answers 383 questions

What do you want to be when you grow up?
Answers 383 questionsThe Pragmatic Programmer - How to Estimate
Answers 383 questions86. Lightning Talks
Answers 383 questionsClean Code - Formatting Matters
Answers 383 questionsYou Asked For It
Answers 383 questions

Programmer Strengths and Weaknesses
Answers 383 questionsDesign Patterns Part 3
Answers 383 questionsJavascript Promises and Beyond
Answers 383 questions

Is Kubernetes Programming?
Answers 383 questions
