This resource is new and under continual improvement. Please let us know if you experience any bugs or issues.

Agile Architecture aka Emergent Architecture [TOP]

“You don’t need to start with the Login Page” http://blog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-first/
Coaching the Agile Architect http://www.leadingagile.com/2014/04/coaching-agile-architect/
Evolutionary Architecture – Neal Ford (a series) http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=evolutionary+architecture+emergent+design
Hexagonal Architecture – more on the ideas of using adapters in front of outside code (GUI, 3rd party libraries etc) http://alistair.cockburn.us/Hexagonal+architecture
How the Guardian successfully moved domain to www.theguardian.com https://www.theguardian.com/info/developer-blog/2014/feb/18/how-the-guardian-successfully-moved-domain
James Shore on Continuous Design http://www.martinfowler.com/ieeeSoftware/continuousDesign.pdf [PDF warning!]
Pimp my Architecture – Dan North (Presentation) http://www.infoq.com/presentations/north-pimp-my-architecture
Principles for the Agile Architect http://www.agilearchitect.org/agile/principles.htm
Simplicity, The Way of the Unusual Architect – Dan North (Presentation) http://www.infoq.com/presentations/Simplicity-Architect
The Role of the Agile Architect http://www.agilearchitect.org/agile/role.htm
When Feature Flags Go Wrong https://www.infoq.com/articles/feature-flags-gone-wrong
Martin Fowler
Agile Architecture aka Emergent Architecture Books

Behaviour Driven Development aka Acceptance Test Driven aka Specification By Example [TOP]

A case study for BDD in improving throughput and collaboration https://cucumber.io/blog/2017/04/10/improving-throughput-and-collaboration
Aslak’s view of BDD https://cucumber.io/blog/2015/03/27/aslaks-view-of-bdd
Behaviour Driven Links Page http://lizkeogh.com/behaviour-driven-development/
Canopy – F# frictional webapp testing – goal make UI testing simple http://lefthandedgoat.github.io/canopy/
Cucumber anti-patterns (part one) https://cucumber.io/blog/2016/07/01/cucumber-antipatterns-part-one
Cucumber anti-patterns (part two) https://cucumber.io/blog/2016/08/31/cucumber-anti-patterns-part-two
Rules vs Examples (BDDX London 2014) https://speakerdeck.com/mattwynne/rules-vs-examples-bddx-london-2014
Stories, Rules and Examples – BDDX 2014 London https://speakerdeck.com/mattwynne/rules-vs-examples-bddx-london-2014
Three top tips for using Given When Then. https://theitriskmanager.wordpress.com/2016/08/09/three-top-tips-for-using-given-when-then/
Using Keywords to Support Behavior-Driven Development https://www.techwell.com/techwell-insights/2015/04/using-keywords-support-behavior-driven-development
Concepts
Tools
Behaviour Driven Development aka Acceptance Test Driven aka Specification By Example Books

Bugs [TOP]

0 Bugs Policy https://www.infoq.com/articles/0-bugs-policy
Bug Prediction Tool from Google http://google-engtools.blogspot.ca/2011/12/bug-prediction-at-google.html
Bug statistics are a waste of time https://gojko.net/2011/05/17/bug-statistics-are-a-waste-of-time/
Bugs help destroy Companies (aka zero bugs is possible) -Elisabeth Hendrickson http://testobsessed.com/2012/08/bugs-spread-disease/

Collaboration [TOP]

