DEV Community

Discussion on: What Are Your Thoughts on Self-Comparison?

Collapse
mjuraj profile image
Juraj Malenica

Imagine that you were the CEO of some company. There is a problem and your best senior and an intern come to 2 different solutions. You hear them out both... Fine.

Now imagine you had to do it 50 times a day, this would take much of your time and it would be ineffective because the senior would probably have a better solution 99% of the time.

The senior has authority over the intern. It's nothing personal, it's just that those years and years of experience make a difference. And in the finite amount of time we have, we can't treat everyone the same.

If we did, when you go to the doctor, you would listen to janitor's advice as well.

Collapse
guitarino profile image
Kirill Shestakov

I would listen to janitor's advice if it was his area of expertise. This is a different case because doctors and janitors have different area of expertise, whereas we're talking about the same area between the coworkers.

What you said about the CEO is correct. Every single company is structured hierarchically, where the authority of action usually belongs to someone above in the chain. And developers on the bottom are treated almost like code monkeys who just code but don't think or design. This is the worst kind of system and results in terrible and unmaintainable code that would eventually lead to the company's demise. That's why we have Agile, a system where management and programming are well separated from each other, where management is responsible for requirements, and developers are fully responsible for design and implementation. Any hierarchy among the developers should not exist in practice, and the ideas should be accepted as long as code is readable and maintainable. Discussions, disagreements and suggestions should be done in a friendly manner, without the use of hierarchy power. When you point out someone's flaw in the code, or give a suggestion, it should be a learning experience, where everyone (no matter how senior) is learning from everyone, as opposed to a strict hierarchy rule that often succumbs to personal preference over reason or maintainability.

Thread Thread
mjuraj profile image
Juraj Malenica

Pointing out flaws should always be incouraged. Discussions, disagreements and suggestions aswell.

I don't agree about having code monkeys to do no-brain work. There are certainly companies that have that, but I'm against it.

I'd like mention that for more inexperienced people it would be a good practice to first speak with seniors and others, since they probably understand the context of the situation better, and basically anyone else that could shine new information.

I just wanted to point out that there is authority that is derived from expertize, since it wasn't that clear in your opening comment.

Thread Thread
guitarino profile image
Kirill Shestakov

That's not controversial, but authority of "senior VS junior" often does not correspond to "expert VS non-expert". Seniors are often seniors because they just got stuck with the same company for a long time, or because, even worse, they wrote code that nobody except for them can maintain. That's why the development process should never be structured hierarchically, as it will kill fresh ideas and make bright developers suffer. There is, of course, a great learning opportunity if less experienced people choose to learn from more experienced, but don't forget, the best mentors are open-minded and are also willing to learn from fresh ideas. Learning should always be a 2-way process.

Thread Thread
mjuraj profile image
Juraj Malenica

For me the senior/junior & expert/non-expert correspondence was clear, so thank you for pointing out that it may not be clear to other people.

With the rest I guess I can only agree