this post was submitted on 19 Sep 2023
22 points (100.0% liked)

Programming

355 readers
1 users here now

This magazine is dedicated to discussions on programming languages, software development, and coding. Whether you are a beginner programmer or an experienced developer, this is the place for you. Here you can share your knowledge, ask questions, and engage in discussions on topics such as coding languages, software engineering, web development, and more. From the latest trends and frameworks to tips and tricks for debugging, this category covers a wide range of topics related to programming.

founded 2 years ago
 

Hey all, I want to know how you all deal with management and pushing tech debt work. Here's a little bit of background on my current situation, and I'd love to hear how you'd deal with it.

I've been in the profession for about 8 years and had a high-level job at my last company where I oversaw a huge amount of modernization work (bringing an old Laravel codebase up to PHP 8, putting all sites in Docker images for the new cloud infrastructure etc...).

I recently got a new remote job with a pretty high salary (I swear this is relevant and not a brag) with a company that has an ancient tech stack. During the interview, we talked about modernizing the company's stack and seemed to be quite important to them. I really like the company and the people working there and I've been really welcomed there. I was brought into the role because of my experience with modernizing code and I worked for a competitor before joining this team.

The tech stack here is pretty simple and ancient. It does work, but it causes a lot of issues. They're using a monolithic Apache server for all of the websites we manage which each dev has to set up with virtual hosts. My first main project is working under a senior dev to scope out a brand new Laravel API which is all modern tech, no outdated PHP versions or anything.

I was pretty pumped the past few weeks but today I hit a lot of roadblocks in working with him and kind of want to hear what you guys feel about the situation.

We're building out an API specification and he insisted that we do it in a Google document, which I suggested we look at an OpenAPI specification instead so we didn't have to keep repeating request bodies and responses. He came back and said something along the lines of: "I don't really want to learn YAML because I don't have time, so we'll stick with the document.". My wrists and fingers still ache from having to copy, paste and edit each request and response manually. Google Docs isn't a great solution for generating API specifications.

Then after that, we bootstrapped the main Laravel application. It's the most recent version of Laravel, and I realised that he'd committed the whole vendor folder to the repo and had gone through the .gitignore files in each dependency and removed stuff that would mess with it. I asked why he did it like that, and he said: "we won't be using Composer because our servers don't have it". Our other applications are running on an older version of PHP so I said we'd need a new server anyways, so why don't we do it the way that Laravel suggests with CI/CD pipelines? He comes back and says "We don't use Composer, and that won't change.". He's been pretty cold to me ever since I started.

Thanks for sticking with me, now back to the salary. How should I approach my manager (the Lead Developer) about this without making it seem like I'm tattling on the Senior? The salary is way more than an average Laravel dev and I know I'll feel bad if I say nothing. I also don't want to dull my skills with newer technologies because I'll struggle in my next role when/if I move on. I spent 3/4 years at my last role and then moved onto another role which only lasted 3 months before coming into this role, so I don't really want to change jobs again for a while.

I'd really value your opinions in this as professionals, even if the technology I've mentioned isn't familiar to you! How would you deal with this situation, especially when it comes to management that don't understand the problems that ignoring tech debt can cause?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 1 year ago (1 children)

TL;DR I would leave him alone regarding his software components.

I just finished writing this comment and noticed it's your boss. I assumed you were the boss, bit maybe this comment still helps you.

Some people can't be convinced. (Even if they can, they can be too busy to learn new stuff.)

There's ideal and reality. I find this often discussed in software architecture books. As you've been doing, a good architect analyzes how the ideal proposal works in practice. In your case, your colleague is refusing the ideal either because he has a good understanding of the reality or it's outside of his comfort zone.

I've tried several times to convince this kind of person. They either couldn't act on what was told or intentionally ignored me. One guy even harassed me, which was his technique to get his way.

In any case, to work with this kind of person I learned to leave them alone. I let them create a blackbox and isolate my code / role from theirs as much as possible. I also try assigning a different but suitable role for them.

Regarding Google Docs... maybe assign a different person to do that for you.

[–] [email protected] 2 points 1 year ago (1 children)

I think intentionally picking the wrong solution makes you an irresponsible developer. Not only are you introducing technical debt immediately but slowing down your future progress.

But, you're probably right about leaving him alone and letting him own these problems. I've suggested OpenAPI, he picked Google Docs. I'll be there when we have to spend a few days rewriting the specs in OpenAPI.

[–] [email protected] 2 points 1 year ago

Agreed. Some people will never attempt the ideal solution, and a pragmatic solution might be a good one.