4 ms·
I think you hit the nail on the head here. I am a lot more understanding at this later stage in my career when someone shows me a big ball off spaghetti in a p
by bbarn 4y ago
I think you hit the nail on the head here. I am a lot more understanding at this later stage in my career when someone shows me a big ball off spaghetti in a project. I don't know why decisions were made, what trade offs for time or requirements were made in the past, what designs might have made sense that got turned upside down with new features, etc. I tend to shut down sentiments like "This all needs rewriting" or "What on earth was this person thinking" as much as I can.
Most of us are decent enough at our jobs, and generally the industry does a good job of weeding out those who can't perform or they end up lost and irrelevant in some big company. There are certainly some bad developers out there, but there's bad doctors, bad lawyers, etc. in the real world too.
That said, the impact a bad manager can have is definitely of a greater magnitude than a bad engineer, generally speaking.
- agentultra 4y agoHard agree. It annoys me that this has the air of a “hot take,” but I don’t believe anyone wakes up in the morning and thinks, “I’m going to write overly clever spaghetti code today and do as bad a job I can.” People are generally good and want to do a good job and be recognized by their peers. Different people have different strengths and skills. It’s the sum of those things that makes a team. Alone we could do some of the things we want to achieve but it’s together that we can make it happen.
- dasil003 4y agoWhat I’ve noticed over the decades is that performance on large teams is largely a function of systemic behaviors and culture. The larger the “team” (ie. everyone you have to interact with to get something built), the less any one individual’s performance matters. In particular I’ve seen situations where every single person is working hard doing their job in a defensible way, but the code base is heading towards a cliff because no one has the incentive and/or skill set to point out that the short term decisions made on either side of the engineering /product divide are steadily inching us towards a state where the code base will be too complex to add a feature or fix a bug without creating more bugs. Ultimately this type of problem has to be owned by management with support all the way up the chain in order to be solved. That doesn’t mean ICs and PMs don’t have a role in the solution, but this is why engineering management is hard and requires technical depth.
- pdimitar 4y ago> I don’t believe anyone wakes up in the morning and thinks, “I’m going to write overly clever spaghetti code today and do as bad a job I can.” Tearing down a straw man is not an impressive feat. The inconvenient truth is that a lot of programmers are just not that good. They lack the self-awareness, insight and experience to look into the near future and realize they're contributing to the problem. I was there too. Facepalmed really hard after I realized it years down the line.
- agentultra 4y ago> Tearing down a straw man is not an impressive feat. Neither is being cynical. Everyone is at a different point in their life and has different skills and has the potential to do good work. I don't know what problem you're referring to. Maybe you could enlighten us and tell us what it is about self awareness, insight, and experience and gazing into crystal balls that make developers, "good."
- pdimitar 4y agoYou said that people don't write spaghetti on purpose. And I said that lacking in certain qualities makes people write spaghetti code unwillingly and without realizing it.
- agentultra 4y agoIf you don’t realize you’re writing spaghetti code how could you do it on purpose? Most people don’t write spaghetti code on purpose. They’re trying to solve a problem with the skills and knowledge they have in the only way they can. You seem to attribute spaghetti code to a personal failure to have characteristics you think are essential. How’s anyone supposed to live up to that? I have a different theory. I think that it’s a combination of things which cause spaghetti code. I agree with others here that poor management is a strong factor. Also poor communication, time pressures, vague specifications, insufficient proof or testing, a lack of documentation, family emergencies, lack of motivation, general anxiety, social dysfunctions on the team, and so on. Everyone I’ve worked with usually had something going on for them. Even if they were just starting out or changing careers or had been at it a while but felt like they weren’t getting anywhere. The bad developers, to me, were the ones who brought others down when they could have raised them up.
- pojzon 4y ago> People are generally good and want to do a good job and be recognized by their peers. I completely agree with you. Thing is - not everyone can do that. Thats why top companies hire best talent and not anyone who applied. Thats why there is a canyon size difference in compensation between one “expert” engineer and another EXPERT engineer. It sounds like elitism, thats just how it is.