• 1 Post
  • 28 Comments
Joined 1 year ago
cake
Cake day: June 18th, 2023

help-circle

  • My experience with maintaining open source projects (though mine are very much smaller) is that it’s quite similar to a business: you just have to deal with stakeholders and people who think they are stakeholders.

    I had all the same experience at work:

    • Some unknown person from an unrelated team contacted me because something that my team does not manage broke. I tried to help a few times and I suddenly became their personal IT support team.

    • Another time someone not even working at my company demanded that I drop everything and fix their problem, because my name appeared in 3rd parties libraries.

    It’s sad that open source authors don’t always receive the recognition that they deserve.




  • RoR is too much magic for me. Getting started with any new code base is such a pain that I never want to do again. As a manager, I’ll avoid any job post that mentions Ruby. I have maintained projects written in Delphi, Centura, Java, C#, PHP and none of them even come close to the pain of RoR. Java and C# are notorious for ceremonial interfaces but that’s nothing compared to trying to figure out RoR automagics.









  • After many failed attempts at TDD, I realized/settled on test driven design, which is as simple as making sure what you’re writing can be tested. I don’t see writing the test first as a must, only good to have, but testable code is definitely a must.

    This approach is so much easier and useful in real situations, which is anything more complicated than foo/bar. Most of the time, just asking an engineer how they plan to test it will make all the difference. I don’t have to enforce my preference on anyone. I’m not restricting the team. I’m not creating a knowledge vacuum where only the seniors know how yo code and the juniors feel like they know nothing.

    Just think how you plan to test it, anyone can do that.




  • Others have given excellent advices. I’ll approach it from management point of view:

    • If there’s management oversight, such as tech lead/engineering manager, talk to them. Don’t make any accusation. Approach it from the direction of you feeling uncomfortable with how the team is working. They will know how to solve the issue. However, any tech lead/engineering manager should have already dectected the problem and at a minimum acknowledge the issue.

    • If there’s no tech management oversight, I’d suggest you approach the senior engineer directly. I’d want to emphasize here that it has to be tech management. Non tech management won’t understand the problem and they won’t be able to solve the problem. Sometimes the senior engineer maybe under pressure to deliver and there’s nobody to split the tasks to other team members. I did this a few times in my career before I developed my skill to lead a team.

    • If it’s neither because the senior is under pressure to deliver, nor there’s management oversight, your next best bet is to seek consultantion with another senior, either in your team or another team. They maybe able help to talk to the senior.

    • Your last resort would be non tech management, or saying it another way: express that you’re not happy with your job. This won’t be much help unless others in your team doing so as well.

    If all these fail, consider finding another offer. There’s no oversight, there’s no willing to inprove from the senior and there’s no chance to improve the situation from other seniors, you won’t learn much there.


  • There are already some attempts but I don’t think it will work, harmful even. Best case scenario, the AI can understand the code as well as a senior engineer from another company. All they can know without the context is what was changed, which is useless. We need the reason why the commit was made, not what was changed. The info is not there in the first place for the AI to try to extract.