As a systems engineer, your job is to explain a novel idea to other systems engineers, developers, testers, and possibly external customers. The information to share with the different information customers may vary but they all require explaining the same design. An idea is a strange thing, it may germinate differently in different minds depending on level of knowledge, preconceptions, similar experiences, or the general disposition of the person on the day. Thus, the idea must be developed and exposed using the maximum level of clarity. The best way to achieve this is to explain the same concept thoroughly and from different angles:
A) Introduce the topic. Start by describing the design at a high level. Stress any high level concepts such as applicability, benefits, prerequisites, general workings of design, and affected functions. Next, provide an architecture diagram showing the various functions in the system and identifying the affected functionality. Where applicable, show the control and data flows within your diagrams.
B) Provide a detailed description of the design. Divide the idea or design into atomic topics, order the topics to ensure a good flow for the presentation of the ideas, and then tackle the sub-topics one by one. For each sub-topic:
B1) Describe the issue in detail. For every functional box describe the inputs, outputs, and operations. For every algorithm provide a step by step description. For every message, describe field descriptions and actions at source and destination related to the packets and fields.
B2) Add pictures. Humans are visual beings. Beside the aforementioned architecture diagram, add figures to explain the detailed workings of your design. The diagrams may zoom in on parts of the architecture diagram to show a finer level of detail of the interactions between the various functions. Try to have at least one picture per slide if presenting, and an introductory section with good illustrations per main chapter if writing a design description document.
B3) Include flow charts for algorithms. A flow chart accompanies the step by step description of each algorithm.
B4) Add use cases. Use cases describe the various ways a product will be used. It is true that, by this point, the functionality has been described textually and in pictures. However, use cases will dig into specific examples of how the product will work. Start with the main use cases, and then cover all corner cases.
B5) Add call flows. Call flows describe the exchange of messages between different functions within a product, or between different nodes of a system. Frequently, a use case can be fully described by a call flow.
Review your document repeatedly to ensure a good flow.
Finally, clean up the document of any typos or mismatched styles and fonts. You don’t want cosmetics to distract from your message.