![]() ![]() Data being moved from one version to another must be migrated, rather than updated in place. Con: Any upgrade between major versions is effectively a complete replatforming.Legacy code can be removed, and contributor time is preserved for new features rather focused on compatibility. Pro: The project can adopt the latest technical standards and innovations, rewriting the technology with all the lessons learned from years of experience with the prior version. ![]() Projects can choose to focus on the latest architectural innovations and best practices, at the expense of total incompatibility between major versions.Con: Maintaining backwards compatibility at this extreme can lead to a lot of codebase cruft, result in a confusing array of APIs that perform the same function, and prevent adoption of new best practices or technologies.For more advanced users or engineering teams managing larger scale deployments, this ethos can make the task of staying up to date less daunting. Pro: This extreme focus on backwards compatibility is very friendly to beginner users.WordPress for example, “strives to never break backwards compatibility” with the goal that it is “ very easy for users to be able to update without worrying.” Projects can opt to prioritize backwards compatibility as a primary focus. ![]() There have been two schools of thought about managing large-scale software projects across many years of development and new major versions: Let’s look at how the Drupal project has addressed the concerns of these beginner and intermediate users, and then look at the fundamental features that make the learning curve worthwhile to users at the expert level.Įven if this exploration doesn’t convince you to use Drupal for your next web development project, the lessons in managing a mature open source project should be valuable to contributors in any open source community.
0 Comments
Leave a Reply. |