Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

RoboRobok's avatar

Why nobody cares about developer's convenience?

Whenever I join teams, I find it shocking how painful working environments are.

Now I work for a company probably all of you know. It's a company having a widely popular online product and mobile apps. The website is relatively small comparing to its popularity.

They have this local environment that builds freakin' 20 minutes. I mean, how is that even possible? What happens in these 20 minutes? Before it's done, it eats like 20% of my new MacBook's battery.

And it's usually like that. I join the project to find out that working on it is just pain in the a**. Why nobody cares? I don't think it needs to compile every single sh** every single time.

Are these environments so unbelievably poorly optimized, or do they really need to be this complex? 20 minutes is eternity, like you do billions and billions of computing operations in that time. And what it does is just building a freakin' website. I mean, come on...

0 likes
15 replies
Braunson's avatar

I've worked with some crazy environment setups from teams, all the way from multiple developers simultaneously editing live production sites via FTP as "version controlled" (absolutely insane), to some odd long building or very broken development pipelines.

I don't claim to have a perfect setup but I include a pre-set Laravel Homestead box in my git repository with my project, it takes 1-2 mins to go from 'Clone Repo' to 'Visit https://project.test' and begin developing, create a new branch, commit to git, create a PR and boom, next. Literally 0 setup, and I feel that's how it should be, simple to get up and running for new and experienced developers alike.

Sure it may have taken me a few hours initially to setup this environment but now I can easily re-use it for other projects with minimal changes.

I think once the initial developers are up and running, they do not care. It's working no issue for them, the new guy is on his own, 'it works'. It's really a concern and should be an area of focus for teams especially.

Perhaps onboarding new developers isn't a main pain point or isn't a concern but it really is when your the new guy on the team or if you are already on the team, you have to spend your time helping the new guys setup his environment.

I guess it's one of those things that are overlooked and should be taken more seriously. #youhaveagoodpoint

fylzero's avatar

@roborobok I really enjoyed TechLead's video about this recently, that shares a lot of this sentiment... https://www.youtube.com/watch?v=DYLSkySSF0I

I've worked on many teams... developers are a weird bunch. We all get married to what works for us at the time. We also have to deal with scale and being human. It is a lot to deal with. Especially when we see others doing things we know could be done better... and even suggesting change usually means we have to deal with "how people are going to take things?"... will my suggestions be met with a big ego / defensive response?

When I usually have a good argument for something at work... I make note of it and hold off mentioning it until I can sit with the idea, take my time to ask the right questions and make sure what I suggest has concrete value and that I can defend it thoroughly. That said, if you KNOW something isn't right... suggest a way to change it and stick to your guns. You just need to be cautious and know the climate of your company, your boss and your co-workers. In general, I believe if you are trying to add value and your heart is in the right place that people will listen to you.

I once worked with this Russian kid, I'm in Chicago, IL USA btw, and he REALLY knew his stuff. He worked at my company for about 2 weeks and one of our designers messed up a printing project and was making excuses and blaming the printer and all of this... the Russian kid interrupts the designer and says, "the problem is not with printer... the problem is with you. Learn your job and not make excuse." He didn't say it with anger or even really much condescension. He was explicit, blunt and very matter of fact. Ice cold and professional. That experience really opened my eyes to how much co-workers hold back from each other and how much benefit exists in being completely honest with people. Especially people you work with.

If your deployment process is horrible at work. Have a meeting with your boss and explain that you'd like to work with him to get buy-in from the team to change the process to be more efficient and hopefully save the company time and money. If you do this, whether he agrees or not, you'll look like a leader.

One last thing, be sure you know what you're talking about and ASK QUESTIONS. There may be some good reason why they are doing what they're doing. Usually developer pain is caused by scale. Growing a project to scale with demand creates all kinds of hidden issues that require creative work arounds. Doesn't mean there is one in your case... but I urge you to ask questions first, make suggestions only after you know the whole story.

Good luck!

24 likes
siangboon's avatar

if you already "work for a company" meant that you are part of the company, please think from point of your company unless you are leaving very soon (even leaving also it's better don't talk bad thing about your previous company). if the situation is bad then just try your best to turn it to good. this is also the best opportunity to show off your talents since you know it so well, prove to them what are the problems and what are the solutions as well....

All the Best!

RoboRobok's avatar

@braunson @fylzero @siangboon thank you guys for these responses. To be clear, my point is not to blame anybody in the company or the company itself. My point is to understand.

I believe each developer has his or her own priorities. My priority has always been the feel-good of my creations and human factor. When I work on the tools, I want them to be smooth and fun to use. When I set up a server, I want it to be as little hassle as possible. But I know these are not everyone's priorities, some developers prioritize security, modularity etc.

Still, I am truly fascinated about these 20 minutes. So in order to start work, we need to run two Terminal commands. The first one is to build the environment and that one takes ~15 minutes. It doesn't matter what has been built before, it always starts over. Then, we have another command to start the server, which serves the project on localhost under certain port. That's 5 minutes, but to run it, we need the previous one to be done. So basically, we need to follow until that first one is done, because there is no indicator when it's done. Both of these commands need to be left in the background. As soon as I stop any of those or close my Terminal, entire procedure must start over.

