A shout-out to Chris Donley for much of the content found here (smile)

What is a project?

IS / HASIS NOT / DOES NOT
  • A long term endeavor to deliver features across multiple releases
  • Rationalized based upon clear technical and industry benefits
  • Has a clearly defined scope that can be leveraged across many use cases
  • Requires a dedicated content repository
  • A community which acts collectively as a single development entity 
  • Has Committers with expertise in the relevant areas

  • Intended for a single ONAP release 
  • Rationalized based upon convenience for an individual entity
  • Scoped broadly or a collection of unrelated items to satisfy a single use case
  • Something that can exist without having a dedicated repo
  • A fully self-contained internal development team
  • Require Committers with different expertise 

The basic steps for submitting a proposal

  • Talk to community members first about the problem you think needs to be addressed.
  • Fill in the template by clicking the create button in the "Draft Project Proposals" section of the wiki
  • Meet with the Architecture subcommittee for an initial review
  • Address any concerns raised by the Architecture subcommittee scheduling a follow-up review if necessary
  • A MINIMUM OF 2 WEEKS PRIOR TO MAKING YOUR PRESENTATION TO THE TSC your submission should be considered to be locked. Nothing else should be added or changed from that point on. 

The TSC considers many things when they look at approving a new project

Technology for the sake of technology won't cut it,  neither will solutions in search of problems.

  • Is your project addressing a real problem in the industry?
  • How does this affect other projects?
  • Does this advance our architecture?
  • How does this fit with the next release? How about R+1 or 2?
  • Does it increase our risk of delivering on time?
  • Does it support multiple use case scenarios?
  • Do you have enough resources?
  • Are those resources new, or are you drawing resources away from other projects?
  • Will this project make ONAP more attractive to service providers?
  • Would this simplify or complicate end user adoption?


Pro Tip

The TSC will always look more favorably on project proposals that address gaps in existing ONAP functionality vs. replacing existing  functionality with a new proposal.  

Best Practices for successful proposal

  • Always remember this is an open source community, not contract labor.  No one is required to do anything. 
  • Talk to people from as many different different companies as possible in advance
  • Ensure participation of at least 3-4 organizations, including at least one operator (preferably more)
  • Circulate draft proposals among the community to obtain feedback before presenting to the Architecture subcommittee
  • Respond promptly to any questions from the community, especially after you notify the tsc list.

Things to avoid

  • Changing the architecture in the project proposal- Architecture changes should be discussed in the Architecture subcommittee before the new project is ever proposed
  • Duplicating, moving, or changing functionality in existing projects, UNLESS
    • Unless you have the full support from the existing project team that would be impacted 
    • Or the other project's component was designed to be modular and you are adding a driver
  • Thinking someone has made a resource commitment just because they agree with something you said


Pro Tip

Being open to feedback gives you credibility. There will of course be disagreements on solutions or approaches, but anyone that feels you are ignoring their input is unlikely to consider working with you on anything either now or in the future . If you hear an objection or concern that cannot be addressed by your proposed solution it is in your best long-term interest to respectfully highlight it publically and then provide the technical reasoning or logic that went in to your decisions.    

Filling out your proposal

As you go through the template here are the things to keep in mind. Many of these are typical of the questions that you get asked over and over. A project proposal should answer six fundamental questions:

  1. WHO will be doing the work?
  2. WHAT do you propose doing?
  3. WHEN do you plan to deliver it?
  4. WHERE will you put your deliverables? 
  5. WHY should we consider doing this?
  6. HOW does this fit into our architecture?

The Overview section

  • What is the problem?

  • Why can’t it be solved in existing projects?

  • How do you propose we solve it?

The Architecture section

  • How does your proposal fit with the existing ONAP architecture? 
    • This is the question that will ultimately receive the most scrutiny.  If that cannot be clearly explained your project won't be taken seriously. 
  • Failing to adequately engage the Architecture subcommittee and failing to heed their input is a losing strategy.   Although the subcommittee cannot approve or disapprove a project proposal its recommendation to the TSC is highly weighted. 
    • If you think that the problem to be solved is fundamentally an architecture problem then bring that issue up for discussion on an Architecture call first before you ever trying to proposing a new project.
    • If you think that the ONAP architecture needs to be modified in order to accommodate your project, be prepared for very long and drawn out review process that is unlikely to be approved.

The Resources section

  • This page is for listing commitments. DO NOT list people that you hope will get involved, or folks that you think might benefit, or even people that may have said, "I think this is a good idea."  Only list those who have signed up to work on your project. Period. 
  • The PTL should have had some manner of direct 1:1 conversation with everyone listed to before making a proposal.


Pro Tip

Thinking of or speaking of companies or individuals as “proposed contributors” to your project will almost always get you into trouble.  It is probably best to consider it to be a binary; either they directly committed resources to work on the project to you first hand, or they did not.  Comments such as, "Yes, that sounds like a good idea",  "Yes, my company would like something like that", or even "Yes, I'd be very interested in your project!" are not the same as someone saying, "Yes, I can work on your project".