January 31, 2017

Happy new year and welcome to 2017! In this update, I’ll take the opportunity to look at how the FreeBSD Foundation identifies, reviews, and chooses projects to be undertaken by paid development staff and by recipients of project development grants.

The Foundation chooses projects based on a variety of factors, but one common theme is that we try to identify gaps in work taken on by FreeBSD committers, contributors, and developers employed by companies building products on top of FreeBSD. Our goal is never to supplant development that is already happening in the community, but to augment and complement it. For staff development, we will take on projects that are of broad interest, but require too much effort for individual contributors to justify. We also act as a liaison, coordinating shared effort from multiple parties with a common goal of improving FreeBSD in some manner.

Project Ideas

Where do project ideas come from? For development grants, project ideas often come directly from the developer making the proposal. FreeBSD committers and contributors are well positioned to understand where FreeBSD is lacking, and will bring proposals to the Foundation when an opportunity for a period of funded development presents itself. Details on the project proposal process can be found here

We collect project ideas from meetings at conferences, and especially the developer summits co-located with the major BSD conferences. These bring together developers and companies with shared interests and are a very effective way of identifying gaps in FreeBSD’s current features and roadmap. We also monitor and participate in the FreeBSD mailing lists and forums to find reports and discussion of gaps.

Project Selection

The Foundation’s project committee oversees the project selection process, and takes input from the Foundation’s staff and board members, the FreeBSD core team, and from developers with knowledge and experience in specific areas.

The project committee evaluates proposals to ensure that:

  • The project will provide a valuable improvement to the FreeBSD project.
  • The project will benefit a reasonable portion of the FreeBSD community.
  • The developer is qualified to perform the work, and has the resources needed to complete the project within the stated time and constraints.

Project Development Process

After a project is selected and while it is underway, the Foundation monitors the work from a technical and administrative perspective. Certain projects involve changes outside of the area of expertise of the Foundation’s staff, and in these cases, we make use of an external technical monitor to ensure that the project meets FreeBSD’s standards.

One advantage of having full-time technical staff employed by the Foundation is that we can undertake work that does not neatly fit into the model of a well-defined, constrained project. This allows us to support ongoing bug fixing, maintenance, and operational tasks like release engineering, testing and validation.

– Contributed by Ed Maste, Director of Project Development