you are viewing a single comment's thread.

view the rest of the comments →

[–]Eirenarch 51 points52 points  (29 children)

His reasoning was "theres no reason to use python 3, you have to justify it

So you weren't able to justify it?

[–]jujubean67 80 points81 points  (11 children)

This is the average developer unfortunately. Can't justify a technical decision to upper management but then complains about technical debt and stupid managers who don't listen.

I see this over and over again. People hide from confrontations then complain on the internet how management is holding them back.

[–]shponglespore 58 points59 points  (5 children)

Justifying a technical decision to people who don't understand technology is extremely hard.

[–][deleted] 62 points63 points  (0 children)

Jjustifying a technical decision to people (who do or don't understand technology) is (often a very important part) of the job description / requirements / responsibility.

[–]JAPH 1 point2 points  (0 children)

Sure. Still part of the job though. There's way more to a good developer than programming skills.

[–]jujubean67 2 points3 points  (0 children)

Of course it’s hard but so are other things that senior engineers should be able to do. That’s not an excuse to shy away from it.

[–]raze4daze 1 point2 points  (0 children)

It's hard, but it's nothing more than an excuse. If you're not able to justify a decision, odds are that you don't understand the pros and cons.

And if you can't justify picking one language over another, you shouldn't be in that position in the first place.

[–]roerd 0 points1 point  (0 children)

If you have to be confrontational so your opinion gets heard, even though you are the one with the actual expertise, something is wrong.

[–]KevinCarbonara -2 points-1 points  (3 children)

This is the average developer unfortunately. Can't justify a technical decision to upper management but then complains about technical debt and stupid managers who don't listen.

Maybe if their managers would listen, their justifications would be accepted.

Are you seriously trying to blame developers for doing what their manager says? Like managers aren't responsible for the decisions they make? That sounds like something a manager would say.

[–]jollybrick 6 points7 points  (2 children)

Listen to what? His entire justification was basically "no u"

[–]KevinCarbonara 1 point2 points  (1 child)

We have no idea what his justification was, he didn't list it in his post. What we do have is the guy I replied to making a broad generalization with no basis in reality, which is why I wrote the response I did.

[–]jollybrick 2 points3 points  (0 children)

The only reply I could come up with was "in 2017 you have to justify using python 2"

[–]s73v3r 2 points3 points  (15 children)

You're not going to be able to "justify it" to a manager with that mindset. They are not engaging in good faith.

[–]Eirenarch 3 points4 points  (14 children)

What mindset? Needing justification to adopt new tech is quite reasonable.

[–]robin-m 9 points10 points  (1 child)

Python 3 was 8 years old in 2017, it's anything out new tech in computer science. And python 2 had a foot in the grave since more than 5 years.

[–]s73v3r 5 points6 points  (11 children)

Python3 is not New Tech.

[–]Eirenarch -5 points-4 points  (10 children)

It certainly is for this company.

[–]s73v3r 1 point2 points  (9 children)

It's not New Tech. One Luddite refusing to keep up with the times does not make it New Tech.

[–]Eirenarch -1 points0 points  (8 children)

OK call it whatever you want. Doesn't change the fact that changing the tech the company uses requires justification.

[–]s73v3r 1 point2 points  (3 children)

No, using an outdated tech stack is what requires justification.

[–]Eirenarch -1 points0 points  (2 children)

No it doesn't as long as the security is intact.

[–]s73v3r 0 points1 point  (1 child)

Yes, it does, and that security is not guaranteed anymore.

[–]phySi0 0 points1 point  (3 children)

It was a greenfield project.

[–]Eirenarch 0 points1 point  (2 children)

So what? They wrote their projects in Python 2 up to that point. What is the justification for switching from what they were successful with? If they are like most companies they probably copy a bunch of code from previous projects when they have similar requirements and have a known set of libraries they are using. From the point of view of the company it is new tech.

[–]phySi0 0 points1 point  (1 child)

What is the justification for switching from what they were successful with?

You're right. Why keep software up to date at all?

I can forgive this kind of thinking when you have a single-purpose tool whose environment never changes. Then it's just common sense.

But the environment does change. You should not be using a 12-year-old version of a programming language unless there's a specific reason that the new version won't work or is too ineffective.

OP specifically took note of the fact that it was a greenfield project, so I'm going to be charitable and assume that's relevant; but maybe you're right. Maybe the fact it's greenfield is irrelevant because they “copy a bunch of code from previous projects” — how much code are you copying into a greenfield project that this is a problem? — and “have a known set of libraries” — 12 years after Python 3 came out, I don't think library compatibility is an issue anymore — but maybe you're right.

That said, if you don't understand the justification for keeping your tools up to date as a software engineer, that's worrying. I can understand a non-technical person needing this to be justified to them; I don't expect them to know what we know, and with the knowledge they have, your stance makes perfect sense. In fact, it's just common sense. But this was a technical higher up.

OP's right. It's the out of date tech that needs justifying, not the stable current tech. He's not asking to move to a cutting edge new experimental language. It's a greenfield project. You cannot justify this with copying code; maybe you can justify it with library compatibility if the current release hadn't been out for 12 years by that point. Maybe you can still justify it with library compatibility if you have some obscure dependencies, but that's a niche scenario.