Der Begriff Maintainer (aus dem Englischen maintainer entlehnt; Instandhalter oder Betreuer[1]) bezeichnet im Bereich der Softwareentwicklung einen Hauptentwickler, der für ein Entwicklungsprojekt oder einen Teil davon Entscheidungen trifft.
Die Hauptaufgabe eines Maintainers besteht darin, über die Aufnahme von Änderungen bzw. neuem Code eines Mitwirkenden zu entscheiden. Im Gegensatz zu anderen Mitwirkenden in einem Softwareprojekt ist es für den Maintainer nicht zwingend notwendig, selbst Code zu dem Projekt beizusteuern. Viele Maintainer nehmen in Softwareprojekten eine Führungsrolle ein.[2] Ein prominentes Beispiel ist der Maintainer des Linux-Kernels, Linus Torvalds. Bei größeren Softwareprojekten kann die Rolle des „Maintainers“ auch von einer Personengruppe übernommen werden.[2] Auch die Softwarewartung kann Teil des Projekts sein.
In einem Open-Source-Projekt wird diese meist ehrenamtliche Tätigkeit von Entwicklern übernommen, die ein gutes Ansehen innerhalb der Community haben. Entscheidet der Maintainer gegen eine Änderung am Projekt, die aber von einem Teil Community unterstützt wird, kann es zu einer Abspaltung des Projekts kommen.[3] Ein Beispiel dafür ist LibreOffice, das infolge der Abspaltung zudem viele Entwickler von OpenOffice.org abgezogen und zum Rückzug Oracles aus dem Projekt geführt hat (vgl. Apache OpenOffice#Abspaltung und Projektaufteilung).
Die Stellung eines Maintainers in einem Open-Source-Projekt wird auch als sanfte Diktatur bezeichnet, da er zwar die absolute Macht über ein Projekt hat, diese aber nicht ausüben kann, wenn es keine Änderungen seitens der Community gibt.[3]
Neben den freiwilligen Maintainern gibt es auch Maintainer, die von Firmen beauftragt werden, um an einer Software mitzuarbeiten, da die Firmen mit dieser Software Geld verdienen.[4] So bezahlten 2017 beispielsweise Intel, Red Hat, Linaro, IBM, Samsung, SUSE, Google, AMD, Renesas und Mellanox Entwickler, um am Linux-Kernel mitzuarbeiten.[5]