41554 blogs · [ { "id": "01a08767-a447-70c3-a2bb-b8ec42deef36", "title": "Best Simple System for Now", "url": "https://dannorth.net/blog/best-simple-system-for-now/", "published_at": "2025-02-03T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec43cfa51e", "title": "My Home Office Setup", "url": "https://dannorth.net/blog/my-home-office-setup/", "published_at": "2024-12-10T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec44b45b18", "title": "Interviewing for Evidence", "url": "https://dannorth.net/blog/interviewing-for-evidence/", "published_at": "2024-09-28T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec456ea8df", "title": "Using Hugo as a redirect service", "url": "https://dannorth.net/blog/hugo-redirects/", "published_at": "2023-10-23T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4654baf9", "title": "McKinsey Developer Productivity Review", "url": "https://dannorth.net/blog/mckinsey-review/", "published_at": "2023-10-04T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec47512a25", "title": "The Worst Programmer I Know", "url": "https://dannorth.net/blog/the-worst-programmer/", "published_at": "2023-09-02T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec47c4ec25", "title": "Advice to a New Speaker", "url": "https://dannorth.net/blog/advice-to-a-new-speaker/", "published_at": "2023-06-21T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec48230a66", "title": "Seek First to Understand", "url": "https://dannorth.net/blog/seek-first-to-understand/", "published_at": "2023-05-09T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec48c8df53", "title": "But what about the BAU work?", "url": "https://dannorth.net/blog/but-what-about-bau/", "published_at": "2023-03-02T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec49966f75", "title": "A bad (computer) system will beat a good person every time", "url": "https://dannorth.net/blog/a-bad-system/", "published_at": "2022-04-20T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4a9214ae", "title": "CUPID: for joyful coding", "url": "https://dannorth.net/blog/cupid-for-joyful-coding/", "published_at": "2022-02-10T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4b6d35e0", "title": "We need to talk about testing", "url": "https://dannorth.net/blog/we-need-to-talk-about-testing/", "published_at": "2021-07-26T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4b8cb4c0", "title": "CUPID: the back story", "url": "https://dannorth.net/blog/cupid-the-back-story/", "published_at": "2021-03-16T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4c17326c", "title": "The mystery of the missing date", "url": "https://dannorth.net/blog/the-mystery-of-the-missing-date/", "published_at": "2020-11-26T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4c3db0a8", "title": "Monte Python Simulation: misunderstanding Monte Carlo", "url": "https://dannorth.net/blog/monte-python-simulation/", "published_at": "2018-09-04T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4c86fbcd", "title": "Better Best Practices", "url": "https://dannorth.net/blog/better-best-practices/", "published_at": "2018-06-15T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4cef4847", "title": "In praise of SWARMing", "url": "https://dannorth.net/blog/in-praise-of-swarming/", "published_at": "2018-01-26T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4cf619c7", "title": "Applying OKRs", "url": "https://dannorth.net/blog/applying-okrs/", "published_at": "2017-05-01T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4d34ba82", "title": "Scratching a JUnit Itch", "url": "https://dannorth.net/blog/scratching-a-junit-itch/", "published_at": "2016-09-03T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4df5bcba", "title": "How to train your Agile", "url": "https://dannorth.net/blog/how-to-train-your-agile/", "published_at": "2016-07-04T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4e15675a", "title": "Thank you", "url": "https://dannorth.net/blog/thank-you/", "published_at": "2016-05-29T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4e4e8f87", "title": "Adventures With Agile interview", "url": "https://dannorth.net/blog/awa-interview/", "published_at": "2016-04-20T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4f135219", "title": "Deliberate Testing interview", "url": "https://dannorth.net/blog/deliberate-testing-interview/", "published_at": "2016-04-17T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4f608cfe", "title": "Upcoming classes", "url": "https://dannorth.net/blog/upcoming-classes/", "published_at": "2016-04-10T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4f8666dc", "title": "Two hours per team", "url": "https://dannorth.net/blog/two-hours-per-team/", "published_at": "2015-04-24T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec4fa85b83", "title": "BDD by example", "url": "https://dannorth.net/blog/bdd-by-example/", "published_at": "2015-04-03T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec507e5437", "title": "Capturing the narrative", "url": "https://dannorth.net/blog/capturing-the-narrative/", "published_at": "2014-07-18T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec51384363", "title": "The Busy Kitchen - a parable of work in process", "url": "https://dannorth.net/blog/the-busy-kitchen/", "published_at": "2014-03-13T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec51603571", "title": "Watch this space", "url": "https://dannorth.net/blog/watch-this-space/", "published_at": "2014-01-18T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec51e40a29", "title": "Six Impossible Things", "url": "https://dannorth.net/blog/six-impossible-things/", "published_at": "2013-08-27T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec529fa844", "title": "Blink Estimation", "url": "https://dannorth.net/blog/blink-estimation/", "published_at": "2013-08-08T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec53856aef", "title": "Are we nearly there yet?", "url": "https://dannorth.net/blog/are-we-nearly-there-yet/", "published_at": "2013-07-05T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec542b2f8b", "title": "Accelerating Agile", "url": "https://dannorth.net/blog/accelerating-agile/", "published_at": "2013-01-15T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec54ae1ab7", "title": "Under new management", "url": "https://dannorth.net/blog/under-new-management/", "published_at": "2012-08-14T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec54f2b7c9", "title": "Published: The art of misdirection", "url": "https://dannorth.net/blog/published-the-art-of-misdirection/", "published_at": "2012-06-09T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec55614c74", "title": "The Art of Misdirection", "url": "https://dannorth.net/blog/the-art-of-misdirection/", "published_at": "2012-06-09T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec55d155d9", "title": "BDD is like TDD if", "url": "https://dannorth.net/blog/bdd-is-like-tdd-if/", "published_at": "2012-05-31T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec56948dd3", "title": "The rise and rise of JavaScript", "url": "https://dannorth.net/blog/the-rise-and-rise-of-javascript/", "published_at": "2011-12-19T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec56c00b72", "title": "Looking back on 2011", "url": "https://dannorth.net/blog/looking-back-on-2011/", "published_at": "2011-11-20T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec57af51f7", "title": "Whose domain is it anyway?", "url": "https://dannorth.net/blog/whose-domain-is-it-anyway/", "published_at": "2011-01-31T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec58339c88", "title": "On craftsmanship", "url": "https://dannorth.net/blog/on-craftsmanship/", "published_at": "2011-01-15T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec58bf57fd", "title": "Programming is not a craft", "url": "https://dannorth.net/blog/programming-is-not-a-craft/", "published_at": "2011-01-11T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec59bc89bb", "title": "Introducing Deliberate Discovery", "url": "https://dannorth.net/blog/introducing-deliberate-discovery/", "published_at": "2010-08-30T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5a040b98", "title": "Time for a change", "url": "https://dannorth.net/blog/time-for-a-change/", "published_at": "2010-02-06T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5ac89546", "title": "The lady in the taxi - a parable of metrics", "url": "https://dannorth.net/blog/the-lady-in-the-taxi/", "published_at": "2009-11-12T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5b5bf909", "title": "New translations", "url": "https://dannorth.net/blog/new-translations/", "published_at": "2009-10-12T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5c4d088e", "title": "Introducing BDD in Japanese", "url": "https://dannorth.net/blog/introducing-bdd-in-japanese/", "published_at": "2009-08-24T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5d0a730a", "title": "Welcome to my brain", "url": "https://dannorth.net/blog/welcome-to-my-brain/", "published_at": "2009-08-13T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5da5c557", "title": "The perils of estimation", "url": "https://dannorth.net/blog/the-perils-of-estimation/", "published_at": "2009-07-01T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5dda43fe", "title": "One day DDD track at SkillsMatter", "url": "https://dannorth.net/blog/one-day-ddd-track-at-skillsmatter/", "published_at": "2009-06-15T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5e870189", "title": "I'll be Learning to Learn at the Better Software conference", "url": "https://dannorth.net/blog/ill-be-learning-to-learn-at-the-better-software-conference/", "published_at": "2009-06-02T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5f6aca4d", "title": "JAOO Australia", "url": "https://dannorth.net/blog/jaoo-australia/", "published_at": "2009-04-24T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec5ffd68e3", "title": "RSpec book in beta", "url": "https://dannorth.net/blog/rspec-book-in-beta/", "published_at": "2009-04-24T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec605d5e13", "title": "The End of Endotesting?", "url": "https://dannorth.net/blog/the-end-of-endotesting/", "published_at": "2008-09-14T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec61044583", "title": "JBehave 2.0 is live!", "url": "https://dannorth.net/blog/jbehave-20-is-live/", "published_at": "2008-09-07T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec61dab68c", "title": "Let your examples flow", "url": "https://dannorth.net/blog/let-your-examples-flow/", "published_at": "2008-06-30T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6213c927", "title": "Learning to Lean", "url": "https://dannorth.net/blog/learning-to-lean/", "published_at": "2008-06-28T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec62416de8", "title": "Raizing money for Leukaemia Research", "url": "https://dannorth.net/blog/raising-money-for-leukaemia-research/", "published_at": "2008-06-18T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec63195d6b", "title": "Hacked!", "url": "https://dannorth.net/blog/hacked/", "published_at": "2008-05-25T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec63c59029", "title": "Better Best Practices at ExpertZone Stockholm", "url": "https://dannorth.net/blog/better-best-practices-at-expertzone-stockholm/", "published_at": "2008-04-01T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6427af6f", "title": "Better Best Practices at Øredev", "url": "https://dannorth.net/blog/better-best-practices-at-oredev/", "published_at": "2008-03-23T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec64ef176c", "title": "Awesome Acceptance Testing at SPA 2008", "url": "https://dannorth.net/blog/awesome-acceptance-testing-at-spa-2008/", "published_at": "2008-02-22T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6582a244", "title": "Goal-oriented vocabulary - saying what you mean", "url": "https://dannorth.net/blog/goal-oriented-vocabulary/", "published_at": "2008-02-12T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec65dfc0c7", "title": "Debian breaks on Virtuozzo VPS", "url": "https://dannorth.net/blog/debian-breaks-on-virtuozzo-vps/", "published_at": "2007-12-14T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec66a09b48", "title": "Empty rooms", "url": "https://dannorth.net/blog/empty-rooms/", "published_at": "2007-10-09T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec674d9489", "title": "Upcoming events", "url": "https://dannorth.net/blog/upcoming-events/", "published_at": "2007-09-10T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec67e54fbf", "title": "Virtual mailboxes with courier-imap and postfix", "url": "https://dannorth.net/blog/virtual-mailboxes-with-courier-imap-and-postfix/", "published_at": "2007-09-09T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6871b044", "title": "A Classic Introduction to SOA", "url": "https://dannorth.net/blog/classic-soa/", "published_at": "2007-09-02T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec68cce7e6", "title": "SOA for the rest of us", "url": "https://dannorth.net/blog/soa-for-the-rest-of-us/", "published_at": "2007-09-02T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec69941980", "title": "Two flavours of BDD, or .net gets behaviour-driven", "url": "https://dannorth.net/blog/two-flavours-of-bdd/", "published_at": "2007-06-27T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6a59b209", "title": "Catching up", "url": "https://dannorth.net/blog/catching-up/", "published_at": "2007-06-19T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6a7dc5f7", "title": "Introducing RBehave", "url": "https://dannorth.net/blog/introducing-rbehave/", "published_at": "2007-06-17T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6af69e09", "title": "Upcoming Talks", "url": "https://dannorth.net/blog/upcoming-talks/", "published_at": "2007-02-28T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6b8f7898", "title": "Monkey business value", "url": "https://dannorth.net/blog/monkey-business-value/", "published_at": "2007-02-15T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6b9bee58", "title": "Behaviour-driven stories", "url": "https://dannorth.net/blog/behaviour-driven-stories/", "published_at": "2007-02-12T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6baab675", "title": "Tagged", "url": "https://dannorth.net/blog/tagged/", "published_at": "2007-02-12T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6bbba3a6", "title": "What's in a Story?", "url": "https://dannorth.net/blog/whats-in-a-story/", "published_at": "2007-02-11T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6c739eda", "title": "Outcomes over Features: the fifth agile value?", "url": "https://dannorth.net/blog/outcomes-over-features-the-fifth-agile-value/", "published_at": "2006-10-28T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6ce15a8e", "title": "Article: Introducing Behaviour-Driven Development", "url": "https://dannorth.net/blog/article-introducing-behaviour-driven-development/", "published_at": "2006-10-20T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6d44eb75", "title": "Introducing BDD", "url": "https://dannorth.net/blog/introducing-bdd/", "published_at": "2006-09-20T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6d77db38", "title": "Learning to learn", "url": "https://dannorth.net/blog/learning-to-learn/", "published_at": "2006-06-25T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6e4efc13", "title": "How quickly can you evolve?", "url": "https://dannorth.net/blog/how-quickly-can-you-evolve/", "published_at": "2006-06-19T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec6f4c3e92", "title": "There's more to BDD than evolving TDD", "url": "https://dannorth.net/blog/theres-more-to-bdd-than-evolving-tdd/", "published_at": "2006-06-04T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec70354e1e", "title": "How simple is too simple?", "url": "https://dannorth.net/blog/how-simple-is-too-simple/", "published_at": "2006-05-28T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec71320069", "title": "Are you ready for the truth?", "url": "https://dannorth.net/blog/are-you-ready-for-the-truth/", "published_at": "2006-05-09T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec720fd1c0", "title": "Speaking at Expo-C", "url": "https://dannorth.net/blog/speaking-at-expo-c/", "published_at": "2006-04-24T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec727e2d74", "title": "Ruby session at ACCU 2006", "url": "https://dannorth.net/blog/ruby-session-at-accu-2006/", "published_at": "2006-04-21T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec7298a561", "title": "What's so hard about Event-Driven Programming?", "url": "https://dannorth.net/blog/whats-so-hard-about-event-driven-programming/", "published_at": "2006-04-09T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec738287f0", "title": "Continuous Build is not Continuous Integration", "url": "https://dannorth.net/blog/continuous-build-is-not-continuous-integration/", "published_at": "2006-03-22T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec738c8449", "title": "BDD article published in Better Software magazine", "url": "https://dannorth.net/blog/bdd-article-published-in-better-software-magazine/", "published_at": "2006-03-19T00:00:00+00:00" }, { "id": "01a08767-a447-70c3-a2bb-b8ec742c0416", "title": "BDD with intent", "url": "https://dannorth.net/blog/bdd-with-intent/", "published_at": "2006-02-09T00:00:00+00:00" } ] posts Claim your blog
Back to dannorth.net
Blog · corpus.blog/blogs/dannorth.net/posts

dannorth.net

dannorth.net

2025

2024

2023

2022

2021

2020

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009

2008

2007

2006