An alternative take on the ‘Driver’ and ‘Navigator’ roles in pair programming https://salfreudenberg.wordpress.com/2013/08/31/an-alternative-take-on-the-driver-and-navigator-roles-in-pair-programming/
Arlo Belshi – On Setting Up A Successful Pairing Environment http://arlobelshee.com/is-pair-programming-for-me/
Code Reviews Bad – Pair Programming Good http://www.solutionsiq.com/code-reviews-bad-pair-programming-good-or-dont-throw-it-over-the-wall-collaborate/
Creating the Motivation to Pair Program http://aaron.sanders.name/creating-the-motivation-to-pair-program/
Cross Functional Pair Programming http://www.solutionsiq.com/experience-design-and-cross-functional-pairing/?ref=dzone
Evaluating performances of pair designing in industry http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.101.9212&rep=rep1&type=pdf
Myths of Collective Code Ownership https://agilepainrelief.com/notesfromatooluser/2008/05/mythbusting-c.html#.Vaex3vlViko
Pair Programming Chapter from Shore and Warden’s book – Agile Development http://www.jamesshore.com/Agile-Book/pair_programming.html
Pair Programming Considered Extremely Beneficial http://techcrunch.com/2012/03/17/pair-programming-considered-extremely-beneficial/
Pair Programming Costs and Benefits http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF
Pair programming improves software quality in industrial companies http://sci.aalto.fi/en/current/current_archive/news/2011-12-19-003/
Pair Programming Lessons from Improv http://blog.gdinwiddie.com/2014/12/31/pair-programming-lessons-from-improv/
PairHero – an Eclipse Pluigin that encourages Pairing http://www.happyprog.com/pairhero/
Pairing, A Personal Journey http://stevenjackson.github.io/2013/02/09/pairing/
Pairing, Competence, and Recognition http://agileotter.blogspot.ca/2011/01/pairing-competence-and-recognition.html
So what do the Driver and Navigator really do? https://salfreudenberg.wordpress.com/2013/08/17/so-what-do-the-driver-and-navigator-really-do/
Two Years of Pair Programming http://www.cholick.com/entry/show/281
Undesirable pair programming behaviours https://salfreudenberg.wordpress.com/2013/10/04/undesirable-pair-programming-behaviours-the-thrasher-and-the-divider/
Collaboration Books

Continuous Delivery and Deployment [TOP]

Benefits of Continuous Testing http://www.infoq.com/news/2015/04/benefits-continuous-testing
Continuous Delivery and the Perils of Feature Branching http://continuousdelivery.com/2011/07/on-dvcs-continuous-integration-and-feature-branches/
Continuous Delivery Coding Patterns: Latent-to-Live Code & Forward Compatible Interim Versions https://www.infoq.com/articles/continuous-delivery-coding-patterns
Continuous Delivery in a .NET World http://adam.goucher.ca/?p=1844
Continuous Delivery: The Value Proposition – Jez Humble https://www.informit.com/articles/article.aspx?p=1641923
Continuous Deployment at Instagram https://engineering.instagram.com/continuous-deployment-at-instagram-1e18548f01d1#.cssk7lhxw
Continuous deployment for mission-critical applications – Eric Ries http://www.startuplessonslearned.com/2009/12/continuous-deployment-for-mission.html
Continuous deployment in 5 easy steps by Eric Ries http://radar.oreilly.com/2009/03/continuous-deployment-5-eas.html
How Netflix Deploys Code http://www.infoq.com/news/2013/06/netflix
What are the technical practices of a Lean Startup? http://www.quora.com/What-are-the-technical-practices-of-a-Lean-Startup
Example from Real World
Continuous Delivery and Deployment Books

Continuous Integration and Setting Up Builds [TOP]

It’s Not CI, It’s Just CI Theatre https://www.gocd.org/2017/05/16/its-not-CI-its-CI-theatre/
Keep your code spotless with Gradle https://github.com/diffplug/spotless
Key Principles for Reducing Continuous Integration Build Time http://blogs.agilefaqs.com/2014/10/03/key-principles-for-reducing-continuous-integration-build-time/
Why Distributed CI is the Logical Next Step http://qualityswdev.com/2010/12/15/why-distributed-ci-is-the-logical-next-step/
.NET

Database Change Tools [TOP]

