Earlier quoted context omitted.
Sorry to disappoint. But despite the rare exception here and there most open source development is either paid or quickly forgotten. If I put into google "Linus Torvalds income" the first sentence reads: "Finnish-American software engineer and hacker Linus Torvalds has as estimated net worth of $150 million and an estimated annual salary of $10 million" Money.
The man's name is "Linus" and outliers aren't good examples. Also, he has mostly been merging other people's work for quite some time. CPython for example is mostly developed for free.
How terrible code gets written by sane people
91–100 of 151 posts
Re: How terrible code gets written by sane people
#92It feels like people are focusing on bad conditions and unreasonable deadlines, and not the idea that in the real world smart people under execellent conditions do this very, very frequently. I've worked for long periods of time in 3 codebases that were over 2 million loc in my career, all had great conditions, all had very smart people. Those are not huge codebases by any standard, and yet all 3 had people talking a…
I've worked on teams that kept the code base clean for years. We did it by focusing hard on just that. Ruthless refactoring, zero bug tolerance, and no deadlines are maybe the biggest factors.
I'm going to admit what conclusions I jumped to reading this. I'm admitting my bias, and that I might be wrong, not arguing with you or challenging your experience.
My (biased possibly wrong) instinct is to wonder to what degree that was a real world situation. What I mean is that the only times I've had no deadlines and the ability to ruthlessly refactor are the times I've had no managers and no customers. I can see that being easy to pull off in school projects, and on research teams, and in free open source projects, but I have a hard time seeing (and haven't personally witnessed) how that works long term in a healthy functioning business that has revenue where the code is directly related to the product. There are stories of places where this stuff happens, but often you can find people who were there saying the stories are exaggerated or lacking the proper context.
So anyway -- any context you want to share that might make it easier to be ruthless and keep code clean under less ideal conditions than yours? Thoughts about how to do it when there are deadlines, since most people (I speculate) do have deadlines?
Re: How terrible code gets written by sane people
#93Earlier quoted context omitted.
I think a lot of what you are saying makes sense, but also at some age and family status (kids in schools etc) moving doesn't make sense any more, or has more downsides than one is trying to avoid. Obviously one could have thought of this before marrying and putting kids in school in the town with one tech firm - but that doesn't make it any less a reality for a lot of people. Saying "kids we have to move because dad…
> Obviously one could have thought of this before marrying and putting kids in school in the town with one tech firm this was going to be my response, but then you said it yourself :) The more intelligent and self-responsible act (which is hard, i know) would be to move to a better place before making extremely serious life choices such as marrying and having kids. same goes for partner finding - don't marry a crazy…
aspect b) is that company environments change, and the fun startup can become a terrible enterprise in a decade.
I wouldn't advise against working in tech in small towns because of the risk of getting stuck in the only gig in town. I would however advise that it be factored into that career decision. One might need to fight to improve company culture, whereas in Silicon Valley one would instead take a job across the street. I'd also recommend keeping an active contact network and online profile so you can get remote work should it be necessary.
Re: How terrible code gets written by sane people
#94Earlier quoted context omitted.
I mostly agree with your top line. Code "beauty" and "quality" are not objective measures, and there are plenty of devs out there who are obsessed with their own interpretation of those ideals to the point that it inhibits their ability to ship. However there is an existential danger for management to embrace this philosophy. The problem is the incentives are already naturally aligned to ship today, and problems disc…
The funny thing though is that tomorrow will resolve itself by itself. If the next guy finds the code too unworkable it will get replaced or the company dies out. Either event is not really a problem. Somewhere money is found to pay the replacement, people find new jobs, new companies take up space opened by other companies dying. Everything else comes from the need to pay the bills. What does your landlord say if yo…
But as a business owner, you don't want your business to die and be replaced by someone else's business due to technical debt. Just because it's hard to quantify the cost of technical debt doesn't mean it isn't real and we should just throw up our hands in defeat.
And lest you think I'm some sort of artisanal code hipster, I spent years building freelance custom web apps in the $1k-$20k budget range, so I know how to fucking ship. Also, I've been the tech lead on a Rails monolith powering a 7-figure revenue startup for 10 years, taking it from Rails 1.2 through Rails 4.2 one version at a time.
Knowing how code rot will happen and how business logic will change is impossible to be sure about, but having some instincts can save a ton of money down the line. I've received thank you notes for architectural decisions and commit messages I wrote years ago and had long since forgotten. Not all businesses will be able to recognize that such value even exists, and the ones that don't are likely to be a shit show that will never be able to attract an upper echelon of developers.
The right attitude and experience about code quality can be a huge competitive advantage.
Re: How terrible code gets written by sane people
#95It feels like people are focusing on bad conditions and unreasonable deadlines, and not the idea that in the real world smart people under execellent conditions do this very, very frequently. I've worked for long periods of time in 3 codebases that were over 2 million loc in my career, all had great conditions, all had very smart people. Those are not huge codebases by any standard, and yet all 3 had people talking a…
I've worked on teams that kept the code base clean for years. We did it by focusing hard on just that. Ruthless refactoring, zero bug tolerance, and no deadlines are maybe the biggest factors.
I'm pretty sure that much of the code I write today will still be in use ten years from now. There's no point worrying about arbitrary deadlines; in the long run it doesn't matter if the feature was done on time or a month late. What does matter is, for example, wheter all possible error conditions are handled by my code.
Fortunately I'm in a position where I can decide not to have deadlines.
Re: How terrible code gets written by sane people
#96Earlier quoted context omitted.
The man's name is "Linus" and outliers aren't good examples. Also, he has mostly been merging other people's work for quite some time. CPython for example is mostly developed for free.
lol, it's true that most development in open source is paid. It's really easy to experience. Just work anywhere where people develop open source or make heavy use of it. But it's really hard to proof to someone who hasn't experienced it since nearly every example and statistic can be doubted. So doubt as much as you want. But if you think there's something worth learning out there, try to experience it and you'll see…
I on the other hand work on a very large open source project.
Re: How terrible code gets written by sane people
#97Earlier quoted context omitted.
I've worked on teams that kept the code base clean for years. We did it by focusing hard on just that. Ruthless refactoring, zero bug tolerance, and no deadlines are maybe the biggest factors.
This is intriguing, and I'd love to hear more context about the team, code, management, and business/product. I really want it to be true and possible in general... I'm going to admit what conclusions I jumped to reading this. I'm admitting my bias, and that I might be wrong, not arguing with you or challenging your experience. My (biased possibly wrong) instinct is to wonder to what degree that was a real world situ…
The way the experts say you can turn your environment around to that, is by explaining and showing the advantages of a deadline free process.
Your management will - not unreasonably - suspect you're just trying to work less hard. The way out of that is to build trust by constantly delivering quality software.
If this sounds hard, it probably is. I've certainly never done it. The easier way is to join a team that already works this way :)
It's also worth noting that constant refactoring towards a good design is a difficult skill that not everyone has! It takes a effort and experience to get good at it. For a group of random programmers, it may not be the best way to work.
Re: How terrible code gets written by sane people
#98"The authors created their own framework..." I cannot say this was an issue here, but I can say that some of the worst messes I have seen have followed from this decision. In all such cases in my experience, it was not a technically justifiable decision, and I strongly suspect it was driven by developer ego and overconfidence. The very worst included a roll-your-own language.
Re: How terrible code gets written by sane people
#99Earlier quoted context omitted.
I've worked on teams that kept the code base clean for years. We did it by focusing hard on just that. Ruthless refactoring, zero bug tolerance, and no deadlines are maybe the biggest factors.
Deadlines are poisson for code quality. I'm pretty sure that much of the code I write today will still be in use ten years from now. There's no point worrying about arbitrary deadlines; in the long run it doesn't matter if the feature was done on time or a month late. What does matter is, for example, wheter all possible error conditions are handled by my code. Fortunately I'm in a position where I can decide not to…