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.

What HN saysCommenters cite his views that programming is not a profession, his talks on faster software, and his post on classic SOA.
81HN people shared it
14linked it in comments
81stories submitted
1.4Kstory points
4 months agolast shared
2009people per year2026

Most-shared posts

  1. 1
    Programming is not a craft
    12 people · 92 points · first shared 2011 · 60 comments on HN
  2. 2
  3. 3
    In praise of SWARMing
    6 people · 55 points · first shared 2018 · 18 comments on HN
  4. 4
    Introducing BDD
    6 people · 3 points · first shared 2010 · discussion on HN
  5. 5
    The Worst Programmer I Know (2023)
    5 people · 532 points · first shared 2023 · 370 comments on HN
  6. 6
    Best Simple System for Now
    5 people · 17 points · first shared 2025 · discussion on HN
  7. 7
    The Worst Programmer I Know (2023)
    4 people · 4 points · first shared 2025 · 4 comments on HN
  8. 8
    CUPID – For Joyful Coding
    3 people · 77 points · first shared 2022 · 32 comments on HN
  9. 9
    The rise and rise of JavaScript
    3 people · 12 points · first shared 2011 · 2 comments on HN
  10. 10
  11. 11
    CUPID – the back story
    2 people · 328 points · first shared 2021 · 257 comments on HN
  12. 12
    We need to talk about testing
    2 people · 127 points · first shared 2021 · 72 comments on HN
  13. 13
    Are we nearly there yet?
    2 people · 6 points · first shared 2013 · discussion on HN
  14. 14
  15. 15
    A classic introduction to SOA
    2 people · 3 points · first shared 2016 · discussion on HN

What HN people wrote when they linked it

glenjamin · 2025-10-24
This reminded me of a slide from a Dan North talk - perhaps this one https://dannorth.net/talks/#software-faster? One of those anyway. The key quote was something like "You want your software to be like surgery - as little of it as possible to fix your problem". Anyway, it doesn't seem like this blog post is following that vibe.
pbh101 · 2016-09-12
You would probably like reading [1] by Dan North. [1]: https://dannorth.net/classic-soa/
seesomesense · 2014-08-07
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/
ggeorgovassilis · 2024-10-04
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/
zackmorris · 2015-01-08
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…
asymptotic · 2011-04-15
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."
SCdF · 2026-06-12
I had seen, up until LLMs, posts in this theme: https://dannorth.net/blog/the-worst-programmer/ pretty regularly. This one was only a few years ago! Maybe we run in different circles. Or did, anyway.
tomstuart · 2022-07-29
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/
atulatul · 2017-10-06
Agree with this. I like some of his ideas. But a problem I have(possibly of my perception) with uncle Bob is that he gets too aggressive. If you don't have X percent (100%) code coverage, then you are doing it wrong, you are not a craftsman, etc. Well, Dan North put things in perspective a bit- https://dannorth.net/2011/01/11/programming-is-not-a-craft/ The problem is dogma. And it keeps repeating. But probably this aggression helps them in their careers. (Not a frequent contributor to comments/ here on HN. Mostly like to read.)
dragonwriter · 2014-04-21
> What do binary decision diagrams (BDDs) have to do with TDD (test driven development)? In context, BDD = Behavior Driven Development [1], not Binary Decision Diagrams. [1] http://dannorth.net/introducing-bdd/
mikeleeorg · 2011-12-20
Here's a link to this article without the anchor to the comment: http://dannorth.net/2011/12/19/the-rise-and-rise-of-javascript/
olalonde · 2022-07-29
> 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…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close