Everyone does program administration. Some simply do it poorly.
I’ve used that line for fun at first of talks, nevertheless it’s true. Program administration is, at its core, the act of coordinating the interfaces between groups to supply one thing of worth. In open supply initiatives, the “something of value” is mostly the software program that the group produces. Most open supply communities create software program, and nearly none of them have a proper program supervisor. So why have a program supervisor?
The distinction lies in managing the software program improvement with intent as an alternative of by chance. The smaller the group, the better it’s to self-coordinate. The want for intentional coordination will increase because the group grows or the software program turns into extra complicated.
In The Mythical Man Month, Fred Brooks famous that the variety of communication channels goes up dramatically sooner than the variety of folks engaged on a mission. A program supervisor may help simplify the communication overhead by serving as a centralized channel for data. By lurking on mailing lists and chat channels, this system supervisor sees what is going on on within the mission and communicates that broadly to the group and the general public. This manner, anybody who must know the high-level particulars can have a look at this system supervisor’s abstract as an alternative of taking note of each channel themselves.
A great program supervisor additionally acts as a information in course of improvement and enchancment. Think of processes like trails. They develop organically over time as folks discover the perfect route from one place to a different. A well-worn path makes for a sooner, extra predictable journey. But if everybody has their very own variations on the route, the path will not be well-worn. The program supervisor’s job is not to blaze a path and say, “This is the way everyone must go!” Instead, this system supervisor seems to be for the locations the place the person paths are related and helps the group discover an optimum path to share. So a program supervisor would not say, “This is the process we must follow to develop our software.” That would not work effectively in an open supply mission. Instead, this system supervisor helps outline a repeatable and predictable course of primarily based on what the group is already doing.
Many actions contact program administration, even when they’re dealt with primarily by different features in the neighborhood. Examples embrace schedule improvement, function planning, bug triage, launch choices, and extra. With such a variety of abilities, you may be hard-pressed to seek out one one that will be nice in any respect of these. And even when you discovered such an individual, they may not have sufficient time to dedicate to doing all the things. It’s okay to separate the work amongst a number of contributors as long as everybody clearly understands their tasks.
Ultimately, this system supervisor’s job is to assist the group keep away from surprises. They do that by speaking standing throughout groups and making certain everybody is aware of what is required—and when—to supply one other nice launch. By necessity, you are doing this already, so that you would possibly as effectively do it on goal.
This article relies on the writer’s ebook, Program Management for Open Source Projects.