Categories
Note also, that DZone has syndicated over 120 of my articles.
- Client-Side MVC 29
- eXtreme Programming & Practices 7
- Refactoring 13
- Pseudo-declarative UIs 30
- Architecture & App Config 43
- Continuous Delivery 24
- Cookie Cutter Scaling 12
- Micro-Frontends 10
- Agile 54
- Our Merkleized Future 14
- Configuration as Code 16
- Application Strangulation 7
- Internet Plumbing, and Standards 5
- Logging 2
- Dependency Injection 33
- Quality Assurance 27
- Content Management Systems 15
- Source Control 63
- Software Patents 4
- Java6 committee participation 2
- Team Psychology 7
- Branch by Abstraction, etc 15
- Trunk-Based Development 44
- Legacy Rejuvenation 9
- Cloud Computing 1
- Theory Of Constraints 4
- Behavior Driven Development 4
- DevOps 21
- Teams & Hiring 4
- Most Depended On & Least Depending 4
- Continuous Integration 12
- Small Stories 8
- Persistence & NoSQL 4
- Shift Left 5
- Source-Control Backed 8
- Monorepos 21
- Googles Build System 6
- Elastic Environment Provisioning 6
- Continuous Review 9
- Expanding and Contracting Monorepos 6
- Limits of Merging 6
- Email Modernized 5
- Microcosm Environments 4
- Test Impact Analysis 4
- License Fees Double Dipping 2
- Service Virtualization 7
- TCKs 9
- Software Diagrams 3
- Confluence JS Apps 1
- Blockchains 1
- Architecture 3
- Continuous Isolation 2
- Serverless 2
Client-Side MVC
- June 10th, 2016 » New Enterprise Web-App Design Choices for 2016
- May 19th, 2013 » Coming to Angular from something else
- April 28th, 2013 » When Agile meets Angular and UX-led development
- March 6th, 2013 » A better Slideshow App, using Angular
- February 15th, 2013 » Slideshow HTML App, using Angular
- February 8th, 2013 » Angular Instead of Media-Queries
- January 18th, 2013 » Client-Side MVC Roundup
- January 8th, 2013 » Perforce as a datastore, with Client-Side MVC
- January 6th, 2013 » Visualizing the Client-Side MVC race
- October 31st, 2012 » Angular for Designers.
- April 13th, 2012 » The Shift Towards Client-Side MVC
- April 12th, 2012 » Performance Testing Knockout, Angular and Backbone with Selenium2
- April 9th, 2012 » Testing Knockout and Angular with Selenium2
- March 15th, 2012 » AngularJS and Selenium (Again)
- March 12th, 2012 » The Importance of Design-Mode for Client-Side MVC
- March 3rd, 2012 » Replacing JQuery With Angular
- February 14th, 2012 » Client-Side MVC: browser plugins
- February 13th, 2012 » Client-Side MVC frameworks compared
- February 10th, 2012 » Client-Side-MVC applications : best practice (part 1)
- February 8th, 2012 » The document is the single source of truth
- February 6th, 2012 » Web-app model quandary
- February 6th, 2012 » Previous Web Architectures
- February 1st, 2012 » Angular and Selenium
- February 1st, 2012 » Angular and DreamWeaver
- January 29th, 2012 » (almost) No JavaScript prototyping with Angular in a single source file
- January 23rd, 2012 » UI Technology Paradigm Shift
- February 27th, 2011 » Introducing Story Navigator
- September 28th, 2009 » Angular - HTML based Declarative UI (also one to watch)
eXtreme Programming & Practices
- May 8th, 2014 » TDD When You Can't Refactor
- November 1st, 2012 » Testability and Cost of Change
- September 1st, 2011 » Refactoring Experiment - 'least depending and most depended on' components first
- May 2nd, 2005 » Transparency
- April 26th, 2005 » JMock crash course
Refactoring
- July 25th, 2016 » Java legacy hairball: refactoring case-study
- May 8th, 2014 » TDD When You Can't Refactor
- March 14th, 2014 » Building Software Is Nothing Like Building H̶o̶u̶s̶e̶s̶ Buildings
- July 31st, 2013 » Some more on 'Strangulation inside Tomcat'
- July 15th, 2013 » Legacy Java Applications: Strangulation inside Tomcat
- July 14th, 2013 » Legacy Application Strangulation : Case Studies
- March 20th, 2013 » A Singleton Escape Plan
- March 20th, 2013 » Reverse Engineering a DB for DevOps excellence
- March 11th, 2013 » Legacy App Rejuvenation
- September 1st, 2011 » Refactoring Experiment - 'least depending and most depended on' components first
- November 9th, 2010 » A Spring Framework Shortcoming
Pseudo-declarative UIs
- August 18th, 2018 » Flutter and UI Automation
- April 8th, 2017 » Node.QML would have been the key to the Ubuntu Phones's success
- November 15th, 2016 » QML's Squandered Opportunity
- September 8th, 2015 » Decorators in the DOM
- August 12th, 2015 » Making a very small MP3 player with QML
- September 30th, 2014 » QML Becomes a Viable Mobile UI Framework Choice
- September 22nd, 2014 » Cross-Platform Mobile Application Development
- September 17th, 2014 » UI Development Has Never Been More Expensive
- July 9th, 2014 » Browsing QML instead of HTML
- June 14th, 2014 » Qt, QML, V-Play and multi-platform mobile
- March 28th, 2013 » Interface Builder's Alternative Lisp timeline
- February 11th, 2013 » Push or Pull Decorators
- February 4th, 2013 » The Importance of the DOM
- January 31st, 2013 » Application Development Glass Ceilings Revisited
- January 12th, 2013 » RubyMotion in a declarative UI style
- January 12th, 2013 » Categorizing Languages
- January 11th, 2013 » QML and the new Ubuntu phone OS
- April 15th, 2012 » Application Development Glass Ceilings
- March 12th, 2012 » The Importance of Design-Mode for Client-Side MVC
- September 12th, 2011 » What is Dart going to be?
- September 26th, 2009 » Kinetic - Qt based Declarative UI (one to watch)
- April 13th, 2009 » Shoes and Swiby - walking through the example RIA apps
- April 7th, 2009 » Google App Engine for Java with Rich Ruby clients
- October 13th, 2007 » Sweb 3.0
- May 9th, 2007 » JavaFX Mobile is *just* SavaJE aquired by Sun
- January 10th, 2006 » Ruby vs JavaScript for Web3.0
- March 31st, 2004 » Thicky- like the web, but with a Groovy thick-client experience
- February 16th, 2004 » Groovy - a convergence language
Architecture & App Config
- July 23rd, 2019 » Some Thoughts On Toggles
- June 1st, 2019 » Modelling Architectures
- January 31st, 2018 » An Ontology: Component vs Class vs Object vs Service vs Application vs Process vs Library, etc
- November 2nd, 2017 » Step Aside Blockchains, Hashgraphs Are Giving Plain Merkle Trees A Turbo Boost
- September 28th, 2017 » Choosing Between Blockchains And Vanilla Merkle Trees
- September 23rd, 2017 » Wikis that use source-control for their backing store
- July 29th, 2016 » Anvil app platform: using GitHub as a datastore
- July 11th, 2016 » Anvil: Like MsAccess For The Web But With Git Coolness
- June 10th, 2016 » New Enterprise Web-App Design Choices for 2016
- July 13th, 2015 » How Google makes a consistent top-navigation across multiple apps
- June 18th, 2015 » INI files for form templates
- June 7th, 2015 » Custom JSON Editors for Github·com
- May 2nd, 2015 » So you think monolith is the only alternative to microservices
- December 8th, 2014 » The rise of version control
- December 7th, 2014 » Monoliths, Cookie-Cutter or Microservices?
- December 6th, 2014 » Cross Platform - Sharing Code the Google Inbox way
- November 12th, 2014 » The Config Promotion Problem
- November 9th, 2014 » To SOA or Not To SOA
- August 27th, 2014 » Provisioning, Deployment and Application Config Cycles
- August 12th, 2014 » Trunk supporting practices
- February 15th, 2014 » Application Architecture in the CD Era for Pro-Services teams
- October 23rd, 2013 » A lower technology style of Angular for the enterprise
- October 12th, 2013 » Bad Java servlet apps
- August 1st, 2013 » Elastic Provisioning of New Environments
- January 8th, 2013 » Perforce as a datastore, with Client-Side MVC
- November 20th, 2012 » Very Small Data
- August 14th, 2012 » App Config using Git and Angular
- August 2nd, 2012 » App-Help on the Cheap
- July 10th, 2012 » Feature Toggles: App-config workflow using SCM
- June 12th, 2012 » NoSQL for storage AND relational for reporting
- February 6th, 2012 » Web-app model quandary
- February 6th, 2012 » Previous Web Architectures
- November 29th, 2011 » Cookie Cutter Scaling
- November 22nd, 2011 » Google's accounts system - architectural meaning
- September 21st, 2011 » A forgotten aspect of the Facade Pattern
- September 1st, 2011 » Refactoring Experiment - 'least depending and most depended on' components first
- August 6th, 2011 » Stitz's Five port rule for enterprise application dev
- May 12th, 2006 » Very Simple Java interop with .Net over the wire without Web Services
- October 19th, 2004 » Ward on Dependency Injection
- March 25th, 2004 » Objects, Components, Services and Aspects
- August 12th, 2002 » EJB not the holy grail
Continuous Delivery
- May 23rd, 2018 » Examining CI, CD and branching models
- December 12th, 2017 » Dialing Up Your Application's Release Cadence
- October 30th, 2017 » Trunk, CI, Builds, Environments, and Integration
- September 17th, 2017 » The number of pre-production environments
- June 17th, 2017 » Developers Activities Shouldn't Change With Proximity To Release Dates
- April 1st, 2017 » Often forgotten must-haves for Continuous Delivery teams
- September 17th, 2015 » Continuous Delivery, SaaS, robots, and license fees
- July 30th, 2015 » All you can eat software licenses when doing Continuous Delivery
- January 27th, 2015 » Detecting Redundant Tests
- January 18th, 2015 » Reducing Test Times by Only Running Impacted Tests - Python Edition
- January 11th, 2015 » Reducing Test Times by Only Running Impacted Tests - for Maven & Java
- December 7th, 2014 » Monoliths, Cookie-Cutter or Microservices?
- November 12th, 2014 » The Config Promotion Problem
- September 1st, 2014 » Microcosm environments/deployments
- August 27th, 2014 » Provisioning, Deployment and Application Config Cycles
- August 12th, 2014 » Trunk supporting practices
- April 10th, 2014 » Continuous Delivery: The price of admission..
- February 15th, 2014 » Application Architecture in the CD Era for Pro-Services teams
- January 14th, 2014 » Convincing Executives To Switch To Trunk-Based Development
- March 19th, 2013 » The Cost of Unmerge
- March 13th, 2013 » Facebook's Trunk-Based Development (take 2)
- March 4th, 2013 » Trunk-Based Development at Facebook
- February 20th, 2013 » Continuous Delivery: Professionals vs. Amateurs
Cookie Cutter Scaling
- June 1st, 2019 » Modelling Architectures
- October 7th, 2018 » Conway's Observation
- December 11th, 2016 » Permissions for composite in-house webapps
- July 13th, 2015 » How Google makes a consistent top-navigation across multiple apps
- May 2nd, 2015 » So you think monolith is the only alternative to microservices
- April 14th, 2015 » A lesser talked about feature of Microservices
- December 7th, 2014 » Monoliths, Cookie-Cutter or Microservices?
- November 9th, 2014 » To SOA or Not To SOA
- April 9th, 2013 » Scaling Trunk-Based Development
- November 29th, 2011 » Cookie Cutter Scaling
- November 22nd, 2011 » Google's accounts system - architectural meaning
Micro-Frontends
- December 11th, 2016 » Permissions for composite in-house webapps
- July 13th, 2015 » How Google makes a consistent top-navigation across multiple apps
- May 2nd, 2015 » So you think monolith is the only alternative to microservices
- April 14th, 2015 » A lesser talked about feature of Microservices
- December 7th, 2014 » Monoliths, Cookie-Cutter or Microservices?
- November 9th, 2014 » To SOA or Not To SOA
- April 9th, 2013 » Scaling Trunk-Based Development
- November 29th, 2011 » Cookie Cutter Scaling
- November 22nd, 2011 » Google's accounts system - architectural meaning
Agile
- April 13th, 2022 » More on Depth-first recursive vs DAG build technologies
- April 8th, 2022 » Depth-first recursive vs DAG build technologies
- February 12th, 2022 » A Tech Debt balance sheet
- June 25th, 2020 » Fixed-price UpWork Contracts
- March 12th, 2020 » Value Stream Mapping
- November 20th, 2019 » Environment Hell
- October 20th, 2019 » Quicker Local Maven Builds
- October 12th, 2019 » Diagrams to help or hinder understanding
- July 11th, 2019 » Tutorials vs Reference Docs vs Examples
- July 24th, 2018 » Win-Win Vendor Contracts
- September 1st, 2017 » Smalltalk Envy
- August 28th, 2017 » BDD Acceptance Criteria Pay For Themselves Multiple Times
- May 14th, 2017 » TodoMVC and given-when-then scenarios
- April 7th, 2017 » Tech Debt - Balance Sheets
- February 12th, 2017 » Shared-Nothing Builds
- March 16th, 2016 » List of 5th Agile Values
- December 19th, 2015 » The iron triangle is actually a square and not particularly iron
- December 17th, 2015 » More on technology compatibility kits in app development
- October 16th, 2015 » Using Mountebank to detach frontend and backend development
- May 2nd, 2015 » Scraping Leankit for analytics and pretty urls
- January 27th, 2015 » Detecting Redundant Tests
- January 18th, 2015 » Reducing Test Times by Only Running Impacted Tests - Python Edition
- January 11th, 2015 » Reducing Test Times by Only Running Impacted Tests - for Maven & Java
- December 8th, 2014 » Service Orientated Strangulation
- September 10th, 2014 » Throughput Over Backlog (a Fifth Agile Value)
- September 1st, 2014 » Microcosm environments/deployments
- August 12th, 2014 » Trunk supporting practices
- May 10th, 2014 » Developer Delayed Development
- April 29th, 2014 » Small Stories With Angular (case study)
- March 14th, 2014 » Building Software Is Nothing Like Building H̶o̶u̶s̶e̶s̶ Buildings
- February 28th, 2014 » Like a Used Sofa
- October 17th, 2013 » A 'Small Stories' Case Study
- September 19th, 2013 » Delaying non-functional stories
- April 28th, 2013 » When Agile meets Angular and UX-led development
- March 20th, 2013 » Reverse Engineering a DB for DevOps excellence
- February 20th, 2013 » Continuous Delivery: Professionals vs. Amateurs
- February 16th, 2013 » Misapplying Bayes-Theorem to Agile Versus Waterfall
- November 12th, 2012 » Smaller Stories
- November 7th, 2012 » Candidate Stories
- November 1st, 2012 » Testability and Cost of Change
- April 24th, 2012 » Call to Arms: Average Story Sizes of One Day
- September 14th, 2010 » Another UI prototyping technique (for Agile teams)
- September 7th, 2009 » Theory of Constraints and Agile
- March 3rd, 2007 » Simple wars
- July 19th, 2006 » Un-Agile Things
- March 19th, 2005 » Agility Alliance
- October 19th, 2004 » Ward on Dependency Injection
- February 12th, 2004 » Legacy TDD - RPG is not always a role playing game
- September 4th, 2003 » A declaration against Unit Tests
- August 7th, 2003 » Early Practices.
- July 28th, 2003 » Patterns
- September 3rd, 2002 » JIT Software
- August 12th, 2002 » Err away from rewrite
Our Merkleized Future
- August 14th, 2022 » Merkleized Public Attestations
- January 19th, 2020 » VCS Nirvana
- July 21st, 2019 » Using Git In Business And Government
- June 27th, 2019 » Merkle Trees Underpinning Civilization Going Forward
- June 14th, 2019 » Merkle Trees and Source Control
- August 6th, 2018 » Decentralize, Centralize or Somewhere In-Between?
- May 30th, 2018 » Better practices for audits
- November 2nd, 2017 » Step Aside Blockchains, Hashgraphs Are Giving Plain Merkle Trees A Turbo Boost
- November 2nd, 2017 » Merkle Trees vs Blockchains vs Hashgraphs
- September 28th, 2017 » Choosing Between Blockchains And Vanilla Merkle Trees
- September 28th, 2017 » Blockchains in pictures
- September 17th, 2017 » 'Old-School' Merkle Trees Rock
- September 17th, 2017 » Merkle Trees In Pictures
Configuration as Code
- July 23rd, 2019 » Some Thoughts On Toggles
- December 19th, 2016 » Infrastructure versus Config as Code
- July 29th, 2016 » Anvil app platform: using GitHub as a datastore
- June 26th, 2016 » Using RhodeCode and Angular1 as an Editor for a 'Config as Code' System
- June 18th, 2015 » INI files for form templates
- June 7th, 2015 » Custom JSON Editors for Github·com
- November 12th, 2014 » The Config Promotion Problem
- September 8th, 2014 » Rules Engines Suck Too If They Are Not Backed By Source-Control
- August 27th, 2014 » Provisioning, Deployment and Application Config Cycles
- August 12th, 2014 » Trunk supporting practices
- February 15th, 2014 » Application Architecture in the CD Era for Pro-Services teams
- January 8th, 2013 » Perforce as a datastore, with Client-Side MVC
- December 5th, 2012 » Push or pull of config changes for a production stack
- August 14th, 2012 » App Config using Git and Angular
- July 10th, 2012 » Feature Toggles: App-config workflow using SCM
Application Strangulation
- July 25th, 2016 » Java legacy hairball: refactoring case-study
- December 8th, 2014 » Service Orientated Strangulation
- January 14th, 2014 » Convincing Executives To Switch To Trunk-Based Development
- July 31st, 2013 » Some more on 'Strangulation inside Tomcat'
- July 15th, 2013 » Legacy Java Applications: Strangulation inside Tomcat
- July 14th, 2013 » Legacy Application Strangulation : Case Studies
- August 12th, 2002 » Err away from rewrite
Internet Plumbing, and Standards
- December 8th, 2010 » Extending the life of IPv4
- November 1st, 2010 » Not-Path Cookies
- February 22nd, 2010 » Cookies with regular expression paths
- July 27th, 2006 » Did you send this - another weapon against spam?
- September 5th, 2002 » SPAM
Logging
- April 20th, 2004 » Logging - just say no.
- December 21st, 2002 » (Logwars restarted) Commons Logging.
Dependency Injection
- October 12th, 2013 » Bad Java servlet apps
- March 20th, 2013 » A Singleton Escape Plan
- November 9th, 2010 » A Spring Framework Shortcoming
- August 20th, 2010 » .Net Dependency Injection better practice
- April 15th, 2009 » AppEngine's blind-spot
- April 7th, 2009 » Google App Engine for Java with Rich Ruby clients
- July 30th, 2008 » Releasing PicoContainer 2.5 and JRemoting
- March 22nd, 2008 » What brought me to Inversion of Control in the first place ..
- March 16th, 2008 » Crazy Bob and type safety for Dependency Injection
- July 22nd, 2007 » Injecting into Servlets and undoing the stranglehold of web.xml
- July 16th, 2007 » PicoConatiner 2.0 beta released
- March 16th, 2007 » Waffle - Java web action framework with smallest lines of code count for action methods
- May 8th, 2006 » My presentation on Dependency Injection versus Big Up-Front Architecture
- January 27th, 2006 » NanoContainer Presentation
- October 19th, 2004 » Ward on Dependency Injection
- October 12th, 2004 » CDI Book
- July 30th, 2004 » My OSCON PicoNirvana slideshow
- June 5th, 2004 » PicoContainer 1.0 released (finally)
- May 1st, 2004 » O'Reilly's OSCON speaker
- April 20th, 2004 » Logging - just say no.
- February 16th, 2004 » Can the next big language drop public static void main(String[] args) please?
- January 24th, 2004 » Jesktop goes Pico
- December 23rd, 2003 » NMock PicoCompatability
- December 23rd, 2003 » Type3 rollout
- December 5th, 2003 » My Inversion of Control Rocks article on JDJ.
- October 16th, 2003 » Pico practices for .Net
- October 16th, 2003 » .Net pitfalls
- October 7th, 2003 » PicoContainer is non-threatening
- September 17th, 2003 » App.config in C#
- September 3rd, 2003 » Componentization
- September 3rd, 2003 » Endianism in OSS
- September 3rd, 2003 » Diversity
- August 16th, 2003 » PicoContainer 1.0b1...
Quality Assurance
- February 21st, 2015 » Playing With Sikuli For Desktop Automation
- January 27th, 2015 » Detecting Redundant Tests
- January 18th, 2015 » Reducing Test Times by Only Running Impacted Tests - Python Edition
- January 11th, 2015 » Reducing Test Times by Only Running Impacted Tests - for Maven & Java
- November 4th, 2014 » Selenium is Ten Years Old
- October 23rd, 2013 » A lower technology style of Angular for the enterprise
- August 31st, 2013 » WebDriver and AngularJS
- August 28th, 2013 » Fluent Selenium with an Angular application
- August 26th, 2013 » A different style of Fluent Selenium tests
- May 19th, 2013 » Fluent Selenium Examples
- November 1st, 2012 » Testability and Cost of Change
- April 12th, 2012 » Performance Testing Knockout, Angular and Backbone with Selenium2
- April 9th, 2012 » Testing Knockout and Angular with Selenium2
- March 15th, 2012 » AngularJS and Selenium (Again)
- February 1st, 2012 » Angular and Selenium
- December 11th, 2011 » Sauce Labs: Tunnels or not?
- November 14th, 2011 » Reporting Selenium2 (WebDriver) bugs
- September 30th, 2011 » setContext(..) is back for Selenium2 :-P
- September 23rd, 2011 » Automatic sequence diagrams from BDD-scenario executions
- August 31st, 2011 » Contrasting Selenium 2 locator styles
- August 4th, 2011 » Hiring Selenium QA people
- March 14th, 2011 » I think it is time for QTP to die*
- May 8th, 2006 » My presentation on Dependency Injection versus Big Up-Front Architecture
- May 7th, 2005 » Selenium The Movie / Directors Cut
- May 2nd, 2005 » Selenium: kick ass web testing for free
- April 26th, 2005 » Selenium The Movie
- April 28th, 2004 » WinRunner Best Practices
Content Management Systems
- August 29th, 2014 » Nearly All CMS Technologies Suck
- March 15th, 2013 » Article Syndication on GitHub via Subversion
- February 24th, 2013 » Angular in a Jekyll Blog
- February 8th, 2013 » Angular Instead of Media-Queries
- January 6th, 2013 » The sorry state of the anti-software-patents movement
- January 2nd, 2013 » GitHub Pages as a CMS again
- August 2nd, 2012 » App-Help on the Cheap
- July 16th, 2011 » New Blog Technology and Hosting
- May 8th, 2011 » GitHub as a CMS to end CMSes
- July 30th, 2008 » Project Documentation Thoughts
- January 15th, 2007 » Cozmos gets Subversion backend
- January 7th, 2007 » Cozmos- CMS using webdav and Sitemesh
- December 7th, 2006 » An alternative to wikis
- April 11th, 2005 » Content Editing Nirvana
- June 11th, 2004 » Tools with Proprietary Source Control? Be Careful.
Source Control
- January 19th, 2020 » VCS Nirvana
- August 2nd, 2019 » Pull-Request dissatisfaction
- July 21st, 2019 » Using Git In Business And Government
- June 27th, 2019 » Merkle Trees Underpinning Civilization Going Forward
- June 14th, 2019 » Merkle Trees and Source Control
- June 11th, 2019 » Monorepos vs Megarepos
- June 18th, 2016 » Subversion Merge Limitations That Are Not In Fossil
- December 15th, 2015 » Branches should be for change of policy on the same source
- October 5th, 2015 » Subversion Merge Limitations That Are Not In Perforce
- September 29th, 2015 » Subversion Merge Limitations That Are Not In Mercurial
- September 27th, 2015 » Subversion Merge Limitations That Are Not In Git
- September 25th, 2015 » Subversion Merge Limitations
- September 20th, 2015 » Extracting Subversion Branch Mappings
- August 11th, 2015 » Source-Control that explicitly understands refactorings
- August 10th, 2015 » Git becomes version-control's lingua franca wire protocol
- July 30th, 2015 » Git storing unzipped office docs
- May 2nd, 2015 » Scraping Leankit for analytics and pretty urls
- February 14th, 2015 » I wish Subversion had a query language
- February 14th, 2015 » Bash script to convert Subversion to Git
- December 8th, 2014 » The rise of version control
- November 13th, 2014 » Code Review - the unit of work should be a single commit
- November 12th, 2014 » The Config Promotion Problem
- October 28th, 2014 » Corporate File Sync: Agony and Ecstasy
- October 20th, 2014 » Checking in binaries
- August 27th, 2014 » Provisioning, Deployment and Application Config Cycles
- August 12th, 2014 » Trunk supporting practices
- July 30th, 2014 » GeoJSON mashups and GitHub
- February 15th, 2014 » Application Architecture in the CD Era for Pro-Services teams
- February 3rd, 2014 » Facebook Scaling Mercurial for Trunk-Based Development
- January 10th, 2014 » Non-Continuous Reviews
- January 8th, 2014 » Google's vs Facebook's Trunk-Based Development
- January 8th, 2014 » Git's Lightweight Merging
- January 6th, 2014 » Googlers Subset their Trunk
- December 8th, 2013 » Continuous Review (con't)
- December 5th, 2013 » Continuous Review
- December 4th, 2013 » What is Your Branching Model?
- November 20th, 2013 » Source Control is your new DR
- November 19th, 2013 » Elastic Environments in Source-Control with Ansible
- August 1st, 2013 » Elastic Provisioning of New Environments
- April 29th, 2013 » Open Data backed by Source-Control
- April 9th, 2013 » Scaling Trunk-Based Development
- April 5th, 2013 » What is Trunk-Based Development?
- April 2nd, 2013 » Maintained Divergence
- March 19th, 2013 » The Cost of Unmerge
- March 15th, 2013 » Article Syndication on GitHub via Subversion
- March 13th, 2013 » Facebook's Trunk-Based Development (take 2)
- March 11th, 2013 » Legacy App Rejuvenation
- March 4th, 2013 » Trunk-Based Development at Facebook
- February 14th, 2013 » Features I would love source control tools to have
- January 29th, 2013 » Content Syndication using Source Control
- January 8th, 2013 » Perforce as a datastore, with Client-Side MVC
- January 2nd, 2013 » GitHub Pages as a CMS again
- December 22nd, 2012 » SCM and Key-Value (Document) Store Convergence
- December 5th, 2012 » Push or pull of config changes for a production stack
- August 14th, 2012 » App Config using Git and Angular
- August 10th, 2012 » It is time for a new take on Spreadsheets
- August 2nd, 2012 » App-Help on the Cheap
- July 10th, 2012 » Feature Toggles: App-config workflow using SCM
- May 8th, 2011 » GitHub as a CMS to end CMSes
- July 30th, 2008 » Project Documentation Thoughts
- April 26th, 2007 » Introducing Branch By Abstraction
- January 7th, 2007 » Cozmos- CMS using webdav and Sitemesh
- June 11th, 2004 » Tools with Proprietary Source Control? Be Careful.
Software Patents
- April 27th, 2013 » What to do about the broken patent system
- January 29th, 2013 » Content Syndication using Source Control
- January 6th, 2013 » The sorry state of the anti-software-patents movement
- March 3rd, 2005 » European Software Patent Spectre
Java6 committee participation
Team Psychology
- April 4th, 2020 » Risk And Responsibility Should Be An Exchange
- July 9th, 2017 » Alignment and Autonomy and Quorums
- January 11th, 2016 » Predictive Index Stereotypes
- July 27th, 2015 » Mavericks versus loose cannons
- November 20th, 2014 » Strong Argumentative Positions
- July 25th, 2011 » My Predictive Index
- March 3rd, 2007 » Simple wars
Branch by Abstraction, etc
- September 24th, 2014 » A Functional Branch by Abstraction Case Study
- August 12th, 2014 » Trunk supporting practices
- January 14th, 2014 » Convincing Executives To Switch To Trunk-Based Development
- April 5th, 2013 » What is Trunk-Based Development?
- March 19th, 2013 » The Cost of Unmerge
- March 13th, 2013 » Facebook's Trunk-Based Development (take 2)
- March 11th, 2013 » Legacy App Rejuvenation
- March 4th, 2013 » Trunk-Based Development at Facebook
- November 1st, 2012 » Testability and Cost of Change
- July 10th, 2012 » Feature Toggles: App-config workflow using SCM
- April 24th, 2012 » Call to Arms: Average Story Sizes of One Day
- September 30th, 2011 » Branchable Continuous Integration
- May 13th, 2011 » Avoiding 'Big Bang' for Branch By Abstraction
- December 7th, 2010 » Branch By Abstraction Log Jam
- April 26th, 2007 » Introducing Branch By Abstraction
Trunk-Based Development
- August 17th, 2020 » GitLab hosted virtual TBD event - me being interviewed about my book
- June 11th, 2019 » Monorepos vs Megarepos
- May 23rd, 2018 » Examining CI, CD and branching models
- October 30th, 2017 » Trunk, CI, Builds, Environments, and Integration
- February 14th, 2017 » Pre-commit Continuous Integration infrastructure is cheaper than post-commit (for high throughput teams)
- February 8th, 2017 » Further Experiments With Expanding/Contracting Monorepos
- January 27th, 2017 » Maven In A Google Style Monorepo
- February 15th, 2016 » CI, Breaking Builds, Bisecting, And Reverting
- December 13th, 2015 » Trunk based development: when to branch for release
- May 2nd, 2015 » So you think monolith is the only alternative to microservices
- April 23rd, 2015 » The origins of Trunk-Based Development
- December 8th, 2014 » Service Orientated Strangulation
- December 6th, 2014 » Cross Platform - Sharing Code the Google Inbox way
- November 14th, 2014 » Source Code Laundering
- October 23rd, 2014 » Me Presenting on Trunk (etc) at the Perforce MERGE conference
- October 20th, 2014 » Checking in binaries
- September 29th, 2014 » Shades of Trunk-Based Development
- September 24th, 2014 » A Functional Branch by Abstraction Case Study
- August 12th, 2014 » Trunk supporting practices
- April 10th, 2014 » Continuous Delivery: The price of admission..
- April 3rd, 2014 » Microsoft's Trunk-Based Development
- February 3rd, 2014 » Facebook Scaling Mercurial for Trunk-Based Development
- January 14th, 2014 » Convincing Executives To Switch To Trunk-Based Development
- January 10th, 2014 » Non-Continuous Reviews
- January 8th, 2014 » Google's vs Facebook's Trunk-Based Development
- January 8th, 2014 » Git's Lightweight Merging
- January 6th, 2014 » Googlers Subset their Trunk
- December 8th, 2013 » Continuous Review (con't)
- December 5th, 2013 » Continuous Review
- December 4th, 2013 » What is Your Branching Model?
- August 1st, 2013 » Elastic Provisioning of New Environments
- May 6th, 2013 » Google's Scaled Trunk-Based Development
- April 28th, 2013 » When Agile meets Angular and UX-led development
- April 9th, 2013 » Scaling Trunk-Based Development
- April 5th, 2013 » What is Trunk-Based Development?
- March 19th, 2013 » The Cost of Unmerge
- March 13th, 2013 » Facebook's Trunk-Based Development (take 2)
- March 11th, 2013 » Legacy App Rejuvenation
- March 4th, 2013 » Trunk-Based Development at Facebook
- November 29th, 2011 » Cookie Cutter Scaling
- September 30th, 2011 » Branchable Continuous Integration
- May 13th, 2011 » Avoiding 'Big Bang' for Branch By Abstraction
- April 18th, 2011 » Binary Diffing for Increased Release Confidence
- April 26th, 2007 » Introducing Branch By Abstraction
Legacy Rejuvenation
- July 25th, 2016 » Java legacy hairball: refactoring case-study
- December 8th, 2014 » Service Orientated Strangulation
- March 14th, 2014 » Building Software Is Nothing Like Building H̶o̶u̶s̶e̶s̶ Buildings
- July 31st, 2013 » Some more on 'Strangulation inside Tomcat'
- July 15th, 2013 » Legacy Java Applications: Strangulation inside Tomcat
- July 14th, 2013 » Legacy Application Strangulation : Case Studies
- March 20th, 2013 » A Singleton Escape Plan
- March 11th, 2013 » Legacy App Rejuvenation
- April 26th, 2007 » Introducing Branch By Abstraction
Cloud Computing
- April 15th, 2009 » AppEngine's blind-spot
Theory Of Constraints
- March 12th, 2020 » Value Stream Mapping
- September 26th, 2016 » Visualizing the Theory of Constraints
- November 12th, 2012 » Smaller Stories
- September 7th, 2009 » Theory of Constraints and Agile
Behavior Driven Development
- September 23rd, 2011 » Automatic sequence diagrams from BDD-scenario executions
- April 5th, 2011 » Running JBehave/WebDriver Tests on Sauce Labs' Service
- March 14th, 2011 » I think it is time for QTP to die*
- February 27th, 2011 » Introducing Story Navigator
DevOps
- October 15th, 2019 » Overtesting Endpoints
- October 7th, 2018 » Conway's Observation
- May 23rd, 2018 » Examining CI, CD and branching models
- August 6th, 2017 » Environment Creation Times in Modern Teams
- June 22nd, 2017 » An Aspect of DevOps Improvements: The Reduction of Cycle Times
- March 26th, 2017 » Speedy builds using Service Virtualization (SV) explained in diagrams
- March 25th, 2017 » Repositories vs release cadences
- March 25th, 2017 » Engineering led companies
- June 27th, 2015 » Scraping Github pull requests and their code review comments
- September 1st, 2014 » Microcosm environments/deployments
- April 10th, 2014 » Continuous Delivery: The price of admission..
- November 20th, 2013 » Source Control is your new DR
- November 19th, 2013 » Elastic Environments in Source-Control with Ansible
- August 1st, 2013 » Elastic Provisioning of New Environments
- April 9th, 2013 » Scaling Trunk-Based Development
- April 5th, 2013 » What is Trunk-Based Development?
- March 20th, 2013 » Reverse Engineering a DB for DevOps excellence
- March 13th, 2013 » Facebook's Trunk-Based Development (take 2)
- March 11th, 2013 » Legacy App Rejuvenation
- March 4th, 2013 » Trunk-Based Development at Facebook
- April 18th, 2011 » Binary Diffing for Increased Release Confidence
Teams & Hiring
- January 17th, 2016 » Wishing For Improvements To Linkedin
- July 27th, 2012 » Three Tier Resumes
- August 9th, 2011 » No One Gives Themselves Bad Ratings (in hiring, apparently)
- August 4th, 2011 » Hiring Selenium QA people
Most Depended On & Least Depending
- July 25th, 2016 » Java legacy hairball: refactoring case-study
- December 8th, 2014 » Service Orientated Strangulation
- March 11th, 2013 » Legacy App Rejuvenation
- September 1st, 2011 » Refactoring Experiment - 'least depending and most depended on' components first
Continuous Integration
- May 23rd, 2018 » Examining CI, CD and branching models
- December 12th, 2017 » Dialing Up Your Application's Release Cadence
- October 30th, 2017 » Trunk, CI, Builds, Environments, and Integration
- May 1st, 2017 » Scoring Continuous Integration
- April 20th, 2017 » The definition of 'The Build' has changed over time
- February 14th, 2017 » Pre-commit Continuous Integration infrastructure is cheaper than post-commit (for high throughput teams)
- February 14th, 2017 » Fake News Via Continuous Isolation
- February 12th, 2017 » Shared-Nothing Builds
- February 15th, 2016 » CI, Breaking Builds, Bisecting, And Reverting
- July 30th, 2015 » All you can eat software licenses when doing Continuous Delivery
- November 5th, 2013 » Branchable CI with Thoughtworks' Snap
- September 30th, 2011 » Branchable Continuous Integration
Small Stories
- July 24th, 2018 » Win-Win Vendor Contracts
- June 22nd, 2017 » An Aspect of DevOps Improvements: The Reduction of Cycle Times
- May 10th, 2014 » Developer Delayed Development
- April 29th, 2014 » Small Stories With Angular (case study)
- October 17th, 2013 » A 'Small Stories' Case Study
- July 14th, 2013 » Legacy Application Strangulation : Case Studies
- November 12th, 2012 » Smaller Stories
- April 24th, 2012 » Call to Arms: Average Story Sizes of One Day
Persistence & NoSQL
- July 30th, 2014 » GeoJSON mashups and GitHub
- January 8th, 2013 » Perforce as a datastore, with Client-Side MVC
- November 20th, 2012 » Very Small Data
- June 12th, 2012 » NoSQL for storage AND relational for reporting
Shift Left
- March 12th, 2020 » Value Stream Mapping
- October 23rd, 2014 » Me Presenting on Trunk (etc) at the Perforce MERGE conference
- September 1st, 2014 » Microcosm environments/deployments
- April 10th, 2014 » Continuous Delivery: The price of admission..
- November 1st, 2012 » Testability and Cost of Change
Source-Control Backed
- August 6th, 2018 » Decentralize, Centralize or Somewhere In-Between?
- September 23rd, 2017 » Wikis that use source-control for their backing store
- May 13th, 2017 » Alternative to Maven Central for Jar publishing (multiple Git repositories)
- July 29th, 2016 » Anvil app platform: using GitHub as a datastore
- July 11th, 2016 » Anvil: Like MsAccess For The Web But With Git Coolness
- September 8th, 2014 » Rules Engines Suck Too If They Are Not Backed By Source-Control
- August 29th, 2014 » Nearly All CMS Technologies Suck
- November 20th, 2012 » Very Small Data
Monorepos
- June 11th, 2019 » Monorepos vs Megarepos
- April 4th, 2017 » Benchmarking a Java/Maven monorepo
- March 28th, 2017 » Monorepos with recursive or directed-graph build technologies?
- March 25th, 2017 » Repositories vs release cadences
- February 8th, 2017 » Further Experiments With Expanding/Contracting Monorepos
- January 27th, 2017 » Maven In A Google Style Monorepo
- February 15th, 2016 » CI, Breaking Builds, Bisecting, And Reverting
- September 20th, 2015 » Extracting Subversion Branch Mappings
- May 20th, 2015 » Turning Bazel back into Blaze for monorepo nirvana
- April 23rd, 2015 » The origins of Trunk-Based Development
- March 3rd, 2015 » Perforce gets its own DVCS
- January 8th, 2015 » Omnipresent, Infallible, Omnipotent and Instantaneous Build Technologies
- November 14th, 2014 » Source Code Laundering
- October 23rd, 2014 » Me Presenting on Trunk (etc) at the Perforce MERGE conference
- April 10th, 2014 » Continuous Delivery: The price of admission..
- April 3rd, 2014 » Microsoft's Trunk-Based Development
- January 8th, 2014 » Google's vs Facebook's Trunk-Based Development
- January 6th, 2014 » Googlers Subset their Trunk
- May 6th, 2013 » Google's Scaled Trunk-Based Development
- April 9th, 2013 » Scaling Trunk-Based Development
- April 5th, 2013 » What is Trunk-Based Development?
Googles Build System
- May 20th, 2015 » Turning Bazel back into Blaze for monorepo nirvana
- January 8th, 2015 » Omnipresent, Infallible, Omnipotent and Instantaneous Build Technologies
- October 23rd, 2014 » Me Presenting on Trunk (etc) at the Perforce MERGE conference
- January 8th, 2014 » Google's vs Facebook's Trunk-Based Development
- January 6th, 2014 » Googlers Subset their Trunk
- May 6th, 2013 » Google's Scaled Trunk-Based Development
Elastic Environment Provisioning
- August 27th, 2014 » Provisioning, Deployment and Application Config Cycles
- August 12th, 2014 » Trunk supporting practices
- February 15th, 2014 » Application Architecture in the CD Era for Pro-Services teams
- November 20th, 2013 » Source Control is your new DR
- November 19th, 2013 » Elastic Environments in Source-Control with Ansible
- August 1st, 2013 » Elastic Provisioning of New Environments
Continuous Review
- February 14th, 2017 » Pre-commit Continuous Integration infrastructure is cheaper than post-commit (for high throughput teams)
- December 15th, 2015 » Branches should be for change of policy on the same source
- June 27th, 2015 » Scraping Github pull requests and their code review comments
- November 13th, 2014 » Code Review - the unit of work should be a single commit
- January 14th, 2014 » Convincing Executives To Switch To Trunk-Based Development
- January 10th, 2014 » Non-Continuous Reviews
- January 8th, 2014 » Google's vs Facebook's Trunk-Based Development
- December 8th, 2013 » Continuous Review (con't)
- December 5th, 2013 » Continuous Review
Expanding and Contracting Monorepos
- March 25th, 2017 » Repositories vs release cadences
- February 8th, 2017 » Further Experiments With Expanding/Contracting Monorepos
- January 27th, 2017 » Maven In A Google Style Monorepo
- May 20th, 2015 » Turning Bazel back into Blaze for monorepo nirvana
- January 8th, 2014 » Google's vs Facebook's Trunk-Based Development
- January 6th, 2014 » Googlers Subset their Trunk
Limits of Merging
- June 18th, 2016 » Subversion Merge Limitations That Are Not In Fossil
- October 5th, 2015 » Subversion Merge Limitations That Are Not In Perforce
- September 29th, 2015 » Subversion Merge Limitations That Are Not In Mercurial
- September 27th, 2015 » Subversion Merge Limitations That Are Not In Git
- March 15th, 2014 » More On Git Merges
- January 8th, 2014 » Git's Lightweight Merging
Email Modernized
- April 4th, 2016 » Reducing My Robo-Emails To A Handful of Rollup Emails Every Few Minutes (IMAP Rewriting With Python)
- September 3rd, 2015 » Resurrecting a small piece of Google Wave
- May 4th, 2015 » Treating IMAP as a store: rewriting emails
- October 27th, 2014 » The Pervasive Inbox
- January 30th, 2014 » It is Time for Email Apps to Support (sandboxed) JavaScript
Microcosm Environments
- September 17th, 2017 » The number of pre-production environments
- August 6th, 2017 » Environment Creation Times in Modern Teams
- February 12th, 2017 » Shared-Nothing Builds
- September 1st, 2014 » Microcosm environments/deployments
Test Impact Analysis
- October 20th, 2019 » Quicker Local Maven Builds
- January 27th, 2015 » Detecting Redundant Tests
- January 18th, 2015 » Reducing Test Times by Only Running Impacted Tests - Python Edition
- January 11th, 2015 » Reducing Test Times by Only Running Impacted Tests - for Maven & Java
License Fees Double Dipping
- September 17th, 2015 » Continuous Delivery, SaaS, robots, and license fees
- July 30th, 2015 » All you can eat software licenses when doing Continuous Delivery
Service Virtualization
- June 14th, 2019 » TCKs and Servirtium
- March 26th, 2017 » Speedy builds using Service Virtualization (SV) explained in diagrams
- February 13th, 2017 » Wire Mocking Without A Service Virtualization Framework
- February 5th, 2017 » Service Virtualization Strategies For Fast Builds
- February 5th, 2017 » A 16 Second Java Webapp Build (Including WebDriver Tests)
- December 17th, 2015 » More on technology compatibility kits in app development
- October 16th, 2015 » Using Mountebank to detach frontend and backend development
TCKs
- January 18th, 2021 » JBehave and Servirtium
- April 23rd, 2020 » Servirtium use in a client and supplier co-development
- June 14th, 2019 » TCKs and Servirtium
- July 24th, 2018 » Win-Win Vendor Contracts
- July 13th, 2018 » Another Graphic for Technology Compatibility Kits (TCKs)
- March 26th, 2017 » Speedy builds using Service Virtualization (SV) explained in diagrams
- February 5th, 2017 » Service Virtualization Strategies For Fast Builds
- December 17th, 2015 » More on technology compatibility kits in app development
- October 16th, 2015 » Using Mountebank to detach frontend and backend development
Software Diagrams
- August 24th, 2017 » Another Architecture Diagram
- December 14th, 2016 » The Principles of Containment
- December 28th, 2015 » Architecture Diagrams
Confluence JS Apps
- May 30th, 2016 » Hacking Confluence With Javascript
Blockchains
- November 2nd, 2016 » Blockchains for patent filings
Architecture
- January 24th, 2024 » Infrastructure as Code DSLs
- August 12th, 2022 » Principles of Containment in the DOM
- December 14th, 2016 » The Principles of Containment
Continuous Isolation
- August 21st, 2017 » A Cynical View Of Bonus Calculations
- February 14th, 2017 » Fake News Via Continuous Isolation
Serverless
- June 13th, 2018 » Thinking About Serverless Again
- October 25th, 2017 » A Serverless Sequence Diagram