Hacker News new | ask | show | jobs
by BilalBudhani 958 days ago
On a slightly different note, In my consulting days, I have seen a fair share of projects that have grown so complex in regards to infrastructure or they are deeply coupled with a specific version of a tech that sometimes it has taken weeks for me to get them working or worst they became impossible to set up on dev machines.

In my current company, I spent some time maintaining a docker-compose file just to ensure we have a reproducible infrastructure and all of it should work with a single command.

I firmly believe that ease of development has a major impact on the overall quality of the product.

4 comments

Oh my god this reminds me of one of the worst consulting gigs where the customer had some ancient Windows NT server or something that you could only access via some screen sharing application and that production environment was the only place that could actually run the thing correctly. They also didn’t know of any way to roll things back if anything broke. Seemed like all the devs that knew what the thing was left 10 years ago
I worked with a project which to be compiled required years-old versions of esoteric tools, long-abandoned libs, unreadable scripts, and a lot of guesses (docs where written by someone who had very limited knowledge of English). It took weeks to re-create the environment locally, but it was still not the same thing vs the build machine (single), and produced occasionally different errors. Interestingly, this situation to some extent was deliberate: for some reason the project was hated by middle-level management, but they couldn't obtain permission to sunset it from tops, so essentially they were slowly asphyxiating it by not allocating time for fixes, upgrades, and automation
Holy Moses does this sound familiar. I've yet to deal with any aspect of ERP that isn't (among other things) horribly, horribly coupled to the installation's target environment.

"But of COURSE you should edit this system DLL to make a bog-simple content management system function . ."

No, no, really I shouldn't. The hell planet you from?

"It's INDUSTRY STANDARD!"[1]

Oh for the love of Christ, not this again. Go sit in the corner with the other fifty-seven "industry standards".

[1] I'm going to blow a gasket the next time someone gives me this without a numbered citation or CDRL item.

A friend of mine worked on firmware that shipped on hardware made by a household name and installed en masse through the entire US. Fairly essential infrastructure.

I almost asked if you’re that friend. The difference is that with what he was working on, it was a beloved money maker that was implausible to materially change because of recertification costs.

The last I heard, they were buying second-hand IDE licenses on eBay because the IDE package had been EOL’d ~10-15 years prior.

100% agree. Any slow iteration cycle completely destroys productivity.

I'm (annoyingly) regularly preaching to my team the value of quick turnarounds on pull request reviews and manual testing, so the team completes their changes with as much feedback as possible while their heads are still in the same space. Apparently pair programming is the ultimate form of this, but I've never tried it.

> Apparently pair programming is the ultimate form of this, but I've never tried it.

I've practiced pair programming in two companies, and I really love it. For me working with a colleague massively improve my focus when I'm the one coding, and while not being the one coding I was really happy yo be able to give instant feedbacks instead of waiting PR time (I've done it once with another senior Dev, and the second time with a junior, and pair programming with a junior is probably the most efficient way of working with a junior I've ever encountered).

There's small drawback though: it's mentally draining, and you shouldn't expect to work as many hours as when you're solo, at least not for a long period.

Intellij has DevContainers feature, sounds like exactly that.