Agile Database Tools and Scripts http://www.agiledata.org/essays/tools.html
CFengine – Open Source Configuration Management System http://cfengine.com/
Database Change Management Best Practices http://www.innovartis.co.uk/Automated_Database_Change_Management_Whitepaper.htm
LiquidBase – Source Control and Refactoring for Databases http://www.liquibase.org/
Perspectives in Building SOLID Databases http://ledgersmbdev.blogspot.ca/2013/01/building-solid-databases-openclosed.html?m=1

Design Patterns [TOP]

Design Patterns Books

Engineering Practices at Well Known Companies [TOP]

Continuous Integration at Google http://eclipsecon.org/2013/sites/eclipsecon.org.2013/files/2013-03-24%20Continuous%20Integration%20at%20Google%20Scale.pdf [PDF warning!]
EricGu – MS – getting to Zero bugs http://blogs.msdn.com/b/ericgu/archive/2015/02/06/no-bugs-journey-episode-1-inventory.aspx
Ford draws on Pivotal to reshape developer culture http://www.cio.com/article/3016017/developer/ford-draws-on-pivotal-to-reshape-developer-culture.html
Google Is 2 Billion Lines of Code—And It’s All in One Place https://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place/
How does Etsy manage development and operations? https://codeascraft.com/2011/02/04/how-does-etsy-manage-development-and-operations/
What kind of automated testing does Facebook do? http://www.quora.com/What-kind-of-automated-testing-does-Facebook-do
Yahoo’s Engineers Move to Coding Without a Net http://spectrum.ieee.org/view-from-the-valley/computing/software/yahoos-engineers-move-to-coding-without-a-net
Zero Bugs at Microsoft

Evolutionary Databases [TOP]

A Developers’ Guide to Refactoring Databases https://www.simple-talk.com/opinion/opinion-pieces/a-developers-guide-to-refactoring-databases/
Evolutionary Database Design http://martinfowler.com/articles/evodb.html
Evolutionary/Agile Database Best Practices http://agiledata.org/essays/bestPractices.html
Refactoring Databases : Evolutionary Database Design http://www.databaserefactoring.com/
Why I do not use Stored Procedures (controversial) http://codebetter.com/jeremymiller/2006/05/25/why-i-do-not-use-stored-procedures/

General Agile Engineering Ideas [TOP]

Avoiding Mini-waterfalls http://blog.gdinwiddie.com/2012/11/01/avoiding-mini-waterfalls/
Good Story describing life on a team doing many Agile Engineering practices http://codetojoy.blogspot.ca/2007/02/im-believer.html

Living Well with Legacy Code [TOP]

Characterization Testing https://michaelfeathers.silvrback.com/characterization-testing
Cleaning Code – Tools and Techniques for Legacy Restoration Projects http://www.infoq.com/presentations/large-legacy-techniques-tools
Code Retreat http://coderetreat.org/
Demystifying the Dependency Inversion Principle http://blog.thecodewhisperer.com/permalink/consequences-of-dependency-inversion-principle/
How To Do Large Scale Refactoring http://www.infoq.com/news/2010/08/large-scale-refactoring
Leapfrogging Online Payments & Burying Tech Debt http://www.infoq.com/presentations/refactoring-erlang
Legacy Code Rocks (entire blog) http://legacycoderocks.libsyn.com/
Pragmatic Techniques for Maintaining a Legacy Application http://www.infoq.com/articles/Pragmatic-Legacy-App-Maintenance
Refactoring Legacy Applications: A Case Study http://www.infoq.com/articles/refactoring-legacy-applications
Seventeen Secrets of the Great Legacy Makeover Masters http://www.infoq.com/presentations/17-Secrets-Legacy-Code
Strategies for Effectively Managing Legacy Systems http://www.infoq.com/presentations/strategies-for-effectively-managing-legacy-systems
The Inverse of IoC is Control http://comoyo.github.io/blog/2013/02/06/the-inverse-of-ioc-is-control/
The Pain of Implicit Dependencies http://blog.thecodewhisperer.com/permalink/the-pain-of-implicit-dependencies/
What your tests don’t need to know will hurt you http://blog.thecodewhisperer.com/permalink/what-your-tests-dont-need-to-know-will-hurt-you/
Approval Tests
Living Well with Legacy Code Books

