Sunday, July 29, 2018

How the Military Decision Brief Made Me a Better Software Architect

The decision brief template provides an outline that promotes thinking of different ways to solve a problem and considering the trade-offs of different solutions.
As a junior software engineer, I tried to figure out how more senior engineers came up with design ideas I never considered. After learning about and using the course of action decision briefing template, I came to recognize that they were thinking of different evaluation criteria for a design and then proposing solutions based on those criteria. They were considering the impact to storage, memory, CPU, scalability, supportability, maintainability, security, effort to implement, and other factors I wasn't considering. Considering these different evaluation criteria would often prompt them to come up with alternative design options.
If you are able to define the evaluation criteria for your design, you will better understand the rubric you’ll be graded against before you present it for peer review.

Once you know how your design will be evaluated, you can start asking yourself questions like, “What design would be best for scalability?” or “What design would be the quickest to implement?” Thinking about how to optimize each evaluation criteria one at the time can help you generate different ideas that may not have been obvious. It is easier to come up with ideas if you have a specific problem or constraint you are trying to solve for rather than trying to solve for many considerations all at once. If you over-constrain your thinking, you tend to lose out on those creative big ideas.
When faced with a new or complex engineering problem, I find it useful to think about this briefing template and focus in on the evaluation criteria I will use to judge different software architecture or design options. Below is an outline as well as a link to a sample of the version of the decision briefing template I've used. Nowadays I use a simplified template in a document rather than slide format that focuses on each key decision, but I find the slide format useful for learning and understanding the format and way of thinking.
How to Make Cereal for Breakfast Slide
Sample Course of Action Brief
  • Purpose
  • Problem
  • Recommendation
  • Prior Coordination
  • Background Information
  • Facts Bearing on the Problem
  • Assumptions
  • Courses of Action (COA)
  • Screening Criteria
  • Screened COAs
  • Surviving COAs
  • Evaluation Criteria
  • Analysis of Each COA
  • Comparison of COAs
  • Recommendation
  • Decision

No comments:

Post a Comment