A.T.R.I.A, an improved design methodology.
Written by Ben Friedman, November 28th, 2015
When working on a project it's important that developers, either alone or on a team, remain organized and on point. Working with Axolsoft I developed a design methodology sometime ago that we apply to our projects. We call it the ATRIA design flow.
A little background on why the need need for a specialized methodology. There are quite a few methodologies as to how to handle the development process. Personally I have found many of them to be satisfactory, and honestly we could stop right there if it wasn't for one issue. Getting started. When considering a solution one must have a problem, and when considering the problem you must deliberate for some time on how to make your first step. It is at this point that many individuals, teams and businesses either stall out or proceed to make the wrong call. With the ATRIA design methodology the intention is to address as many possible outcomes that could be solutions, and to cross reference and determine which solution or combination of solutions will best work.
The ATRIA design flow is an acronymn, which is composed of the following:
- Analyze the problem
- Think through a solution
- Repeat with another approach
- Infer whether your solutions are on the right track based on their approaches
- Again, until the chosen solution is satisfactory
This approach is deceiving simple. However one the key concepts here is frame of reference for each approach. Generally, when designing by oneself or in a team the solutions are based on one's experiences. This is, for all matters concerned, the appropriate way to engineer a solution. The ATRIA design flow is a progressive approach however, and it's key benefit is in the Repeat phase, where the individual or team is encouraged to discard their previous approach to the solution and to create an entirely new approach. It is key that you approach the problem as objectively as possible each time. The most general comparison would be to put yourself in someone else's shoes. When you allow yourself to see a problem from a completely different light, you can come up with a completely different approach. Enough varying approaches and you have a good coverage of not one but multiple solutions, giving you good starting ground to deliberate on.
It is recommended that you perform this 'ATR' phase about 3 or so times, more or less based on your constraints. On having completed the ATR phase you should have a diverse group of solutions. It's important that you remain as objective as possible when generating a solution with the ATRIA design methodology. The goal is to generate as many approaches as possible, not to redefine any particular approach. If multiple solutions are outlined the best solutions become evident by comparison, if only one is highlighted then there is nothing to compare it with for flaws and weaknesses. This is mental rapid prototyping in essence, and it weakens to the process to dwell on one design alone.
The infer phase is a recap. At this point you or your team will go back over all the collective solutions you have generated. The goal here is to outline all the possible design facets to you or your team. Multiple approaches to address one particular issue of the problem across multiple solutions identify a likely candidate for implementation. Outliers are also good candidates provided they can work well on their own or combined with aspects of another approach. Once a consensus has been reached you have a engineering roadmap laid out before you. Your solution has not only been incredibly well thought out but also well deliberated and contrasted against opinions and other solutions of varying type. If the solutions cover enough of a basis it is expected for the solution to be comprehensive yet flexible for a starting approach.
The final phase can be a tough one. This is to deeply critique your ultimate solution, and to throw it away! Well, not completely, but to stash it away and to run the entire process again as if you were starting for the first. The objectivity of the second approach, if done right, will cover further ground and may potentially uncover a superior solution. You or you team may also find that the prior solution was the best, and this step either reaffirms or disproves the validity of any prior approaches. This step is most likely to best skipped if you're short on time, but it is important none the less. The emphasis on objectivity and continual reevaluation is paramount to making this an effective engineering approach.
For 'solved' problems, this is not the best approach. For problems where time is a significant constraint, this is not the best approach. This is the best approach when your project or solution is just getting started is has not become well defined in its course. The ATRIA design methodology helps to make sense of problems where solutions are hard to come by or are numerous. At Axolsoft we find the ATRIA design methodology best works when we are designing first generation systems or products, of which there is no significant precedent to follow yet. We also find it useful for auditing or reevaluating existing systems or implementations. Generally if the situation calls for construction or reconstruction with a need for a new foundational approach, ATRIA works best. That's just our opinion however. This is not the go to solution, and it strongly requires individuals with an ability to think objectively. So feel free to try this workflow out in your personal work or your business and see how it works for you.
Questions? Corrections? Concerns? Contact us at firstname.lastname@example.org