Mocks [TOP]

Argument about better use of Mocks https://www.destroyallsoftware.com/blog/2014/test-isolation-is-about-avoiding-mocks
Mocks https://cumulative-hypotheses.org/2015/11/03/mocks/
Pictures showing the different types of Mocks we create http://www.industriallogic.com/blog/mock-objects-pictures/
DotNet
Java

Pairing [TOP]

Alternative take on the ‘Driver’ and ‘Navigator’ roles in pair programming https://salfreudenberg.wordpress.com/2013/08/31/an-alternative-take-on-the-driver-and-navigator-roles-in-pair-programming/
Undesirable pair programming behaviours – The Thrasher and The Divider https://salfreudenberg.wordpress.com/2013/10/04/undesirable-pair-programming-behaviours-the-thrasher-and-the-divider/
What it’s Like to Pair for a Year https://medium.com/built-to-adapt/what-its-like-to-pair-for-a-year-86d048494324#.vljybna4o

Practice Tools [TOP]

Code Kata – One Developer’s Journey http://codekata.com/
Code Katas (practice problems) http://www.codekatas.org/
Coding Dojos http://codingdojo.org/
Online Coding Dojo for the Team http://cyber-dojo.org/dojo/index/EBDD22872D
Scrum By Example: The Team Learn How to Learn https://agilepainrelief.com/notesfromatooluser/2012/03/scrummaster-talesthe-team-learn-how-to-learn.html#.VcPh_vlViko
TDD Pracitice Problems site https://sites.google.com/site/tddproblems/
TDD Randori Session https://agilepainrelief.com/notesfromatooluser/2008/10/tdd-randori-session.html#.VcPi6flVikp
TDD Randori Workshop
The Coding Dojo Handbook https://leanpub.com/codingdojohandbook

Refactoring [TOP]

A Guide to Naming Variables https://a-nickels-worth.blogspot.ca/2016/04/a-guide-to-naming-variables.html
Embracing the Red Bar: Safely Refactoring Tests http://corgibytes.com/blog/2016/09/20/refactoring-against-the-red-bar/
I, J, and K Should Die http://blog.dmbcllc.com/i-j-and-k-should-die/
Refactoring To Patterns Catalog http://www.industriallogic.com/xp/refactoring/catalog.html
The Core 6 Refactorings http://arlobelshee.com/the-core-6-refactorings/
Workflows of Refactoring http://martinfowler.com/articles/workflowsOfRefactoring/
Refactoring Books

Software Craftsmanship [TOP]

Growing Object-Oriented Software, Guided by Tests http://hanalee.info/blog/growing-object-oriented-software-guided-by-tests.html
Software Craftsmanship Books

Source Control Branch Strategies and Their Side Effects [TOP]

Branch by Abstraction for dealing with the few complexities that crop up with working off of Trunk http://martinfowler.com/bliki/BranchByAbstraction.html
Branching by an abstraction in the trunk instead of branching via Source Control http://paulhammant.com/blog/branch_by_abstraction.html
Feature Branching in Source Control and Merge Hell http://martinfowler.com/bliki/FeatureBranch.html
Long Running Branches Considered Harmful https://blog.newrelic.com/2012/11/14/long-running-branches-considered-harmful/
Scaling Trunk Based Development http://paulhammant.com/2013/04/09/scaling-trunk-based-development/
Trunk Based Development a summary http://paulhammant.com/2013/04/05/what-is-trunk-based-development/
Example from Real World

Specification by Example - Tools [TOP]

Agile Test Tools – Spreadsheet https://docs.google.com/spreadsheets/d/1CTo4J8hUkl0hNUuYdFXG4NwDfN9cMlIM_06P0fe9kKQ/edit?hl=en&pli=1#gid=1
Cucumber https://cucumber.io/
FitNesse http://fitnesse.org/
SpecFlow http://www.specflow.org/

