The Rivera Matrix


In the unrelenting world of coding, where every decision can mean the difference between success and failure, Henry Rivera’s Rivera Matrix stands as a practical guide. This tool, rooted in the Eisenhower Matrix, offers a clear framework for prioritizing coding tasks based on their interaction with humans and computers.

Initial idea created by Henry Rivera of Digital Turbine.

Rivera Matrix

Quadrant 1: Critical Path

This is where your code is both heavily used and highly visible. It demands your A-team: experienced developers who can balance performance with readability. They need to be adept at writing optimized, maintainable code and have a keen eye for detail. Here, code must be meticulously commented, thoroughly documented, and rigorously tested. It’s the frontline of your software, where top talent ensures top performance.

Quadrant 2: High Churn

Code in this quadrant is a frequent stop for human eyes but not so much for system processes. Assign developers who excel in clarity and teaching. They should be able to write code that’s understandable to junior developers and other stakeholders, making the codebase an educational tool as well as a functional one. Comprehensive, clear documentation and user-friendly guides are essential here.

Quadrant 3: Optimized

In this quadrant, efficiency and performance are paramount. Developers should focus on streamlining code for optimal system use. Alongside unit testing, automated performance testing is critical. This ensures that the code not only functions correctly but also performs efficiently under various conditions. While human readability may take a back seat, performance testing helps guarantee that the system can handle the demands placed upon it with minimal resource usage.

Quadrant 4: Forgotten

In this quadrant, the focus should shift towards automated testing rather than extensive documentation. As this code is less visible and interacted with, automated tests become vital in catching issues that might otherwise go unnoticed. Developers should prioritize creating comprehensive, robust automated tests to ensure functionality and reliability. While documentation is still important, it should support the automated testing strategy, ensuring that even the least visible code maintains quality and does not introduce hidden faults.

Development and Bug Fixing Order

When it comes to tackling development and bug fixing, the Rivera Matrix not only helps in task categorization but also in prioritizing your approach. Here’s a recommended order:

  1. Quadrant 1 (Critical Path): Start here for both development and bug fixing. Since this code is critical and frequently interacted with, any issues or improvements here will have the most immediate and significant impact.
  2. Quadrant 2 (High Churn): Next, address this quadrant, where human interaction is high. Ensuring clarity and functionality here is crucial for your team’s understanding and for stakeholders’ engagement.
  3. Quadrant 3 (Optimized): Prioritize this quadrant next. Focus on efficiency and include automated performance testing to ensure that the system runs smoothly and efficiently.
  4. Quadrant 4 (Forgotten): Finally, address this quadrant. Emphasize automated testing to catch issues in less visible code, supplementing with documentation as necessary.

By following this order, you ensure a balanced approach to development, keeping your codebase efficient, understandable, and robust.


See also