SDN is designed to address networking needs that are poorly addressed by existing networks, and therefore the OpenFlow protocol and its specification process are significantly different from most traditional network protocols. The evolution of the OpenFlow API is guided by a large number of unrelated use cases, the main elements of SDN and classical guidelines of API development. However the goal of addressing a wide range of network devices, hardware and software, and the volunteer process in the Extensibility WG make the specification process quite complex. To address these challenges, the specification process for OpenFlow was made very dynamic and quite similar to the process of open source projects, and the deliverables include both a stable long term support branch and a more experimental main branch.