Understanding Software by Max Kanat-Alexander
Author:Max Kanat-Alexander
Language: eng
Format: epub, azw3
Publisher: Packt Publishing
1. Don't freeze the trunk for long periods
The Bugzilla Project has a fairly-standard system of having stable branches that receive little change (for example, the "3.4" branch where we commit bug fixes and do minor releases like 3.4.1, 3.4.2, etc.), and a main-line "trunk" repository where all new features go, and which eventually becomes our next major release.
In the past, before a major release, we would "freeze" the trunk. This meant that no new features could be developed for several weeks or months until we felt that trunk was stable enough to call a "release candidate." Then we would create a new stable branch from the trunk and re-open the main-line trunk for features. However, while trunk was frozen, there was no feature development happening anywhere in the Bugzilla Project.
Graph analysis showed very clearly that every time we would freeze, the community would shrink drastically and it would take several months after we un-froze for the size of the community to recover. It happened uniformly, every single time we would freeze, over many years and many releases.
Traditional wisdom in open-source is that people like to work on features and don't like to fix bugs. I wouldn't say that that's exactly true, but I would say that if you only let people fix bugs, then most of them won't stay around.
We addressed this issue by never freezing the trunk. Instead, we branch immediately at the point that we normally would have "frozen" the trunk. The trunk always stays open for new feature development.
Yes, this means that for a while, our attention becomes split between the trunk and the latest branch. We're committing the same bug fixes to the branch and the trunk. We are also doing feature development on the trunk simultaneously with those bug fixes. However, we've found that not only does the community expand more rapidly this way, but we also actually get our releases out more quickly than we used to. So it's a win-win situation.
Download
Understanding Software by Max Kanat-Alexander.azw3
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Deep Learning with Python by François Chollet(12577)
Hello! Python by Anthony Briggs(9916)
OCA Java SE 8 Programmer I Certification Guide by Mala Gupta(9796)
The Mikado Method by Ola Ellnestam Daniel Brolund(9779)
Dependency Injection in .NET by Mark Seemann(9340)
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8301)
Test-Driven iOS Development with Swift 4 by Dominik Hauser(7763)
Grails in Action by Glen Smith Peter Ledbrook(7697)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7557)
Becoming a Dynamics 365 Finance and Supply Chain Solution Architect by Brent Dawson(7091)
Microservices with Go by Alexander Shuiskov(6859)
Practical Design Patterns for Java Developers by Miroslav Wengner(6777)
Test Automation Engineering Handbook by Manikandan Sambamurthy(6718)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(6419)
Angular Projects - Third Edition by Aristeidis Bampakos(6129)
The Art of Crafting User Stories by The Art of Crafting User Stories(5652)
NetSuite for Consultants - Second Edition by Peter Ries(5586)
Demystifying Cryptography with OpenSSL 3.0 by Alexei Khlebnikov(5392)
Kotlin in Action by Dmitry Jemerov(5066)