Static Analysis Tools [TOP]

.NET FxCop https://en.wikipedia.org/wiki/FxCop
C/C++ http://www.viva64.com/en/b/0245/
Codekvast – Finds truly dead code in Java and other JVM languages http://codekvast.crisp.se/
Error Prone http://errorprone.info/
Findbugs – Hueristic Analysis of Java http://findbugs.sourceforge.net/
JsHint http://jshint.com/
JsLint http://www.jslint.com/
NDepend https://en.wikipedia.org/wiki/NDepend
PMD supports: Java, JavaScript, PLSQL, Apache Velocity, XML, XSL https://pmd.github.io/

Technical Debt [TOP]

Jon Kern (Agile Manifesto Signatory) – Got Technical Debt? http://technicaldebt.com/got-technical-debt/
Scrum By Example: Stop Digging New Holes https://agilepainrelief.com/notesfromatooluser/2012/02/scrummaster-talesstop-digging-new-holes.html#.ValECPlViko
Sonar – a tool for gaining a first order understanding of code quality vs mess http://www.sonarsource.com/
Technical Debt – A Summary – Martin Fowler http://martinfowler.com/bliki/TechnicalDebt.html
Technical Debt for Managers http://www.infoq.com/articles/technical-debt-levison
Technical Debt Initiative https://www.agilealliance.org/resources/initiatives/technical-debt/
Technical Debt: Adding Math to the Metaphor http://reinertsenassociates.com/technical-debt-adding-math-metaphor/
Technical Wealth with Declan Wheelan http://legacycoderocks.libsyn.com/technical-wealth-with-declan-wheelan
The Agile Alliance Debt Analysis Model https://www.agilealliance.org/the-agile-alliance-debt-analysis-model/
The Human Cost of Tech Debt http://www.daedtech.com/human-cost-tech-debt/
Technical Debt Books

Test Driven Development [TOP]

A Visual Approach to Test-Driven Agile https://www.scrumalliance.org/community/articles/2015/september/a-visual-approach-to-test-driven-agile
Destroy all Software https://www.destroyallsoftware.com/screencasts
How TDD Can Work https://www.destroyallsoftware.com/blog/2014/tdd-straw-men-and-rhetoric
James Shore Let’s Play TDD – 200 webcasts of doing TDD on a real application http://www.jamesshore.com/Blog/Lets-Play
Keith Braithwaite – Measuring the effects of TDD http://www.infoq.com/presentations/measure-for-measure
Keith Braithwaite – TDD as if you meant it http://www.infoq.com/presentations/TDD-as-if-You-Meant-It
Micheal Feathers “The Deep Synergy Between Testability and Good Design” https://vimeo.com/15007792
Styles of Naming tests http://blog.orfjackal.net/2010/02/three-styles-of-naming-tests.html
TDD vs BDD http://blog.mattwynne.net/2012/11/20/tdd-vs-bdd/
Tell Don’t Ask http://martinfowler.com/bliki/TellDontAsk.html
Test Driving Unity a 3D game development tool with too much cohesion https://minnenratta.wordpress.com/2016/03/25/test-driving-a-unity-game/
Test-Driven Development as Pragmatic Deliberate Practice http://blog.jbrains.ca/permalink/test-driven-development-as-pragmatic-deliberate-practice
The payback of pairing with TDD http://anarchycreek.com/2009/05/26/how-tdd-and-pairing-increase-production/
The ROI of Test-Driven Development http://powersoftwo.agileinstitute.com/2012/08/the-roi-of-test-driven-development.html
We’re in this for the Money http://geepawhill.org/?p=31
Tutorials
Test Driven Development Books

Testing [TOP]

