Learning curve for new users of the ODL platform

Srini Seetharaman

I started out as a beginner user of the ODL platform and put together the tutorial at sdnhub.org/tutorial/opendaylight a few months ago, mostly by poking through the code and learning about the workflow of different modules. We also conducted live tutorials and a hackathon using the ODL platform. Based on my interactions with many beginner SDN programmers, I realize the platform is not yet their friend.

Here's my high-level feedback. I wanted to kick off a discussion about how to make the controller platform easier to use by the average beginner:
  • With platforms like ODL that combines OSGi, Eclipse and Maven, there are too many places where configurations are inspected. Beginners need clear guides to show the workflow of the compiler and the interpreter. Madhu explained us the workflow. It will help to have this written in a user guide of sorts.
  • Why not leave out the tests for the modules from the basic edition? User != Platform developer. It doesn't make sense for someone building apps for a platform to run (or even have to load in eclipse) test cases that are to do with the core module (e.g., topo manager) testing. The latter is more of the job of the platform developer and not the app developer.
  • It will help to have several primitives that make it easier to perform frequent operations (like flow setup, match definition, action creation). For instance, in POX one can define the match from an incoming packet. This is simple, yet rarely offered in other platforms.
  • Coding style is too anal about the trailing space. This is the most common error that beginners have during compilation.
  • It is essential to show how beginners can avoid unnecessary logs that show up on the screen at run time on the console, and also provide them pointers to Eclipse usage (debugging, quick compilation etc).
  • Using eclipse + running consumes quite a bit of memory and computing resources. I feel most of that is because of loading the full edition from the git. Maybe ¬†loading and using the base-edition won't be so bad.