3 ms·
Great so OSS projects also have a very large number of people coming together and collaborating. How do they stay clean? Why is there a mess in the code that ge
by scotch_bright 9y ago
Great so OSS projects also have a very large number of people coming together and collaborating. How do they stay clean? Why is there a mess in the code that gets made within companies? What do you think the difference is?
- chatmasta 9y agoYou’re making a huge generalization (all OSS is clean code, no internal projects are clean code). Ignoring that, let’s hypothesize a reason why you might find higher quality code in OSS. Perhaps it’s because company code has deadlines and pressures unrelated to the code quality, whereas OSS is solely about code quality. For company projects, the customers are the users. For OSS projects, developers are the users. Requirements for companies revolve around customers, who never see the code (other than companies building products for developers). Requirements for OSS revolve around developers who will be using the code. Given this, and the fact that OSS is a much lower pressure environment, it’s not surprising you might see cleaner code in OSS software than internal company software. tl;dr OSS focuses on code, companies focus on customers.
- scotch_bright 9y agoYes. I am simply accepting the premise given and trying to explore from there. I am aware of the generalisation. But, your answer does help us move ahead. It basically says that there is a way to produce a high quality code base. It is not impossible. The right set of circumstances seem to be: 1. No deadlines 2. Focus on code quality The "no deadlines" part I take to mean that within OSS projects there is time to refactor to perfection. There is time to design, comment, document and indent to perfection. So, your point is it is possible. But it seems like within the context of a company, it almost never happens. (Nobody has still posted here to saying that their code base is not a mess. A lot of people have now seen this.) When one thinks about that, it is just weird right? The people who get paid to make software do things that make their work un-productive. And the opposite is true for good OSS.
- chatmasta 9y agoWell, it seems like there exists a tradeoff between code quality and profits. Profits provide incentive, and therefore pressure, which manifests itself in deadlines. If we think of deadlines as time windows, then the tradeoff is really between code quality and time. Everyone knows this; rushing through projects will reduce their quality. Given all this, it should not be surprising that corporate code is “lower quality” than OSS. The authors of each are optimizing for different metrics. It’s only weird if you think companies are irrational for prioritizing deadlines over code quality.