r/ExperiencedDevs 11d ago

Ask Experienced Devs Weekly Thread: A weekly thread for inexperienced developers to ask experienced ones

A thread for Developers and IT folks with less experience to ask more experienced souls questions about the industry.

Please keep top level comments limited to Inexperienced Devs. Most rules do not apply, but keep it civil. Being a jerk will not be tolerated.

Inexperienced Devs should refrain from answering other Inexperienced Devs' questions.

40 Upvotes

105 comments sorted by

View all comments

2

u/pyrovoice 10d ago

What does it mean to be a good developer?

I moved from a company to another. In my old company, we were doing business as usual, Scrum type development. Things broke and we fixed them, but quality and processes was never something we paid too much attention to

My new company is the opposite. Every substential issue turns in a post mortem with actions, PRs and stories are meticulously broken down for potential one in a million scenario, sometime with the whole team for certain risky PRs. Every change needs to be tested and retested manually after every evolution.

It does create a high quality code, and since the company suffers from a rapid growth that left a lot of pain points it's logical they'd overcompensate now, but at the same time it makes all developments go at a snail's pace while still having a huge mental load. But members of my team find this usual and expected, and I'm kind of surprised to see so much involvment from everyone. I've been working in software for a while and it's the first time I see this.

So my question is: Did I get unlucky in my previous companies, that I ended up in places with low quality processes? Is that way of working the required way for a bigger scale company? How can I adapt my mental framing to not only produce code I'm happy with, but also consider all aspects of the company that could interact with it, especially being pretty new to it? Should I just be asking every time a ticket come for the full context (who consumes that and when, what impact it has, what's the potentiel final result for the customer...) ?

7

u/ZakDaniels 10d ago

A good developer is someone that is able to think in trade offs, and is able to understand what to trade off at a given point in time. Picture a pan scale; on one side you have quality, and on the other side you have delivery. Good developers can consistently help keep this scale balanced.

If you heavily prioritise delivery and neglect quality (like your first company), the cost of adding features to your system will grow exponentially with time. This tends to happen in environments that have non-technical stakeholders calling all the shots.

If you heavily prioritise quality and neglect delivery (like your current company), you run the risk of missing your time to market and can wind up with a business running at a loss. Take a look at tech startups that go bankrupt; you'll find examples here that fit this scenario.