Autonomous Foundry LLC

Software Fundamentals Toolkit

Resources to help your software team demonstrate a strong technical foundation.

Results

If there's a specific outcome where your team is falling behind, this is where to start. Review the technical ingredients that go into the result you need, and get clear on where to start working on your process.

For the Business

Predictability.
How reliable are your estimates of work, and how good is your software team at keeping its promises to the business?

Agility.
How responsive is the software to changing needs, and how short is the feedback loop that helps inform business decisions?

For Users

Reliability.
Can users rely on a consistent experience from one release to another, with relatively few bugs, regressions, and performance issues?

Responsiveness.
Can users expect a quick response to problems that do occur, and a quick process for getting urgent updates and fixes into production?

For Developers

Technology Culture.
Do developers spend most of their time solving technical challenges? Are they supported in improving their skills?

Forward Progress.
Do developers get to see their work put into action? Do projects move forward with minimal rework and rediscovery?

Organizational Skills

The things your organization will get better at as you strengthen your technical foundation.

Testing

Verifying that the software meets requirements, and stating the requirements clearly.

Delivery

Integrating all the work into a final product and delivering it to users reliably.

Architecture

Structuring code to be readable, maintainable, and ready for future changes.

Modeling

Representing the problems of your business domain clearly in the code.

Checkpoints

Signs that your software project is built on solid fundamentals. Each one is reduced to its simplest elements and easy to assess. Dig into specifics about what your team needs to advance to the next level of proficiency.

Testing

  1. External Coverage
    The effect of every business-facing change is demonstrated by tests.

  2. Testable Criteria
    All changes are requested in the form of testable acceptance criteria.

  3. Internal Coverage
    The effect of every internal change is demonstrated by tests.

  4. Authoritative Tests
    All behavior required by the business is authoritatively defined in tests.

Delivery

  1. Validation Pipeline
    A basic delivery pipeline enforces testing and review of each change before release.

  2. Scripted Chores
    All deployment and runtime tasks are made explicit and consistent through scripting.

  3. Continuous Master
    Every change is safe to merge after testing and review.

  4. Continuous Release
    Every change is ready for production release after testing and review.

Architecture

  1. Easy Changes
    Every change is made easy by code reorganization before it’s implemented.

  2. Nonfunctional Architecture
    Code abstractions encompass all nonfunctional requirements.

  3. Strategy Review
    High-level strategy is outlined and reviewed before starting each change.

  4. Organizational Architecture
    Every major architectural division matches an organizational division.

Modeling

  1. External Abstractions
    All business-facing changes are reflected by abstractions named for domain concepts.

  2. Normalized Requirements
    All business-facing requirements are organized to minimize duplication and coupling.

  3. Internal Abstractions
    All internal architectural concepts are clearly represented by abstractions.

  4. Layered Abstractions
    All abstractions are grouped into layers which communicate the software’s design.

Tactics

The individual skills and habits your team members use to follow your organization’s process.

for Developers

Coming soon!

for Project Managers

Coming soon!

for Company Leaders

Coming soon!

Subscribe for Updates