Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^3: Rediscovering Hubris

by eyepopslikeamosquito (Archbishop)
on Jan 18, 2021 at 11:33 UTC ( [id://11127058]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Rediscovering Hubris
in thread Rediscovering Hubris

Fair enough. Yes, it's true you want to be solid, but I also feel it's vital to do more. Here's why.

If you're successful in the long term, sooner or later you're gonna need to upgrade ... and developing a strong upgrade capability early forces you to implement high automated test coverage early ... which confers many benefits, listed at Effective Automated Testing.

With high automated test coverage in place, you can confidently test your software with many different versions of Perl and libraries ... which may flush out further bugs (e.g. a test may pass with one version of Perl/library but fail with a different version). In summary then, developing a strong upgrade/autotest capability early improves code quality.

It also gives a psychological boost - you no longer fear/dread having to upgrade or port to a new platform, you welcome it! You can easily run experiments with different versions of Perl and libraries to verify that everything still works and to see if they run faster or slower and by how much.

Finally, being able to gracefully move to the latest and greatest may help with recruiting top notch developers (especially younger ones). Admittedly most of my experience here is with C++ programmers but, especially the younger ones, are usually energized by using the latest and greatest features.

Regarding teamwork, you are right, I was out of line, I was imagining the arguments between Leitz and some of the younger guys at work who love using the latest and greatest. :) I've experienced many heated arguments in teams over the years, as indicated at Conflict in Teams, so have learnt the hard way that it is vitally important to clear the air and get everyone pulling in the same direction.

Replies are listed 'Best First'.
Re^4: Rediscovering Hubris
by Leitz (Scribe) on Jan 18, 2021 at 12:58 UTC

    @eyepopslikeamosquito, I really like the posts you're linking to, thanks! Something for today's study.

    From skimming those posts, I think we agree on a lot. So far at work I've finagled using VCS branches and not pushing code straight to the production branch during a release cycle (we are not CI/CD), requiring peer review before merging into the release branch, requiring a test document for each set of changes, automated some of the build steps, significantly increased the automated testing, and have written several documents that explain the code base processes.

    Most of that comes from reading "Working Effectively With Legacy Code". Being the "new guy" in an established code base gave me the openness to see what wasn't tested or documented. It has been a challenge. In a chat with Matt S Trout (of Shadowcat fame), he pointed out that dealing with a large code base is a skill of its own. That was super encouraging, I went from feeling really really really behind to just really really behind. :P

    I also failed to communicate something that impacts what you wrote. I work on system tools that rely on the customer's OS version of Perl. We don't embed Perl into the tool, and the customer base tends to use older OS versions. If our tool was only used in-house then your initial points are appropriate, and upgrading Perl is a really good idea.

    Chronicler: The Domici War (domiciwar.net)

    General Ne'er-do-well (github.com/LeamHall)

      I also failed to communicate something that impacts what you wrote. I work on system tools that rely on the customer's OS version of Perl. We don't embed Perl into the tool, and the customer base tends to use older OS versions.

      Ha ha, you're the second person this week to surprise me! Thanks for pointing it out. Because all my experience (with both Perl and C++) is in an environment where we control the version of the language and libraries, I just blindly assume that is the case for everyone. Next time, I'll ask first. :)

        Ha! It's my fault, and a funny situation in a friendly sort of way. I come from an operations background, and don't recall ever working in a homogeneous shop. More than once I've caught myself trying to figure out how to kill "that one machine" some developer swore they needed. Despite it being the only machine in the entire company with that OS.

        Chronicler: The Domici War (domiciwar.net)

        General Ne'er-do-well (github.com/LeamHall)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11127058]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (6)
As of 2024-04-19 18:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found