Reports

Technical writing is an important skill for any software engineer. While agile methodologies generally emphasize working code over documentation, this does not imply documentation is lacking value. Documentation is an essential part of communication with the various stakeholders in your project. Documenting requirements, for example, is used to confirm your understanding of your clients' or customers' goals. Explaining technical design decisions ensures that teammates and other collaborators understand how their efforts fit together. Reporting successes and analyzing failures helps you and your organization grow and improve.

For this class, you will incrementally produce a report detailing various aspects of your work. To assist with this task, we provide a template you can customize for your project. Each week you will fill in sections of the template according to the deliverables for the week. You should also take time to update any previously written sections with new information.

The table below shows what report sections should be add or updated as part of each deliverable. E.g., the column labeled Design indicates that for this deliverable you will add the System Architecture section and update several other sections as necessary.

Section Requirements Design Quality assurance plan Results Final report
I. Introduction create update update update update
II. Functional Requirements create update update update update
III. Non-functional Requirements create update update update update
IV. Risks create update update update update
V. Definition of Done create update update update update
VI. System Architecture create update update update
VII. Software Test and Quality create (excluding test results) expand (add test results) update
VIII. Ethical Considerations create update update
IX. Results create update
X. Future Work create update
XI. Lessons Learned create update
XII. Acknowledgements create
XIII. Team Profile create update update update update
References create update update update update
Appendix A: Key Terms create update update update update
“Clean code always looks like it was written by someone who cares.” - Michael Feathers