{
    "archive_path": "archive/1755651433.828907",
    "base_url": "timharek.no/blog/why-developers-question-everything",
    "basename": "",
    "bookmarked_date": "2025-08-20 00:57",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/timharek.no/blog/why-developers-question-everything",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=timharek.no",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": null
    },
    "domain": "timharek.no",
    "downloaded_at": "2025-08-20T00:57:20.168353+00:00",
    "downloaded_datestr": "2025-08-20 00:57",
    "extension": "",
    "hash": "PEQKH8NCXZNATE14NVT3",
    "history": {
        "archive_org": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://web.archive.org/save/https://timharek.no/blog/why-developers-question-everything/"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-08-20T00:58:22.402483+00:00",
                "index_texts": null,
                "output": "https://web.archive.org/web/20250820005807/https://timharek.no/blog/why-developers-question-everything/",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:58:01.963349+00:00",
                "status": "succeeded"
            }
        ],
        "dom": [
            {
                "cmd": [
                    "/usr/bin/chromium-browser",
                    "--proxy-server=socks5://tor-socks-proxy:9150",
                    "--disable-features=DarkMode",
                    "--run-all-compositor-stages-before-draw",
                    "--hide-scrollbars",
                    "--autoplay-policy=no-user-gesture-required",
                    "--no-first-run",
                    "--use-fake-ui-for-media-stream",
                    "--use-fake-device-for-media-stream",
                    "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'",
                    "--headless=new",
                    "--no-sandbox",
                    "--no-zygote",
                    "--disable-dev-shm-usage",
                    "--disable-software-rasterizer",
                    "--disable-sync",
                    "--window-size=1440,2000",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "--user-data-dir=/data/personas/Default/chrome_profile",
                    "--profile-directory=Default",
                    "--dump-dom",
                    "https://timharek.no/blog/why-developers-question-everything/"
                ],
                "cmd_version": "131.0.6778",
                "end_ts": "2025-08-20T00:57:35.723554+00:00",
                "index_texts": null,
                "output": "output.html",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:57:31.121223+00:00",
                "status": "succeeded"
            }
        ],
        "favicon": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--max-time",
                    "60",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://www.google.com/s2/favicons?domain=timharek.no"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-08-20T00:57:24.528795+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:57:21.332364+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://timharek.no/blog/why-developers-question-everything/"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-08-20T00:57:25.217680+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:57:24.577321+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [
            {
                "cmd": [
                    "(internal) archivebox.extractors.htmltotext",
                    "./{singlefile,dom}.html"
                ],
                "cmd_version": "0.8.5rc51",
                "end_ts": "2025-08-20T00:57:53.234720+00:00",
                "index_texts": [
                    "Why developers question everything\n-\nTim H\u00e5rek (/css/styles.ff80970c45906544a05c36c92835e0041ee5ea239e103f7973383016441f64a2.css) (https://github.com/timharek) (https://sr.ht/~timharek) (/public-key.asc) (https://www.printables.com/@timharek) (https://www.openstreetmap.org/user/timharek) (https://codeberg.org/timharek) (mailto:tim@harek.no)  Skip to content       (/) Home  (/blog/) Blog  (/about/) About  (/more/) More\u2026     (/) Home  (/blog/) Blog  (/blog/why-developers-question-everything/) Why developers question everything    (https://timharek.no) Tim H\u00e5rek Andreassen  (ZgotmplZ) (Photo)  (mailto:tim@harek.no) tim@harek.no  (https://timharek.no/public-key.asc) PGP key  Why developers question everything Published (2025-03-27T00:00:00+00:00) March 27, 2025  2 minutes read  As a developer myself, I\u2019ve noticed something about our profession that feels\ncontroversial to admit: we question everything, sometimes to the point where we\nmight seem like we\u2019re being difficult. And I\u2019m not here to tell you that this is\na problem, per se, it more like an observation. Bathroom renovation vs. a software integration I believe developers have a unique approach compared to other professionals.\nLet\u2019s consider this comparison: Bathroom renovation Imagine you\u2019re renovating your bathroom. The process typically goes like this: You request a quote, explaining what you want. After some back and forth, you agree on a price. Work begins and the contractor discovers unexpected issues (electrical\nissues, plumbing etc). They handle it, but inform you it will cost more. You agree because you want the bathroom finished. Work completes, perhaps with some delays and more price adjustments.  This example feels normal. We accept that physical work involved unforeseen\ncircumstances, and we generally trust the professionals to handle them. Software integration Now, imagine you need to integrate two systems and sync data between them: You ask a developer if it\u2019s possible. They respond with \u201cit depends\u201d and list various factors. You establish that yes, it\u2019s possible. Then the developer asks: \u201cWhat\u2019s the minimum you need for this to work?\u201d You explain that you want everything synced. The developer asks: \u201cWhy?\u201d (joke) You get frustrated and renovate your bathroom instead.  The last question is where developers diverge from other professions. We want to\ntake all the precautions we can to avoid future problems, we don\u2019t just take\nrequirements at face value \u2013 we question them, sometimes to the frustration of\nstakeholders. Why do we do this? It\u2019s not uncommon to feel like you\u2019re being difficult or a \u201ccry-baby\u201d when\nyou\u2019re met with a frustrated client that \u201cjust\u201d wants you to do what they ask\nyou. Software isn\u2019t the same as physical work. You don\u2019t need a lot of\nexperience to know that: The cost of change in software can be exponentially higher after the\nimplementation. Unnecessary complexity is a nightmare to maintain and kills projects. Asking a lot of questions sometimes reveals simpler solutions.  It\u2019s our responsibility to ask questions. We\u2019re trying to save time, money, and\nfuture headaches by challenging assumptions early. The goal isn\u2019t to avoid work \u2013 it\u2019s to do the right work for the right reasons.  Tagged with (/tags/thoughts/) #thoughts  (/tags/programming/) #programming  (/tags/communication/) #communication    392 words    (mailto:tim@harek.no?subject=RE:%20Why%20developers%20question%20everything) Reply via email    \u2190 Previous(/blog/subscribe-via-email/) Subscribe via e-mail  Next \u2192(/blog/2025-march-recently/) March 2025      Last deploy: (2025-08-18T20:05:40Z) 2025-08-18  (/stats/) Stats  (/privacy/) Privacy  (/connect/) Connect  (/subscribe/) Subscribe       "
                ],
                "output": "htmltotext.txt",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:57:53.220535+00:00",
                "status": "succeeded"
            }
        ],
        "media": [
            {
                "cmd": [
                    "/usr/local/bin/yt-dlp",
                    "--restrict-filenames",
                    "--trim-filenames",
                    "128",
                    "--write-description",
                    "--write-info-json",
                    "--write-annotations",
                    "--write-thumbnail",
                    "--no-call-home",
                    "--write-sub",
                    "--write-auto-subs",
                    "--convert-subs=srt",
                    "--yes-playlist",
                    "--continue",
                    "--no-abort-on-error",
                    "--ignore-errors",
                    "--geo-bypass",
                    "--add-metadata",
                    "--format=(bv*+ba/b)[filesize<=750m][filesize_approx<=?750m]/(bv*+ba/b)",
                    "--skip-download",
                    "--cache-dir=/data/yt-dlp-cache/",
                    "--cookies=/data/yt-dlp-cache/cookies.txt",
                    "--proxy=socks5://tor-socks-proxy:9150",
                    "--no-playlist",
                    "https://timharek.no/blog/why-developers-question-everything/"
                ],
                "cmd_version": "2024.10.7",
                "end_ts": "2025-08-20T00:58:01.869018+00:00",
                "index_texts": [],
                "output": "media/",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:57:56.234817+00:00",
                "status": "succeeded"
            }
        ],
        "mercury": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/postlight-parser",
                    "https://timharek.no/blog/why-developers-question-everything/"
                ],
                "cmd_version": "2.2.3",
                "end_ts": "2025-08-20T00:57:53.143289+00:00",
                "index_texts": null,
                "output": "mercury/",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:57:48.626338+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/readability-extractor",
                    "/tmp/tmp9d_jekho",
                    "https://timharek.no/blog/why-developers-question-everything/"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2025-08-20T00:57:38.589691+00:00",
                "index_texts": [
                    "As a developer myself, I\u2019ve noticed something about our profession that feels\ncontroversial to admit: we question everything, sometimes to the point where we\nmight seem like we\u2019re being difficult. And I\u2019m not here to tell you that this is\na problem, per se, it more like an observation.Bathroom renovation vs. a software integrationI believe developers have a unique approach compared to other professionals.\nLet\u2019s consider this comparison:Bathroom renovationImagine you\u2019re renovating your bathroom. The process typically goes like this:You request a quote, explaining what you want.After some back and forth, you agree on a price.Work begins and the contractor discovers unexpected issues (electrical\nissues, plumbing etc).They handle it, but inform you it will cost more.You agree because you want the bathroom finished.Work completes, perhaps with some delays and more price adjustments.This example feels normal. We accept that physical work involved unforeseen\ncircumstances, and we generally trust the professionals to handle them.Software integrationNow, imagine you need to integrate two systems and sync data between them:You ask a developer if it\u2019s possible.They respond with \u201cit depends\u201d and list various factors.You establish that yes, it\u2019s possible.Then the developer asks: \u201cWhat\u2019s the minimum you need for this to work?\u201dYou explain that you want everything synced.The developer asks: \u201cWhy?\u201d(joke) You get frustrated and renovate your bathroom instead.The last question is where developers diverge from other professions. We want to\ntake all the precautions we can to avoid future problems, we don\u2019t just take\nrequirements at face value \u2013 we question them, sometimes to the frustration of\nstakeholders.Why do we do this?It\u2019s not uncommon to feel like you\u2019re being difficult or a \u201ccry-baby\u201d when\nyou\u2019re met with a frustrated client that \u201cjust\u201d wants you to do what they ask\nyou. Software isn\u2019t the same as physical work. You don\u2019t need a lot of\nexperience to know that:The cost of change in software can be exponentially higher after the\nimplementation.Unnecessary complexity is a nightmare to maintain and kills projects.Asking a lot of questions sometimes reveals simpler solutions.It\u2019s our responsibility to ask questions. We\u2019re trying to save time, money, and\nfuture headaches by challenging assumptions early.The goal isn\u2019t to avoid work \u2013 it\u2019s to do the right work for the right reasons."
                ],
                "output": "readability/",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:57:36.388243+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://timharek.no/blog/why-developers-question-everything/"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-08-20T00:57:35.777100+00:00",
                "index_texts": null,
                "output": "Why developers question everything\n-\nTim H\u00e5rek",
                "pwd": "/data/archive/1755651433.828907",
                "schema": "ArchiveResult",
                "start_ts": "2025-08-20T00:57:35.761873+00:00",
                "status": "succeeded"
            }
        ],
        "wget": []
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": "https://web.archive.org/web/20250820005807/https://timharek.no/blog/why-developers-question-everything/",
        "dom": "output.html",
        "favicon": "favicon.ico",
        "git": null,
        "media": "media/",
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "Why developers question everything\n-\nTim H\u00e5rek",
        "warc": null,
        "wget": null
    },
    "link_dir": "/data/archive/1755651433.828907",
    "newest_archive_date": "2025-08-20T00:58:01.963349+00:00",
    "num_failures": 0,
    "num_outputs": 9,
    "oldest_archive_date": "2025-08-20T00:57:21.332364+00:00",
    "path": "/blog/why-developers-question-everything/",
    "schema": "Link",
    "scheme": "https",
    "snapshot_abid": "snp_01K32FNSCXB25AA11601FTD7H7",
    "snapshot_id": "970d200b-b65b-4de5-97f6-1f129fa69e27",
    "sources": [
        "/data/sources/1755651432-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1755651433.828907",
    "title": "Why developers question everything\n-\nTim H\u00e5rek",
    "url": "https://timharek.no/blog/why-developers-question-everything/"
}