Canadian software engineer living in Europe.

  • 6 Posts
  • 229 Comments
Joined 3 years ago
cake
Cake day: June 7th, 2023

help-circle
  • Daniel Quinn@lemmy.catoProgrammer Humor@lemmy.mlScrum
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    2 days ago

    That’s both rude and inaccurate:

    “Only release every two weeks.”

    No. Nowhere did I say that. In fact, the team I wrote this about worked on a 1 week sprint. And as I said, I generally prefer kanban these days, but note the date on the post: this was essentially before continuous deployment was in common use, so sprints were very common and deploys were often a manual process that had to be greenlit by management. Many companies still do something similar. It is far from “insane”.

    “This includes bugfixes”

    This is true. It’s is primarily because deviating from the commitment you made with the company to have x jobs done by the end of the sprint necessarily means being unable to meet that commitment. If the bug is catastrophic, you obviously have to fix it right away (this isn’t religion, use your brain), but doing so busts the sprint and that has a real cost so yes, bug fixes should be delayed when possible. What I said was to show discipline in keeping “can you just fix this?” out of the sprint because it can introduce unexpected behaviour (new bugs!) and undermine your relationship with the client and sow frustration and discontent with the team as they’re driven to context switch.

    It’s much easier to say:

    “We found this bug on Thursday, and a fix in the works to have it patched for the next sprint due out next week”

    …than it is to say:

    “We failed to have bugfix/feature/whatever done by the end of the sprint as promised because our developers were taken off-task, catering to the latest freak out session by the COO”.

    “Emergencies can be dealt with immediately, but any root cause analysis or deeper work on underlying issues must wait for the next sprint.”

    Absolutely. Are we here to get work done, or throw everything out the window to sit around and talk through a 6-person meeting whenever something goes wrong? You can, for example schedule a post-mortem for the next sprint when something breaks, but (a) more often than not, this can be handled in retro, and (b) if you need something bigger, then there’s no way you know everything right away anyway.

    “If it can’t be done in 4 hours, it can’t be done at all.”

    That’s a gross misrepresentation. What I said was that a job must be limited to roughly 4 hours of work. If that job is going to be more, then you should break it up to allow the work to be spread around.

    “Don’t document things.”

    I didn’t say that. What I said was that much of the time, people waste time/energy on writing documentation that is shortly out of date. What I didn’t say however is that I meant “commenting your code” here rather than “documentation”. I will die on the hill that most code comments are a waste at best, and a dangerous lie at worst, while obviously user documentation is very different and obviously important. It should however be listed as a ticketed job and therefore added to the sprint.

    “Don’t write bad code. (Also: You must use classes and methods, and variable names must be words.)”

    Yeah I stand by this.

    “Rigid adherence to the “agile process” is required”

    Yes. That’s the whole point. You be as rigid as possible (within reason, again, use your brain). Rigidity provides structure and manages expectations on both sides. Being flexible leads to a mess. I know this because I’ve been doing this for 27 years and it has been my experience everywhere.

    “The job of a software developer is to crank out code and nothing else, especially not design, testing, or documentation”

    It should not be a surprise that one would expect software developers to develop software. If you want design, you hire a designer. Testing is part of the process though, and I never said otherwise. Don’t be shitty. I’ve noted documentation above.

    “Don’t even think about ethics.”

    FUCK THIS. Don’t you dare suggest to me that I wouldn’t demand ethics of everyone I work with. You know nothing about me, or my career, or what I’ve sacrificed to stay on the right side of the moral line. Engineers have a responsibility to do right by the world they live in, and nothing I’ve mentioned in that post would suggest otherwise. This was a post about building an efficient team capable of building great things quickly and well, while keeping the client happy with the progress. Of course you should refuse to do evil on the job. That should go without saying. Your decision to pretend that I care nothing about ethics says more about you than it does me.


  • Daniel Quinn@lemmy.catoProgrammer Humor@lemmy.mlScrum
    link
    fedilink
    English
    arrow-up
    12
    ·
    3 days ago

    As someone who worked in an actually agile team years before the project managers co-opted the idea and contorted it into “Scrum” I feel this comic in my bones.

    It is absolutely maddening how these people have perverted a system that worked so beautifully into the concentration-breaking wasteland we have now just to make themselves feel relevant.

    While I’m presently a fan of Kanban, my happy agile experience was under sprints. If anyone is curious what that looked like, I’ve written about it here.






  • Oh boy are you not going to like this, but someone’s gotta say it:

    The Democrats are just as responsible for this shit show as the Republicans

    The US has a two-party system, based on the assumption that the two sides will oppose each other and through that opposition come to a happy/sane medium. I’ve been watching US politics my entire life (I’m 46) and not once have I ever seen the Democrats do their damned job and oppose the rightward slide.

    Biden had the House and the Senate and he knew what was coming. Anyone paying attention knew that Trump or some other fanatic would take the White House again and he did nothing.

    Things the Democrats could have done with the power they had:

    • Reduce the powers of the president
    • Enshrine abortion as a human right
    • Abolish ICE
    • Medicare for all
    • Elevate Puerto Rico and Washington DC to state status, thus guaranteeing Democrat dominance for the foreseeable future.
    • Reducing the funding of the military
    • Stop supporting Israel already

    They did… none of that. In the case of genocide, they did the opposite and then threatened anti-genocide voters that they’d better fall in line or they’d get… the other genocider. Fuuuuuuck that.

    Some of this is strategic. The Democrats will never make it impossible for the Republicans to threaten abortion rights, because it gives them a stick to beat the Republicans with every 2 years. Same goes for Medicare. Some of it is ideological: the Democrats are just as bad as Republicans when it comes to supporting genociders and opposing socialism for example.

    “BuT tHe RePuBlIcAnS aRe ObStRuCtIoNiSts!” I hear you say. “They Democrats could never get any of that done with the Republicans blocking everything!” To this I remind you that they had the House, the Senate, and the Presidency and all the powers Trump is unilaterally leveraging to turn your country into a dictatorship.

    The Democrats haven’t had a leader with conviction since Carter, and every successive generation is more cowardly and disconnected from the people than the next. It certainly doesn’t help when people decry the immorality of refusing to vote for a candidate that will do nothing but keep the seat warm for the next Republican.

    If the Democrats are unwilling to do their damned job, they should step aside and let someone else do it for them.









  • Don’t think too hard on it. Just use git. For example, I have a repo called handy-scripts that hosts all my dotfiles. I just check that out into ${HOME}/projects/handy-scipts and then symlink everything from where it’s expected to its corresponding place in the repo.

    As you make modifications, remember to occasionally do a git pull --rebase && git commit -m WIP && git push so that all your devices are synced up.



  • Basically the IP stops responding to any traffic. At one point I set up a constant ping, and every once in a while I got something like “destination host unreachable”. It doesn’t happen often enough for me to move the service onto a physical device though. That’s work and I’m tired like, a lot.


  • Daniel Quinn@lemmy.catoLinux@lemmy.ml15 Signs Linux Is Not For You
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    1 month ago

    16: I’ve had more headaches getting multiple monitors to work in Windows than I ever have in Linux. Try connecting 2 monitors of wildly different resolutions in Windows and witness the abject failure of windows to handle that elegantly. Your mouse can slip off into a “void” where no monitor exists, and yet your content can just disappear to, dragging the mouse between monitors slips the cursor way off and to the right, screenshots are a mess, etc. etc.

    17: I only play games in Linux and I never use emulators… unless it’s for things like SNES.

    18: I don’t know what you’re getting at with this one. Software is way more shareable in Linux. You just say “it’s in your package manager” or “install this Flatpak”. Windows and Mac on the other hand have half-assed app stores and a culture of "just go to ${URL} and click “download, ok, ok, ok” which inevitably leads to stuff breaking and no discernible way to determine what failed 'cause your machine is full of rando installations.

    19: This is fair, though most high-profile stuff like CrowdStrike works for Linux now.

    20: I cannot begin to tell you how much Windows and Mac don’t work. Like, at all. Just today I spent an hour on a call with another developer stuck in Windows trying to get a JDBC driver to work. The constant ambiguous error messages, useless documentation directing you to "just go to ${RANDOM_SITE} and install some-cryptically-named-executable.msi that craps out with error messages about missing runtimes… the whole operating system is hot garbage and that’s before you factor in the missing keyboard shortcuts, flaky monitor support, creeping AI, and ads shooting into your eyeballs. The only way Windows “Just Works™” is if you redefine “works” entirely.



  • I installed a Pi-Hole largely to serve as a local DNS, but enabled the ad-blocking 'cause it seemed silly not to. My wife got very upset. Apparently she likes the ads.

    With that aside though, it seems to work quite well. Just make sure to (a) use a reasonably-powered device (my Pi Zero appears to be taxed by it) and you should probably use an Ethernet connection 'cause my Pi Zero regularly flakes out so DNS requests fail due to the IP being “unreachable” for a half second.