Balakrishnan (Baalki)
A seasoned software expert with more than 20 years of experience in solution architecture and application development, as well as broad knowledge in digital payments

RFC and Documentation Methods for Software Architecture 

RFC – Request for Comments 

It’s used to refer the Design documents and gather feedback to improve the design. RFCs are created for complex projects. In this approach the engineers’ can share the context and suggested approaches, tradeoffs and accept the feedback. The objective of this approach is getting early feedback which helps to complete the projects in a stipulated time.  

  • Few workflows for executing the RFCs 
  1. Prototype —> RFC —> Build  :  When you are working on a project that may have gaps in it or many unknowns. 
  1. RFC —> Feedback —>Build  : While working on a project that may have several dependencies, and your team is having trouble deciding which one to build first   
  1. RFC–>Build : When you are working on a project with less complexity and your team can quickly incorporate feedback   
  1. Build –>RFC : When working on a project that turns out to be more complex than anticipated, the team can take the feedback and incorporate it into the next project.   
  • Benefits of doing RFC
  1. A design document helped you articulate your concepts and difficulties in a way that made sense to both you and other people. 
  1. Prior to beginning any coding, getting feedback aids the team in reducing misunderstanding and extra effort.   
  1. More engineers can read the design document and get in touch with you if they have any questions.  It will cut down on the number of meetings and save everyone’s time.   
  1. When our teammates see the value in the design document then they do the same in other projects. It promotes the writing culture in the organization
  • Ways to get feedback 
  1. Asynchronous : Reading the comments in the Design Documents 
  1. Synchronous : Host a meeting and discuss the RFC in depth. 
  1. Hybrid : Share the document, solicit comments, and call a meeting if necessary due to the project’s complexity or if additional comments are received.  
  • Popular Architecture Formats  
  1. ADR2 (Architecture Design Record): https://adr.github.io/  : Created for use with Git as a Markdown file and simple structure  
  • C4 Model: https://c4model.com/ : A diagramming software Architecture which is defining four levels;  Context, Containers, Components and Code
  1. Introduction & Goals 
  2. Constraints  
  3. Context and Scope 
  4. Solution Strategy  
  5. Building Block View 
  6. Runtime view 
  7. Deployment view 
  8. Cross Cutting Concepts 
  9. Architectural Decisions  
  10. Quality Requirements  
  11. Risk and Technical Debt 
  12. Glossary  

Conclusion

Depending on the project, different RFC methods and architecture formats have different optimal formats. However, it is important for all engineers to remember that the purpose of this process is to shorten the time it takes to deliver software projects. 


You may also like...