Agile Alliance Functional Test Tools https://docs.google.com/spreadsheets/d/1CTo4J8hUkl0hNUuYdFXG4NwDfN9cMlIM_06P0fe9kKQ/edit?hl=en&pli=1#gid=1
Agile Testing — The Agile Test Automation Pyramid http://www.velocitypartners.net/blog/2014/01/28/agile-testing-the-agile-test-automation-pyramid/
BugsZero @ Agile Open Northwest 2016 http://jbazuzicode.blogspot.ca/2016/02/bugszero-agile-open-northwest-2016.html
Buildbot and Intermittent Tests https://engineering.imvu.com/2011/01/19/buildbot-and-intermittent-tests/
Chaos Engineering Upgraded http://techblog.netflix.com/2015/09/chaos-engineering-upgraded.html
Common Mistakes in Test Automation http://www.thoughtworks.com/insights/blog/introducing-software-testing-cupcake-anti-pattern
Design for Testability http://blog.gdinwiddie.com/2012/05/16/design-for-testability/
Exploratory Testing Using Personas http://www.kohl.ca/2005/exploratory-testing-using-personas/
Functional Testing Tools List (Spreadsheet) https://docs.google.com/spreadsheets/d/1CTo4J8hUkl0hNUuYdFXG4NwDfN9cMlIM_06P0fe9kKQ/edit?hl=en&pli=1#gid=1
GUI Automation Patterns http://www.infoq.com/articles/gui-automation-patterns
How Agile Has Changed Test Management http://www.infoq.com/articles/agile-changed-test-management
How Netflix is Improving its fault tolerance http://techblog.netflix.com/2014/09/introducing-chaos-engineering.html
How we break things at Twitter: failure testing https://blog.twitter.com/2015/how-we-break-things-at-twitter-failure-testing
It’s Ok to Have a Test Column on Your Board https://www.rallydev.com/blog/agile/it-s-ok-have-test-column-your-board
Just Say No to More End-to-End Tests http://googletesting.blogspot.co.uk/2015/04/just-say-no-to-more-end-to-end-tests.html
Layers of Test Automation http://qa-matters.com/2014/12/28/layers-of-test-automation/
Lisa Crispin’s summary of effective test automation http://lisacrispin.com/downloads/AgileTDAutomation.pdf [PDF warning!]
Managing Successful Test Automation http://www.testthisblog.com/2013/04/managing-successful-test-automation.html
Page Object Pattern for Testing GUI applications (not just webapps) http://martinfowler.com/bliki/PageObject.html
Page Objects Refactored – SOLID steps to the Screenplay/Journey Pattern https://ideas.riverglide.com/page-objects-refactored-12ec3541990
Principles of Chaos Engineering http://www.principlesofchaos.org/
Robot Framework – The Unsung Hero Of Test Automation http://blog.xebia.com/robot-framework-the-unsung-hero-of-test-automation/
Testing is a Team Problem http://janetgregory.ca/testing-is-a-team-problem/
Using MindMaps to help testing process http://lisacrispin.com/2012/05/05/weekend-testing-americas-testing-wikimedia/
White, a tool to automate the testing of Win32 apps http://www.teststack.net/v1.0/blog/new-docs-site/
Testing Books

Unit Testing [TOP]

Code from Practical Unit Testing with JUnit and Mockito https://github.com/tomekkaczanowski/junit-put-exercises
Database UnitTesting Framework for SQL Server http://tsqlt.org/
Improving On assertEquals with JUnit and Hamcrest http://marxsoftware.blogspot.ca/2012/04/improving-on-assertequals-with-junit.html
Infinitest http://infinitest.github.io/
JUnit’s Built-in Hamcrest Core Matcher Support JUnit's Built-in Hamcrest Core Matcher Support
Matchers http://tutorials.jenkov.com/java-unit-testing/matchers.html
Practical Unit Testing http://practicalunittesting.com/
Real world mutation testing http://pitest.org/
Test Driven Databases http://tsqlt.org/
Unit Testing Books
Show