I sometimes feel like I'm in a wrong industry, because it really makes me confused that the workflows are being neglected. I thought the entire point of this industry (and any other) is to make money. If I cannot do anything for 20 minutes, they waste their money on me waiting. Also, computers are supposedly freakin' power machines these days, yet building a relatively simple website and its server takes 20 minutes. Something is off here.

I assume that people setting up the servers are experts and they know what they are doing. I was never too interested in that area. I can do some basic setups, but in general I find it rather a must than something I enjoy doing. There are hundreds of magical things going on with the setups and I think: wow, these guys know what they are doing. Then I find out that quirky workflow and the fact that it takes forever to build. I'm really, really confused.

fylzero's avatar

@roborobok Keep in mind the company goals may just have this type of tech debt at a lower priority right now. Ask the team, "why is this set up this way?". If you are satisfied with the answer, great. If not, come up with a better answer then present it to the team.

24 likes
RoboRobok's avatar

the company goals may just have this type of tech debt at a lower priority right now

It kinda agrees to the headline of my topic, doesn't it?

I also found out that every change makes it necessary to wait 25 seconds for the project to rebuild. I don't know - if you ask me, if I was about to prepare working environment for the people I pay, I would make sure it's as fast as possible. Slow refresh times really drive me crazy, it's virtually impossible to work efficiently when you need to progressively test a few things one by one. Such a waste of time and energy.

bugsysha's avatar

Even the companies that say that they want TDD do not want to give you time to do the TDD. They want you to do TDD in time that is usually being done without TDD. Like someone wrote here, since you can notice those bad implementations (maybe you are the only one that notices them) fix them and prove that you are worth money they are paying you or even more. Prove them wrong.

fylzero's avatar

@roborobok I mean, there is definitely a difference between "not caring" and having higher business priorities. If your company is chasing clients and trying to stay alive, implementing a new feature to win over customers to be able to afford breathing room to improve process is a very real struggle. If that is the case, I'm sure the business owner could just as easily argue that you "don't care" about the company staying afloat or even having a job by that standard.

You work for your company, I don't... if your gut tells you they don't care... maybe they don't care.

I, myself, only work with people who care. If I was in your shoes, I'd find a different gig. Especially if my valid concerns were not being listened to.

24 likes
RoboRobok's avatar

@bugsysha I don't judge any code here - I'm saying that it takes lots of time. Others don't agree? They don't have sense of time or what?

Also, how do you imagine "fixing" it, being a new person in the project? This builds entire project that has been in development for a few years, it's not possible for a new person to digest it. And again, that's what I mean. The complexity. Does it need to be like that?

@fylzero can you confirm, from your experience, that 25s of refreshing and 20 minutes of building means that it's poorly optimized?

bugsysha's avatar

They don't have sense of time or what?

Some people don't have it or they use that time to multitask. I'm probably more like you where I get lost if I try to multitask so it would bother me also.

Also, how do you imagine "fixing" it, being a new person in the project?

When ever I join new company I first try to fix what bothers me. I've worked for companies that even endorse that since they say go around and thinker since you will probably notice something weird that is usual/normal to us.

it's not possible for a new person to digest it

It is. You try and present solution. They review it. If everyone agrees that it improved things then it is applied to workflow/code. If not, you've tried. But if you succeed you will be their hero and they will thank you for that. Definitely easiest way for you to get a great start and for colleagues to accept you and ask you for opinions. I would not miss that opportunity.

RoboRobok's avatar

I would seriously love to see you analyzing the bulding script that takes 20 minutes and installs like thousand pieces of crap when you join a new project :)

I'm fine with multitasking. But you throw some statements that have no coverage in reality. How many times do you save and refresh when working on a task? And how do you switch to another task every single save, plus you switch where? Another task requires compiling as well. It makes no sense.

bugsysha's avatar

Don't get offended since you probably know better about that than I can assume from what I've read.

I would seriously love to see you analyzing the bulding script that takes 20 minutes and installs like thousand pieces of crap when you join a new project :)

I usually remove all and add item by item.

How many times do you save and refresh when working on a task? And how do you switch to another task every single save, plus you switch where?

I'm not saying that you should do that. I said that it would bother me also.

RoboRobok's avatar

I'm pretty sure we are talking about different scales here. Doing what you are saying to that build script would take probably weeks of investogation. Nobody will pay for that, unless you do it in your free time (and it will still take weeks and weeks). It's not as simple as Composer and a few node packages. That doesn't take 20 minutes. Their frontend is actually React and the backend is Python.

bugsysha's avatar

I've worked for a company where I had two weeks to do that so don't know what to say except that you are wrong that no one would pay for that kind of stuff.

RoboRobok's avatar

I still don't understand where that entire "make it simple" spirit went away. I'm not gonna lie: modern web apps overwhelm me. They are not that complex as far as the end product is concerned, but the development process is a nightmare. I feel like it's 10x more complex than it should be. I feel like people blindly follow certain paths just to make it as they think they should, ending up using dozens of packages and layers that are not necessary. Web apps should not compile for 20 minutes, period. I can't imagine such a huge web app that would require compilation time like this, leave alone the fact that the ones I worked at were not even that big.

Waiting makes me mad, I really hate when my creative process is interrupted by any process that makes me wait. And all of the sudden, it's "normal". Kill me, please.

Please or to participate in this conversation.