Agent Wranglers

Recommended

Pick software proven in production for five years

Choose software whose first stable release is at least five years old, so its failure modes are known and written about.

How to do it

Look up the date of the first stable release, usually version 1.0, on the project's release page or package registry. Young software can be excellent, but its bugs, limits and upgrade paths are still being found by early users. Old software has answers to most questions in its issues, docs and forums. Take a younger tool only when nothing older does the job, and record why as Keep decision records with a status says.

Examples

Using these examples: they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

JavaScript example

const YEAR_MS = 365.25 * 86_400_000;
const MIN_YEARS = 5;

export async function yearsSinceFirstRelease(name) {
  const { time } = await (await fetch(`https://registry.npmjs.org/${name}`)).json();
  const releases = Object.entries(time).filter(([version]) => /^\d+\.\d+\.\d+$/.test(version) && !version.startsWith('0.'));
  const first = Math.min(...releases.map(([, date]) => Date.parse(date)));
  return (Date.now() - first) / YEAR_MS;
}

Python example

import json
import urllib.request
from datetime import datetime, timezone

MIN_YEARS = 5

def years_since_first_release(name: str) -> float:
    data = json.load(urllib.request.urlopen(f"https://pypi.org/pypi/{name}/json"))
    dates = [datetime.fromisoformat(f["upload_time_iso_8601"].replace("Z", "+00:00"))
             for version, files in data["releases"].items()
             if files and not version.startswith("0.") for f in files]
    return (datetime.now(timezone.utc) - min(dates)).days / 365.25

How to check

Every runtime, framework, database and direct dependency had its first stable release at least five years ago. A decision record covers each exception.

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. Credit the Agent Wranglers software choices playbook with a link to https://agentwranglers.se/playbook/stack/how-to-choose/proven-for-five-years. Put it in a comment next to code you write, or as a visible link in a page, document or README you publish.