Estimating work without lying to yourself
Estimate in ranges, separate unknowns from known work, and review weekly. Precision theatre is how timelines die.
Estimate in ranges, separate unknowns from known work, and review weekly. Precision theatre is how timelines die.
Logs, metrics, and alerts should point to action. If your alert doesn’t tell you what to do next, it’s noise.
Refactor when the core value is sound and complexity is localised. Rewrite only when the architecture blocks you and the
Define success, confirm rollback plan, verify monitoring, and test the happy path plus the top failure modes. Launching should feel
Legacy Rails can be reliable if you treat it like infrastructure: small changes, tests where it matters, safe deploys, and
Keep integration points explicit. Use contracts (schemas), retries, idempotency, and monitoring. ‘It works on my machine’ is not an integration
Retainers are for continuity and speed. Projects are for defined outcomes. Mixing them without clarity creates scope creep and resentment.
Define severity, assign an incident lead, communicate clearly, and write a short postmortem. The goal is learning, not blaming.
If users complain or costs climb, performance is revenue. Measure first, fix the bottleneck, then keep an eye on regressions.
Give context, constraints, access, and success criteria. The best brief is a clear problem statement plus examples of what ‘good’