  A sound Decision-Making (DM) process is key to the successful governance of
software projects. In many Open Source Software Development (OSSD) communities,
DM processes lie buried amongst vast amounts of publicly available data. Hidden
within this data lie the rationale for decisions that led to the evolution and
maintenance of software products. While there have been some efforts to extract
DM processes from publicly available data, the rationale behind how the
decisions are made have seldom been explored. Extracting the rationale for
these decisions can facilitate transparency (by making them known), and also
promote accountability on the part of decision-makers. This work bridges this
gap by means of a large-scale study that unearths the rationale behind
decisions from Python development email archives comprising about 1.5 million
emails. This paper makes two main contributions. First, it makes a knowledge
contribution by unearthing and presenting the rationale behind decisions made.
Second, it makes a methodological contribution by presenting a heuristics-based
rationale extraction system called Rationale Miner that employs multiple
heuristics, and follows a data-driven, bottom-up approach to infer the
rationale behind specific decisions (e.g., whether a new module is implemented
based on core developer consensus or benevolent dictator's pronouncement). Our
approach can be applied to extract rationale in other OSSD communities that
have similar governance structures.
