Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Dan North

    dannorth.net · Personal blog · on HN since 2009

    Dan North, a software consultant and originator of behaviour-driven development, writes about programming practice and team methods.

    Visit blogRSSHN submissions
    ProgrammingCareer & WorkManagement
    What HN says

    Commenters cite his views that programming is not a profession, his talks on faster software, and his post on classic SOA.

    Stats for nerds
    81HN people shared it
    81linked in comments
    1.4Kstory points
    Jun 2026last shared
    2011people per year2026

    Top posts on HN

    1. 1
      The Worst Programmer I Know (2023)
      5 people · 532 points · first shared 2023 · 370 comments on HN
    2. 2
      CUPID – the back story
      2 people · 328 points · first shared 2021 · 257 comments on HN
    3. 3
      We need to talk about testing
      2 people · 127 points · first shared 2021 · 72 comments on HN
    4. 4
      Programming is not a craft
      12 people · 92 points · first shared 2011 · 60 comments on HN
    5. 5
      CUPID – For Joyful Coding
      3 people · 77 points · first shared 2022 · 32 comments on HN
    6. 6
      The Worst Programmer
      1 person · 65 points · first shared 2023 · 26 comments on HN
    7. 7
      In praise of SWARMing
      6 people · 55 points · first shared 2018 · 18 comments on HN
    8. 8
      Interviewing for Evidence
      1 person · 23 points · first shared 2024 · 11 comments on HN
    9. 9
      Best Simple System for Now
      5 people · 17 points · first shared 2025 · Discussion on HN
    10. 10
      The rise and rise of JavaScript
      3 people · 12 points · first shared 2011 · 2 comments on HN

    What HN people wrote when they linked it

    • olalondeJul 2022

      > Luckily the industry doesn’t really use this term [OOP] any more so we can ignore the changed meaning.

      OOP is still a widely used term today.

      > It used to mean “not waterfall” and now means “waterfall with a status meeting every day and an internal demo every two weeks”.

      That doesn't sound waterfall-y at all.

      > If you can hire a “DevOps engineer” to fulfil a specific role on a software team then we have all lost at using the phrase DevOps.

      DevOps was never about eliminating all operations roles. It is about better cooperation between dev and ops.

      > This one used to mean “psychologist/neuroscientist developing computer models to understand how intelligence works” and now means “an algorithm pushed to production by a programmer who doesn’t understand it”.

      No, that's never what it meant. It was always a branch of computer science, going as far back as Alan Turing.[0]

      > Previously something very specific used in the context of financial technology development.

      Not at all. It was coined by Ward Cunningham[1] who happened to be working on financial software. The metaphor was never meant to be restricted to financial software. The fact he was working on financial software is largely irrelevant other than possibly having given him inspiration for the metaphor.

      > Was originally the idea that maybe the things your software does should depend on the things the customers want it to do. Now means automated tests with some particular syntax.

      Again, completely wrong. The…

    • zackmorrisJan 2015

      I shouldn’t post this.

      It’s hard for me to single out specific patterns because it feels like the things I’m doing today (taking an idea from a written description, PowerPoint presentation or flowchart and converting it to run in an operating system with a C-based language) are the same things I was doing 25 years ago. It might be easier to identify changes.

      If there’s one change that stands out, it’s that we’ve gone from imperative programming to somewhat declarative programming. However, where imperative languages like C, Java, Perl, Python etc (for all their warts) were written by a handful of experts, today we have standards designed by committee. So for example, compiling a shell script in C++ that spins up something like Qt to display “Hello, world!” is orders of magnitude more complicated than typing an index.html and opening it in a browser, and that’s fantastic. But what I didn’t see coming is that the standards have gotten so convoluted that a typical HTML5/CSS/Javascript/PHP/MySQL website is so difficult to get right across browsers that it’s an open problem. Building a browser that can reliably display those standards responsively is nontrivial to say the least.

      That affects everyone, because when the standards are perceived as being so poor, they are ignored. So now we have the iOS/Android mobile bubble employing millions of software engineers, when really these devices should have just been browsers on the existing internet. There was no need to…

    • asymptoticApr 2011

      Due to the sheer volume of responses to this article the author posted a rebuttal to many complaints here:

      On craftsmanship
      http://dannorth.net/2011/01/15/on-craftsmanship/

      His rebuttal is, as the author admits, better edited and more pithy. Some key parts are:

      "If I gave the impression that I wanted the cheapest or quickest cobbled-together solution then I certainly didn’t mean to. I want the best value software, something that’s fit for purpose in this specific context, to solve this specific need."

      ...

      "I used the metaphor of negative space to illustrate that the point of programming isn’t the software - it’s the information flow or utility that the software enables. Programming is not fine art."

      ...

      "People want software because they want to solve a problem, not because they like the notion of software. Some software practitioners risk losing sight of that. That’s all."

      ...

      "Some people self-identify as 'rock stars' or 'software' 'craftsmen' in an unfortunate attempt to differentiate themselves from regular jobbing professionals, whom they regard as less talented or valuable than themselves. I don’t have much time for these people."

    • ggeorgovassilisOct 2024

      Dan North lives from speaking at conferences, corporate events and tutoring classes, so coming up with novel, memorable terms is his trade mark. I attended such a class ("software, faster" [2] or something like that) around 2016. It was very entertaining, a much needed escape from corporate reality and full of great insights and "aha" moments, but none of that had a lasting impact on me. Dan's way is to reduce complex topics into simple categories - like in the OP post, he speaks about the "Dreyfus model of clinically acquired skills" [1], or pulls out a complexity-impact diagram etc. This reduction of complex topics to simple categories greatly impresses upper management with simple messages and gave us, the foot folk, hopes that we finally found the lever with which we'd make things better. But the category choices and reduction procedure seem arbitrary and I've found the messages imparted of little value in work life and corporate reality.

      [1] https://dannorth.net/tags/dreyfus/

      [2] https://dannorth.net/courses/software-faster/

    • tomstuartJul 2022

      I do find “BDD” a frustrating term.

      It was coined by Dan North [0] to refer to a coherent set of sensible TDD practices — give tests expressive names, say “behaviour” not “test”, write executable “given/when/then” acceptance criteria — but in the intervening 16 years (!) it’s mutated into… I don’t even know what.

      There’s a community of “BDD” practitioners who talk about all sorts of ideas that aren’t necessarily even specific to software engineering. Which is fine and good, but it’s rendered the term essentially meaningless in a software context.

      These days I usually say “double-loop TDD” or “outside-in TDD” when I want to emphasise the use of executable acceptance tests; it’s impossible to predict what (if anything) “BDD” will mean to anyone.

      [0] https://dannorth.net/introducing-bdd/

    • seesomesenseAug 2014

      Programming is not a profession.

      "It would be great if programming were a proper profession, but it isn’t. A profession has a structured model for advancing through levels of skill and ability, be it studying for a law degree and articles (working for a legal practise) or the years of undergraduate and medical training a doctor undertakes before specialising. The latter has clearly-delineated ranks, from junior doctor, via a brutal regime of 80-hour weeks, to consultant."
      http://dannorth.net/2011/01/11/programming-is-not-a-craft/

    Related

    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    DaedTech (Erik Dietrich)daedtech.com196 people

    How Developers Stop Learning: Rise of the Expert Beginner (2012)

    DaedTech (Erik Dietrich)
    Personal · last shared 2026
    Dan Luudanluu.com1.2k people

    We only hire the trendiest

    Dan Luu
    Personal · last shared 2026
    Better Programmingbetterprogramming.pub319 people

    Three programmers got fired, including me, due to a single app crash

    Better Programming
    Publication · last shared 2025
    Letters to a New Developerletterstoanewdeveloper.com28 people

    Cultivate the Skill of Undivided Attention, or “Deep Work” (2019)

    Letters to a New Developer
    Personal · last shared 2026
    Dan Kegelkegel.com97 people

    The C10K problem

    Dan Kegel
    Personal · last shared 2026
    Dan Dreams of Codingdandreamsofcoding.com18 people

    Shutting Down a Dream

    Dan Dreams of Coding
    Personal · last shared 2025
    Neil on Softwareneilonsoftware.com21 people

    A response to “How to never complete anything”

    Neil on Software
    Personal · last shared 2025