Published Feb 27, 2016

How to be an Intermediate Programmer

    Explore the essential skills and strategic decisions that define intermediate programming, from managing software risks and balancing quality versus development time, to fostering effective team dynamics and continuous learning for enhanced productivity and innovation.
    Episode Highlights
    Coding Blocks logo

    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