41554 blogs · [ { "id": "01a0821c-dbc9-7290-83dd-178bdc8f0b5f", "title": "About this website", "url": "https://jhannes.github.io/about/", "published_at": "2024-01-23T21:48:32+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bdd782d81", "title": "Resurrected", "url": "https://jhannes.github.io/2024/01/23/resurrected/", "published_at": "2024-01-23T07:53:13+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bde0e1b8b", "title": "Under construction", "url": "https://jhannes.github.io/2024/01/16/under-construction/", "published_at": "2024-01-16T07:53:13+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bde92d4f3", "title": "OpenID Connect 3: Slack can be the identity hub of small organizations", "url": "https://jhannes.github.io/2019/03/01/openid-connect-3-slack-can-be-the-identity-hub-of-small-organizations/", "published_at": "2019-03-01T14:15:42+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bdf866e64", "title": "OpenID Connect 2: Why I ❤ ID-porten", "url": "https://jhannes.github.io/2019/02/26/openid-connect-2-why-i-love-id-porten/", "published_at": "2019-02-25T22:40:00+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bdfb84dd6", "title": "OpenID Connect 1: Microsoft Azure Active Directory", "url": "https://jhannes.github.io/2019/02/25/openid-connect-1-microsoft-azure-active-directory/", "published_at": "2019-02-25T09:58:53+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be0347f00", "title": "We're not good enough - and that's okay (Norwegian)", "url": "https://jhannes.github.io/2018/10/04/were-not-good-enough-and-thats-okay-norwegian/", "published_at": "2018-10-04T19:39:43+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be1336add", "title": "Dirty Code Monday!", "url": "https://jhannes.github.io/2018/07/01/dirty-code-monday/", "published_at": "2018-07-01T20:35:02+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be1fb115b", "title": "A canonical XML test", "url": "https://jhannes.github.io/2018/06/28/a-canonical-xml-test/", "published_at": "2018-06-28T14:48:10+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be26bb957", "title": "How to write better code", "url": "https://jhannes.github.io/2018/06/26/how-to-write-better-code/", "published_at": "2018-06-26T14:35:54+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be2ec5098", "title": "Forget about Clean Code, let's embrace Compassionate Code", "url": "https://jhannes.github.io/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/", "published_at": "2018-06-24T19:03:49+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be38b7389", "title": "Bør Norge eksportere velferdstjenester? Jeg intervjuer Oslos finansbyråd neste fredag", "url": "https://jhannes.github.io/2018/05/29/bor-norge-eksportere-velferdstjenester-jeg-intervjuer-oslos-finansbyrad-neste-fredag/", "published_at": "2018-05-29T12:45:33+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be42fb209", "title": "Teknologiledelse handler om å se menneskene - jeg intervjuer IT-direktør Torbjørn Larsen i NAV", "url": "https://jhannes.github.io/2018/05/24/teknologiledelse-handler-om-a-se-menneskene-jeg-intervjuer-it-direktor-torbjorn-larsen-i-nav/", "published_at": "2018-05-24T18:36:30+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be4fc11b3", "title": "A wicked Java trick to make the JVM forget to check exceptions", "url": "https://jhannes.github.io/2018/05/15/a-wicked-java-trick-to-make-the-jvm-forget-to-check-exceptions/", "published_at": "2018-05-15T13:45:19+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be5d74fe2", "title": "Fremtiden vi bygger med Software", "url": "https://jhannes.github.io/2017/12/31/fremtiden-vi-bygger-med-software/", "published_at": "2017-12-31T10:55:33+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be6456757", "title": "The same risks in every projects", "url": "https://jhannes.github.io/2017/11/17/the-same-risks-in-every-projects/", "published_at": "2017-11-17T11:48:42+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be6d858f8", "title": "Privacy concerns everywhere, but don't panic!", "url": "https://jhannes.github.io/2017/10/21/privacy-concerns-everywhere-but-dont-panic/", "published_at": "2017-10-21T09:03:21+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be77a2abb", "title": "Using Trello and Google Forms to organize a conference", "url": "https://jhannes.github.io/2017/09/28/using-trello-and-google-forms-to-organize-a-conference/", "published_at": "2017-09-28T06:32:05+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be7c8c98a", "title": "How I learned to love GDPR and so can you", "url": "https://jhannes.github.io/2017/09/07/how-i-learned-to-love-gdpr-and-so-can-you/", "published_at": "2017-09-07T21:35:32+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be8c058b2", "title": "Deliver early without sleepless nights", "url": "https://jhannes.github.io/2017/04/21/deliver-early-without-sleepless-nights/", "published_at": "2017-04-21T05:02:36+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be94e2d99", "title": "\"No - you don't understand...\"", "url": "https://jhannes.github.io/2016/10/21/no-you-dont-understand/", "published_at": "2016-10-21T11:43:25+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be989c48f", "title": "What mobile strategy is best: Native or Hybrid?", "url": "https://jhannes.github.io/2016/10/07/what-mobile-strategy-is-best-native-or-hybrid/", "published_at": "2016-10-07T06:18:36+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be9a1d6c8", "title": "Welcome to the Mobile Era", "url": "https://jhannes.github.io/2016/10/04/welcome-to-the-mobile-era/", "published_at": "2016-10-04T08:55:36+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178be9ae5abf", "title": "Computer vision for Java developers", "url": "https://jhannes.github.io/2016/09/13/computer-vision-for-java-developers/", "published_at": "2016-09-13T08:50:49+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bea7becf1", "title": "Hva burde egentlig et norsk IT-prosjekt koste?", "url": "https://jhannes.github.io/2016/02/11/hva-burde-egentlig-et-norsk-it-prosjekt-koste/", "published_at": "2016-02-11T18:56:52+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178beb3ffcd8", "title": "Er IT-prosjektenes tid forbi?", "url": "https://jhannes.github.io/2015/10/09/er-it-prosjektenes-tid-forbi/", "published_at": "2015-10-09T18:24:57+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bec2ede52", "title": "Are you getting worked up over code duplication?", "url": "https://jhannes.github.io/2015/06/10/are-you-getting-worked-up-over-code-duplication/", "published_at": "2015-06-09T22:22:37+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bed00e9bd", "title": "The key is empowering the people who do the work", "url": "https://jhannes.github.io/2015/04/29/the-key-is-empowering-the-people-who-do-the-work/", "published_at": "2015-04-29T20:04:44+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bed597301", "title": "Planning software development with a time machine", "url": "https://jhannes.github.io/2015/04/15/planning-software-development-with-a-time-machine/", "published_at": "2015-04-15T09:25:35+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bee3fbc0e", "title": "Getting excited about your project with a news headline from the future", "url": "https://jhannes.github.io/2015/04/08/getting-excited-about-your-project-with-a-news-headline-from-the-future/", "published_at": "2015-04-08T08:15:02+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bef095c14", "title": "Replanning your project with a time machine", "url": "https://jhannes.github.io/2015/03/27/replanning-your-project-with-a-time-machine/", "published_at": "2015-03-27T10:55:10+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bef1ff2b7", "title": "Software 2015 i regi av DND", "url": "https://jhannes.github.io/2015/01/22/software-2015-i-regi-av-dnd/", "published_at": "2015-01-22T09:19:10+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178beff683b8", "title": "Interactive REST hacking with Sublime Text and RESTer", "url": "https://jhannes.github.io/2015/01/04/interactive-rest-hacking-with-sublime-text-and-rester/", "published_at": "2015-01-04T21:32:38+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf03a6e89", "title": "Promises you can trust", "url": "https://jhannes.github.io/2014/12/02/promises-you-can-trust/", "published_at": "2014-12-02T07:02:04+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf046cb98", "title": "The reuse dilemma", "url": "https://jhannes.github.io/2014/10/10/the-reuse-dilemma/", "published_at": "2014-10-10T05:14:11+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf072e81c", "title": "Dead simple configuration", "url": "https://jhannes.github.io/2014/10/02/dead-simple-configuration/", "published_at": "2014-10-02T05:09:21+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf098637b", "title": "Turning a new corner", "url": "https://jhannes.github.io/2014/08/06/turning-a-new-corner/", "published_at": "2014-08-06T07:34:23+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf10a2b1e", "title": "The lepidopterist's curse: Playing with java.time", "url": "https://jhannes.github.io/2014/07/30/the-lepidopterists-curse-playing-with-java-time/", "published_at": "2014-07-30T08:10:13+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf1a21e7c", "title": "C# tricks: Securing your controllers", "url": "https://jhannes.github.io/2014/07/26/c-tricks-securing-your-controllers/", "published_at": "2014-07-26T11:47:36+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf25b9a43", "title": "The madness of layered architecture", "url": "https://jhannes.github.io/2014/07/10/the-madness-of-layered-architecture/", "published_at": "2014-07-10T07:39:32+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf2d17bb7", "title": "A canonical web test in NodeJS", "url": "https://jhannes.github.io/2014/07/03/a-canonical-web-test-in-nodejs/", "published_at": "2014-07-03T11:52:19+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf2df03cd", "title": "Pair programming with Sankalpa", "url": "https://jhannes.github.io/2014/06/27/pair-programming-with-sankalpa/", "published_at": "2014-06-27T05:39:37+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf37811fb", "title": "The economics of reuse", "url": "https://jhannes.github.io/2014/03/24/the-economics-of-reuse/", "published_at": "2014-03-24T07:28:55+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf3d2519f", "title": "Estimation by stuffing things into boxes", "url": "https://jhannes.github.io/2014/03/17/estimation-by-stuffing-things-into-boxes/", "published_at": "2014-03-17T07:48:56+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf40719a7", "title": "C# Tricks: Slimming down your controllers", "url": "https://jhannes.github.io/2014/02/07/c-tricks-slimming-down-your-controllers/", "published_at": "2014-02-07T06:42:19+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf468b447", "title": "Horizontal reuse in JavaScript and C#", "url": "https://jhannes.github.io/2014/02/01/horizontal-reuse-in-javascript-and-c/", "published_at": "2014-02-01T21:27:01+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf4b9b046", "title": "Using pair programming to combat project waste", "url": "https://jhannes.github.io/2013/12/13/using-pair-programming-to-combat-project-waste/", "published_at": "2013-12-13T06:51:35+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf501b54f", "title": "Why I stopped using Spring", "url": "https://jhannes.github.io/2013/12/09/why-i-stopped-using-spring/", "published_at": "2013-12-09T05:51:01+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf5e40189", "title": "Can we learn to restrict our work to a budget?", "url": "https://jhannes.github.io/2013/12/06/can-we-learn-to-restrict-our-work-to-a-budget/", "published_at": "2013-12-06T06:17:57+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf619a86b", "title": "Lean architecture", "url": "https://jhannes.github.io/2013/12/02/lean-architecture/", "published_at": "2013-12-02T06:13:34+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf6c04a13", "title": "Humble architects", "url": "https://jhannes.github.io/2013/11/27/humble-architects/", "published_at": "2013-11-27T05:13:49+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf77a0aae", "title": "Announcing EAXY: Making XML easier in Java", "url": "https://jhannes.github.io/2013/11/05/announcing-eaxy-making-xml-easier-in-java/", "published_at": "2013-11-05T13:15:05+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf80a832a", "title": "Micro-Scrum: A stamp-sized version of Scrum", "url": "https://jhannes.github.io/2013/10/20/micro-scrum-a-stamp-sized-version-of-scrum/", "published_at": "2013-10-20T14:09:36+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf8e1fdb7", "title": "Having fun with Git", "url": "https://jhannes.github.io/2013/10/09/having-fun-with-git/", "published_at": "2013-10-09T08:30:12+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bf9ce64ba", "title": "Setting up Git and TortoiseGit for Bitbucket - step by step", "url": "https://jhannes.github.io/2013/10/04/setting-up-git-and-tortoisegit-for-bitbucket-step-by-step/", "published_at": "2013-10-04T12:35:43+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfa35c3bb", "title": "Offensive programming", "url": "https://jhannes.github.io/2013/09/25/offensive-programming/", "published_at": "2013-09-25T19:56:14+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfa4316b2", "title": "A canonical web test", "url": "https://jhannes.github.io/2013/09/16/a-canonical-web-test/", "published_at": "2013-09-16T06:45:33+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfb1cb1ad", "title": "Om å løse alt bortsett fra det egentlige problemet", "url": "https://jhannes.github.io/2013/09/02/om-a-lose-alt-bortsett-fra-det-egentlige-problemet/", "published_at": "2013-09-02T21:14:46+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfb8f8091", "title": "Only four roles", "url": "https://jhannes.github.io/2013/05/20/only-four-roles/", "published_at": "2013-05-20T06:30:13+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfc77d1a4", "title": "A jQuery inspired server side view model for Java", "url": "https://jhannes.github.io/2013/05/07/a-jquery-inspired-server-side-view-model-for-java/", "published_at": "2013-05-07T06:33:13+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfcfddf1c", "title": "Scrum as an impediment to Agility", "url": "https://jhannes.github.io/2013/04/24/scrum-as-an-impediment-to-agility/", "published_at": "2013-04-24T08:07:26+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfd66664a", "title": "How to start an agile project", "url": "https://jhannes.github.io/2013/04/08/how-to-start-an-agile-project/", "published_at": "2013-04-08T09:57:29+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfde784ca", "title": "A canonical Repository test", "url": "https://jhannes.github.io/2013/03/08/a-canonical-repository-test/", "published_at": "2013-03-08T07:31:58+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bfe9347ab", "title": "Sweet C# test syntax", "url": "https://jhannes.github.io/2013/02/22/sweet-c-test-syntax/", "published_at": "2013-02-22T11:23:48+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178bff3270c2", "title": "Better Scrum sprint planning - look to the demo", "url": "https://jhannes.github.io/2013/02/08/better-scrum-sprint-planning-look-to-the-demo/", "published_at": "2013-02-08T09:28:06+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c00016f33", "title": "Let's reinvent more wheels!", "url": "https://jhannes.github.io/2013/01/31/reinventing-wheels/", "published_at": "2013-01-31T10:21:48+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c00069881", "title": "If you're an architect, knowledge is your enemy", "url": "https://jhannes.github.io/2012/12/13/if-youre-an-architect-knowledge-is-your-enemy/", "published_at": "2012-12-13T19:51:43+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c00a3118c", "title": "The Rainbow Sprint Plan", "url": "https://jhannes.github.io/2012/10/24/the-rainbow-sprint-plan/", "published_at": "2012-10-24T16:40:57+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0142e2dd", "title": "Loud failures are better than silent, faulty behavior", "url": "https://jhannes.github.io/2012/10/12/fail-loudly/", "published_at": "2012-10-12T08:11:05+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0179aace", "title": "How I debrief workshops", "url": "https://jhannes.github.io/2012/09/26/how-i-debrief-workshops/", "published_at": "2012-09-26T11:44:42+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c01bd9cb6", "title": "Digital natives", "url": "https://jhannes.github.io/2012/07/24/digital-natives/", "published_at": "2012-07-24T10:59:37+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c01fe809c", "title": "Teaser: Bare-knuckle SOA", "url": "https://jhannes.github.io/2012/07/19/teaser-bare-knuckle-soa/", "published_at": "2012-07-19T11:39:50+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c02dd6787", "title": "How changing Java package names transformed my system architecture", "url": "https://jhannes.github.io/2012/07/10/how-changing-java-package-names-transformed-my-system-architecture/", "published_at": "2012-07-10T14:41:50+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c030d68bd", "title": "Use Scrum even if you don't want to be Agile", "url": "https://jhannes.github.io/2012/05/29/use-scrum-even-if-you-dont-want-to-be-agile/", "published_at": "2012-05-29T13:10:07+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c03c93082", "title": "What is a \"commitment\" anyway?", "url": "https://jhannes.github.io/2012/03/19/what-is-a-commitment-anyway/", "published_at": "2012-03-19T12:44:27+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c04315421", "title": "How to GROW a user story", "url": "https://jhannes.github.io/2012/03/12/how-to-grow-a-user-story/", "published_at": "2012-03-12T11:43:54+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c050b50d6", "title": "The Architecture Spike Kata", "url": "https://jhannes.github.io/2011/12/22/the-architecture-spike-kata/", "published_at": "2011-12-22T13:28:09+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c060634ae", "title": "How to start a Coding Dojo", "url": "https://jhannes.github.io/2011/12/18/how-to-start-a-coding-dojo/", "published_at": "2011-12-18T20:23:10+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c06123ab6", "title": "Experience Agile Programming", "url": "https://jhannes.github.io/2011/11/28/experience-agile-programming/", "published_at": "2011-11-28T08:47:15+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c06f2e87d", "title": "What's your MyScrum?", "url": "https://jhannes.github.io/2011/11/28/whats-your-myscrum/", "published_at": "2011-11-27T22:46:35+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0758d80e", "title": "How extreme is extreme programming?", "url": "https://jhannes.github.io/2011/10/15/how-extreme-is-extreme-programming/", "published_at": "2011-10-15T16:41:41+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c075f435e", "title": "Can we replace requirement specification with better understanding?", "url": "https://jhannes.github.io/2011/09/23/better-understanding/", "published_at": "2011-09-23T16:39:30+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c07fb32ae", "title": "What will Java 7 mean for you?", "url": "https://jhannes.github.io/2011/08/08/what-will-java-7-mean-for-you/", "published_at": "2011-08-07T22:35:38+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c089853d4", "title": "Real time coding competition with Extreme Startup", "url": "https://jhannes.github.io/2011/06/22/real-time-coding-competition-with-extreme-startup/", "published_at": "2011-06-22T21:45:42+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0950db9f", "title": "Cyber Dojo and Extreme Startup", "url": "https://jhannes.github.io/2011/06/18/cyber-dojo-and-extreme-startup/", "published_at": "2011-06-18T21:43:58+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0a37e817", "title": "Howto use Pageant and Putty", "url": "https://jhannes.github.io/2011/06/15/howto-use-pageant-and-putty/", "published_at": "2011-06-15T10:55:15+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0aa7e423", "title": "Tell a story with your project plan", "url": "https://jhannes.github.io/2011/05/25/tell-a-story-with-your-project-plan/", "published_at": "2011-05-25T11:23:32+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0acab56d", "title": "Agile in Europe", "url": "https://jhannes.github.io/2011/05/09/agile-in-europe/", "published_at": "2011-05-09T21:29:36+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0ad3a206", "title": "The value my system delivers: Keeping my beer cool", "url": "https://jhannes.github.io/2011/04/26/the-other-you/", "published_at": "2011-04-26T20:07:21+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0b88b53d", "title": "Visualize your work", "url": "https://jhannes.github.io/2011/04/12/visualize-your-work/", "published_at": "2011-04-12T12:54:04+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0c2446dc", "title": "Three tricks to get better pair programming", "url": "https://jhannes.github.io/2011/04/10/three-tricks-to-get-better-pair-programming/", "published_at": "2011-04-10T12:19:36+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0c672f84", "title": "Waterfall explained in terms of agile", "url": "https://jhannes.github.io/2011/02/08/waterfall-explained-in-terms-of-agile/", "published_at": "2011-02-08T05:21:15+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0d0159e9", "title": "Pair programming = project reliability", "url": "https://jhannes.github.io/2011/02/04/pair-programming-project-reliability/", "published_at": "2011-02-04T08:20:46+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0dd59a38", "title": "Pair programming research misses the most important point", "url": "https://jhannes.github.io/2011/02/02/pair-programming-research-misses-the-most-important-point/", "published_at": "2011-02-02T06:56:56+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0e48cabc", "title": "Refactoring: The Good, The Sad and The Ugly", "url": "https://jhannes.github.io/2011/01/30/refactoring-the-good-the-sad-and-the-ugly/", "published_at": "2011-01-30T21:56:31+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0f0385d7", "title": "Retrospective techniques", "url": "https://jhannes.github.io/2010/11/28/retrospective-techniques/", "published_at": "2010-11-28T00:48:29+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0fd9e6f3", "title": "The effective product owner", "url": "https://jhannes.github.io/2010/11/14/the-effective-product-owner/", "published_at": "2010-11-14T20:04:54+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c0feb7097", "title": "This dependency injection madness must end!", "url": "https://jhannes.github.io/2010/11/10/this-dependency-injection-madness-must-end/", "published_at": "2010-11-10T19:14:50+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c10de4942", "title": "Video: No-red refactoring", "url": "https://jhannes.github.io/2010/11/05/no-red-refactoring/", "published_at": "2010-11-05T05:54:20+00:00" }, { "id": "01a0821c-dbc9-7290-83dd-178c114642ec", "title": "How to succeed on you agile project", "url": "https://jhannes.github.io/2010/10/29/how-to-succeed-on-you-agile-project/", "published_at": "2010-10-29T12:28:22+00:00" } ] posts Claim your blog
Back to Johannes Brodwall
Blog · corpus.blog/blogs/jhannes.github.io/posts

Johannes Brodwall

jhannes.github.io

2024

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010