---
title: "Journal · 4 — Orvun Labs"
description: "Practical thinking on product design, software development and the decisions in between."
canonical: "https://orvunlabs.com/en/journal/page/4"
language: "en"
last_modified: "2026-09-14"
---

# Journal · 4

Practical thinking on product design, software development and the decisions in between.

## All topics

- [Planning a product](https://orvunlabs.com/en/journal/topic/planning.md)
- [MVP & validation](https://orvunlabs.com/en/journal/topic/mvp.md)
- [Building SaaS](https://orvunlabs.com/en/journal/topic/saas.md)
- [Applied AI](https://orvunlabs.com/en/journal/topic/ai.md)
- [Connected systems](https://orvunlabs.com/en/journal/topic/integrations.md)
- [Workflow automation](https://orvunlabs.com/en/journal/topic/automation.md)
- [Web & experience](https://orvunlabs.com/en/journal/topic/web.md)
- [Quality & reliability](https://orvunlabs.com/en/journal/topic/design.md)
- [Software modernisation](https://orvunlabs.com/en/journal/topic/rescue.md)
- [Choosing a partner](https://orvunlabs.com/en/journal/topic/partnership.md)

## Journal

- [Monitoring whether the business workflow actually finishes](https://orvunlabs.com/en/journal/monitoring-whether-the-business-workflow-actually-finishes.md) — A server can be healthy while customer work is stuck.
- [Questions that shape a useful access-control model](https://orvunlabs.com/en/journal/questions-that-shape-a-useful-access-control-model.md) — Access control starts with a business question: who may do what to which record, under which circumstances?
- [Having a backup is different from being able to restore](https://orvunlabs.com/en/journal/having-a-backup-is-different-from-being-able-to-restore.md) — A backup is a candidate recovery source until someone proves it can restore useful service.
- [Diagnosing production failures without collecting every personal detail](https://orvunlabs.com/en/journal/diagnosing-production-failures-without-collecting-every-personal-detail.md) — Useful logs explain an event with the smallest practical amount of information.
- [Before taking over a codebase: what to inspect](https://orvunlabs.com/en/journal/before-taking-over-a-codebase-what-to-inspect.md) — A practical technical assessment of ownership, deployability, data risks and the first safe change.
- [Rewrite or improve gradually? A decision grounded in the business](https://orvunlabs.com/en/journal/rewrite-or-improve-gradually-a-decision-grounded-in-the-business.md) — Compare a full rewrite with incremental modernization using boundaries, migration effort and business continuity.
- [Prioritize technical debt by its effect on the business](https://orvunlabs.com/en/journal/prioritize-technical-debt-by-its-effect-on-the-business.md) — Build a debt backlog around incidents, delivery friction and recovery risk rather than code aesthetics.
- [Plan a migration around data, cutover and a credible way back](https://orvunlabs.com/en/journal/plan-a-migration-around-data-cutover-and-a-credible-way-back.md) — A practical guide to rehearsal, reconciliation, write ownership and rollback during a software migration.
- [What software maintenance should actually include](https://orvunlabs.com/en/journal/what-software-maintenance-should-actually-include.md) — Separate defects, product changes, security work and operations before agreeing a maintenance scope.
- [Questions that reveal how a software development partner works](https://orvunlabs.com/en/journal/questions-that-reveal-how-a-software-development-partner-works.md) — Evaluate a delivery partner through evidence, decision-making, ownership and the handling of uncertainty.
- [Write a useful software brief before the budget is settled](https://orvunlabs.com/en/journal/write-a-useful-software-brief-before-the-budget-is-settled.md) — Describe outcomes, constraints and spending flexibility so development proposals can be compared fairly.
- [External development partner or an internal team?](https://orvunlabs.com/en/journal/external-development-partner-or-an-internal-team.md) — Compare product ownership, continuity, hiring effort and delivery capacity before choosing how to build.

- [Journal 1](https://orvunlabs.com/en/journal.md)
- [Journal 2](https://orvunlabs.com/en/journal/page/2.md)
- [Journal 3](https://orvunlabs.com/en/journal/page/3.md)
- [Journal 4](https://orvunlabs.com/en/journal/page/4.md)
- [Journal 5](https://orvunlabs.com/en/journal/page/5.md)

## Let's make something useful.

A first product, a difficult workflow or software that needs a fresh start. Tell us where you are.

- [Tell us about your project](https://orvunlabs.com/en/contact)

## Structured data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://orvunlabs.com/#organization",
      "name": "Orvun Labs",
      "url": "https://orvunlabs.com",
      "logo": "https://orvunlabs.com/orvunlabs-icon-512.png",
      "description": "Custom software, SaaS products and AI-powered tools — designed around your business.",
      "knowsAbout": [
        "Custom software",
        "SaaS product development",
        "AI integration"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://orvunlabs.com/#website",
      "name": "Orvun Labs",
      "url": "https://orvunlabs.com",
      "inLanguage": [
        "en",
        "es",
        "de",
        "fr",
        "pt",
        "ja",
        "hi",
        "ar",
        "id",
        "tr",
        "pl"
      ],
      "publisher": {
        "@id": "https://orvunlabs.com/#organization"
      }
    },
    {
      "@type": "WebPage",
      "@id": "https://orvunlabs.com/en/journal/page/4#webpage",
      "url": "https://orvunlabs.com/en/journal/page/4",
      "name": "Journal · 4",
      "description": "Practical thinking on product design, software development and the decisions in between.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://orvunlabs.com/#website"
      },
      "about": {
        "@id": "https://orvunlabs.com/#organization"
      },
      "breadcrumb": {
        "@id": "https://orvunlabs.com/en/journal/page/4#breadcrumb"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://orvunlabs.com/en/journal/page/4#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Orvun Labs",
          "item": "https://orvunlabs.com/en"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Journal · 4",
          "item": "https://orvunlabs.com/en/journal/page/4"
        }
      ]
    }
  ]
}
```
