Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

The Inverse Relationship Between Code Quality & Adoption of Open Source

DZone's Guide to

The Inverse Relationship Between Code Quality & Adoption of Open Source

· Agile Zone
Free Resource

Discover how to build scalable and maintainable UI tests to optimize your Agile workflow. Brought to you in partnership with TestComplete by SmartBear.

I am currently working on a startup project for my own company, and this has been part of the reason for the long hiatus of this blog, as more pertinently for this post, the cause of me having to trawl through literally tens of thousands of lines of code from various open source projects which shall remain unnamed, in various languages in an attempt to avoid reinventing the wheel unless absolutely necessary.

One disturbing fact has come to my attention regarding open source projects in doing so, one that confirms observations I’ve made many years before, but never really had a firmly formed opinion on:
It seems by the time an open source project has reached some level of mass adoption or awareness, most of the time the projects codebase will have degraded into such a poor state as to where it is completely stagnant, or even worse, unmaintainable.

I’m not quite sure why this is, but I could throw out a number of theories, maybe it is:

  • Lack of discipline from core developers in enforcing good practices.
  • Demands for backwards compatibility locking in frameworks into poor, inflexible API’s, unable to refactor away poor past decitions.
  • Tendency among core developers to let in poor code contributions to appease community members.
  • Overeagerness to constantly add (sometimes unneeded) features and chase higher version numbers, rather than “sharpen the saw” and improve the core codebase and feature-set.
  • Just naturally occurring entropy over time and no one dealing with it?

I don’t have any definitive answers, but I think the problem is too big to simply ignore, as the answer may give us a good indication as to what possible actions we may take to avoid the pitfalls of degrading code quality in large, multi-developer projects in general.

If anyone has any reasonable theories, or can point me to relevant research, I would be very happy to hear about it!

Overcome the weakest link in your automated testing cycle to increase test speed and coverage. Brought to you in partnership with TestComplete by SmartBear.

Topics:

Published at DZone with permission of Wille Faler, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}