Hacker News new | ask | show | jobs
by jms_ 5115 days ago
That's a terrible attitude to encourage. Accepting the status-quo as a junior is a great way to encourage them to never improve or question the more debatable practices.

Teaching juniors to care about software quality and software maintainability is hugely important in order to encourage an overall improvement within the software dev industry.

4 comments

When I was junior I really thought that everything can be fixed.

As I've gained more experience I've realized that maintaining a code base is like any relationship with conflict -- you have to pick your battles carefully or everything turns into a fight / falls apart.

But at what cost? Yes, overall improvement in the software development industry is great, but it's certainly not worth adding to burdens of this particular overworked software engineer. He or she has enough trouble dealing with the situation as it is, without inviting additional conflict with management.
The point I was trying to highlight is that time spent on wading through the current situation is time not spent thinking critically about the inherent problems of said situation.

I'm not saying to down tools and get on the war path with management, but to rather try to balance accepting whatever you are told and never coming up for air, versus sitting back for a time to analyse the situation and identify potential improvements.

Ultimately it comes down to the individual, and whether they want to be a cog in the wheel, or whether they are interested in both improving themselves and thereby improving their employer.

>>Ultimately it comes down to the individual, and whether they want to be a cog in the wheel, or whether they are interested in both improving themselves and thereby improving their employer.

Yes this is important, but I think if your employer is in mood to listen. The next immediate step for you must be to start fishing for a job outside. And there is a reason for that. Your time is worth doing something important which is rewarding to you and your employer(I mean both in terms of value and financially).

Challenge the status quo and try to improve things, if you absolutely cannot(for reasons beyond your control) you must leave people to their state and move on.

Yes, but a junior developer's role in any company regardless of size is most definitely not to come in and say how they could do it better and the company should change their workflow.
I totally agree, but the value that a junior developer can bring to the table is a pair of unbiased eyes. It's what I look for when new developers join any existing team I am on: what can they see that we can't.

At some point in the growth of a human being, we are discouraged from continually asking "Why?" and from questioning things we see. This is largely a bad idea, so showing junior devs that they are in a position to ask questions and help lead everyone to a better solution is great!

> It's what I look for when new developers join any existing team I am on: what can they see that we can't.

Based on my experience, it would be unrealistic for a junior developer to expect this perspective at a new job. More realistic: here are the things that need to be done for this business to survive; please do them. Maybe some leeway in how you approach the problem. If they wanted unbiased eyes, the job listing would have said consultant, not junior developer.

Believe me, I hear what you're saying. I've tried it many times. For instance: "You don't check everything into source control? Oh my god, it's so basic, look how much better you guys could be doing your jobs!" Which, yeah, it would have been better. It also annoyed the people around me and destabilized the team, even as it improved the technology. Net loss for the company.

Having made this mistake over and over, I want to help others avoid it. Junior developers, know that if you find success in your job, your most important contributions to the company will not have been code. You will not bring some great insight to the table that makes everything faster/better/cheaper and wins you everyone's respect. You earn respect and admiration by working hard (not smart, hard!) and helping the people around you. Look up from your text editor, go talk to people, find out what they're doing, help them succeed.

That's where your focus should be as a junior. (Or as a senior, for that matter.) Helping others succeed. Questioning the status quo is a distraction and not as useful as you think, even if you're right and everyone else is wrong. Maybe especially if you're right.

Also realize that junior devs often lack the experience needed to distinguish good code from bad and when it Is appropriate to rewrite large parts of an existing application that currently meets the needs of its customers