TechPush: DDS-Demonstrators

DDS [1] (Data Distribution Service) is a real-time, embedded “data-centric” pub-sub communication framework. Which is becoming popular in the (professional, industrial) IoT-world. It is also very HighTech; one of the reasons why we (Sogeti HighTech BL) are interested.

Sogeti-HighTech has bundled several innovation-projects into this DDS-Demonstrators program.
Each project will result in a simple Demonstrator, showing the power of DDS; and how to use DDS; including (demonstration) code, test, and lessons-learned [2].

Most software is made in C, C++ or Python and will be run an embedded Linux system. Often we use a Raspberry Pi, which is affordable; and a good reference for a modern embedded system.

  • Python is mainly used as a Proof-of-Concept language; when the execution speed is less relevant than the development-velocity. Python is also used for scripting (for tests and measurements).
  • When speed- or latency-measurements are needed, C/C++ is typically used; possibly after a Python PoC.
  • Python is also often used for tool-like demonstrators (such as the XScope)

Measure & Blog

The DDS-Demonstrators use the “Measure & Blog” approach: every project and every iteration starts with an (R&D) question, and ends with a publication on the answer.
Typical, the project included some “measurements”, and the publication is a simple “blog”.

The intermediate results, like code, automatic test- and measure-scripts, and other documentation are also published: should be stored in this version control system. In such a way that others can repeat the experiment easily and learn quickly.

Often, each “Measure & Blog” will lead to new questions. They should also be documented and can lead to new iterations.

More on this, later in a generic blog …

Deliverables

Every iteration [3] sprint gives the following deliveries:

  1. The production code (read: a DDS-Demonstrator, in functional, partial deliveries).
  2. The design, where relevant: Use plantUML diagrams, text, etc.
  3. The test- and measurement-code.
  4. User manuals (SUM: Software User Manuals) - of the product (how to install, run, use …).
  5. Project / Sprint documentation (including estimates, comments).
  6. The “Blog”: from research question by the measurements/results towards the conclusions/advice; typically short.
  7. All kind of “convenient notes”; in the Team pages
  8. “Free” documentation improvements on existing (used) documentation –without adding cost.
  9. All other short, cheap improvements to record knowledge.

Footnotes

[1]See: https://en.wikipedia.org/wiki/Data_Distribution_Service
[2]To share this knowledge many DDS-Demonstrators are treated as open-source. Then it becomes easy to share it with our (over 100) HighTech Software Developers, other Sogeti-professionals, and to show it to clients.
[3]The term iteration is used to generalize a (scrum) sprint. The same deliverables are expected at the end of a super-sprint (in safe: “PI”), an internship, an innovation-assignment and the end of a project.

Main Table of Content