Why the pull request process could work beyond development – Coffee Talk: Java, News, Stories and Opinions – TheServerSide.com

The open source movement has changed the way we make software. The developer community always has access to publicly available code to edit and improve software quality.

A good deal of mission-critical software is open source today. The Linux operating system is probably the poster child for open source development. Kubernetes and Docker are open source too. And of course Microsoft a company that historically never met a piece of free code it didnt like has made open source strides. The entire source code for .NET the essential framework for programming in a Windows environment is open source. This includes not only the cross-platform versions of the core libraries, but also the common language runtime code, which allows developers to write .NET code is a variety of programming languages.

The pull request process plays a major role in open source software development. But how could it work outside those walls?

The value proposition for open source hinges around if a projects code is exposed to the public, it will create a community of developers interested in the code at a very detailed level. As more developers learn the details of the software, theyll ideally see opportunities to improve and add to the codebase. Some developers might contribute out of a sense of community while others do so to boost their ego. In any case, its a typical case of how a rising tide raises all boats. In the developer sense, the boats might be big-name companies such as Red Hat, Google or Amazon, which only adds to the movements viability.

While anybody can contribute to an open source project, it doesnt necessarily mean that every contribution will be a good one.

For example, as good as my Node.JS programming skills might be and on a good day they can be quite good do you really want me to have my way with the Docker engine source? First off, I dont have any real expertise with Go the language in which Docker and the Docker engine are written beyond writing a Hello World. Second, even if I could program effectively in Go, I dont have the proper understanding about the Docker engine required to make a useful contribution. But as the saying goes, give a developer a source code editor, a compiler and an internet full of documentation and the next thing you know, for better or worse, youll have code that wants to make its way into the world.

How do we make sure that all the open source code that wants to make its way into the world is actually good and production-ready? This is where the pull request process come in.

The pull request process starts when I write some code that I think has value to an open source project. Then I submit my code to the project via a pull request. A pull request is a mechanism that says to the project maintainers, hey, heres some code Ive made. Please look at it and see if it meets your quality standards and has value. If it does, please merge it to the code base.

The projects maintainers a group of experts on the projects code look at what Ive done. If the code makes the grade, it gets merged into the codebase. If not, the maintainers make comments about what I need to do to get the code into an acceptable state. I take their comments and go back to the drawing board, so to speak.

The beauty of the pull request process is that anybody can attempt to contribute to an open source project. The mechanics of the pull request provide the high degree of quality control necessary to make sure that contributions meet development standards and provide actual benefits to the project overall.

The pull request process creates a merit-based style of software development. It doesnt matter if the contributor is a high school student or owns a Ph.D. Want does matter is the quality and ingenuity of the code.

More companies now incorporate the pull request as the mechanism how new code is added to a companys codebase. The developer writes the code, creates the pull request with features that are typically built into modern source control management tools such as GitHub or Bitbucket and then awaits a response. The code gets merged or is sent back for improvement.

One nice thing about the pull request process is that when its done properly, its impersonal. All that matters is the code and the thinking behind the code. There wont be never-ending code review sessions that pick over each line of code youve written. In fact, if the corporate culture is benevolent and focuses on always helping a developer improve, a denied pull request can motivate and energize the developer.

Theres no doubt that the pull request is a powerful tool. Imagine what it would be like if organizations outside of IT used it.

Imagine what it would be like if a piece of legislation could be subject to a pull request. Interested parties could use the pull request to make suggestions on how to improve a piece of legislation. Then legislations maintainers in this example, the bills sponsors would review the proposed modifications. If the additions have value, theyre added into the bill. If there are shortcomings, the maintainers make comments and send the pull request back to the originators for revision.

Remember, the beauty of a pull request is that the value of the submission is judged on its merit. The status, background and other personal information about the submission have little if no affect determining the pull requests value. All that counts is the merit of the idea and just as importantly, the entire process is open and subject to public scrutiny.

We in the software business have come to understand the value of the pull request. The process is part of just about every open source project in the modern digital ecosystem today. If the pull request became a part of the legislative process it will create not only embed the spirit of continuous improvement in lawmaking but also make it so that any citizen can contribute beyond the ballot box.

Continue reading here:
Why the pull request process could work beyond development - Coffee Talk: Java, News, Stories and Opinions - TheServerSide.com

Related Posts
This entry was posted in $1$s. Bookmark the permalink.