Who Am I ?
I am Paul Hammant, a DevOps and Continuous Delivery expert. These days I assess DevOPS, CD and Agile for North American enterprises, then deliver recommendations for transformations on what to change first, and generally how to get to goals without dropping their release cadence. I am particularly interested in the branching models that teams persuade themselves are productive and have written more than anyone else on Trunk-Based Development (both on this blog and TrunkBasedDevelopment.com). Email me if you need advice: email@example.com.
I have previously been Senior Director of Engineering, Chief Science Officer, roving consultant for 12 years in ThoughtWorks (Martin Fowler's famous Agile/CD consultancy - where I crafted my assessment skills), 'Test Mercenary' at Google (as a ThoughtWorker), Head of Development, architect, tech-lead, and developer (backend, thin and fat front ends, full stack etc).
As consultant (the majority of my 28 year software career) and permanent hire, I have worked at investment banks, a hedge fund administrator, an airline, retail, startups, Google, insurers, shopping sites.
I'm also a pioneer of a bunch of things that are technically important to the software development industry: Trunk-Based Development (and Branch by Abstraction), Dependency Injection, Selenium (co-creator of v1), and more. I also have a few more things I'm an pioneering that are not yet important to the software industry.
Flag Carrier For Trunk Based Development
I talk about “Trunk Based Development” (TBD) a lot. Enough so that you would think I invented it, or coined the term, but I did not. I wrote the first article on the associated practice “Branch by Abstraction” (although I didn't invent that either), and a lot of my consulting features the recommendation of, and planned migrations towards TBD and Branch by Abstraction
Read more about that on the TBD, Branch by Abstraction, Feature Toggles, and source-control best practice on the information portal for Trunk Based Development, that I have put together with friends. Bonus: ebooks.
Dependency Injection Pioneer
I was rabid about Inversion of Control (IoC) long before I arrived in ThoughtWorks, or indeed before it was popular anywhere. I am also one of the pioneers of the related topic Dependency Injection and guilty of defining some numerical sub-types for IoC, before ThoughtWorks’ chief scientist, Martin Fowler, wrote his widely-read article renaming what I was talking about to Dependency Injection (DI)
Back then in 2002, I was busy working on the first constructor injection DI container with Aslak Hellesøy (more famous for Cucumber these days): PicoContainer, in Java.
Selenium, is the defacto-standard functional web-app testing technology. I’m co-creator of Selenium 1.0 (2004). The bit I did was Selenium-RC's browser process spawning side, to allow your choice of driving language (Java initially, but Python, Ruby and C# soon after). That used Comet I/O between the browser and the test runner, although it wasn't called that until later. These days Selenium 2 (WebDriver) is a huge force, with cloud testing grids, and just about every web-development team uses it. I was until 2016, in the Selenium management committee, and I am still a committer for the project.
Here is ThoughtWorks' 10-year old birthday congratulations for Selenium from 2014, written by me.
Other Recurring themes
Aside from the above, there are some themes that I keep returning to in this blog over the years:
- Pseudo-declarative UI markup languages, delivered over HTTP
- Things that are backed by source control, that are not normally backed by source control
- Tier-reduction architectures, patterns and alike
- Agile, with a focus on XP, BDD, and ‘small stories’ in particular.
For the entire current millennium, I have been an advocate of Open Source, and eXtreme Programming (XP). I was participating in the former for a couple of years, before I became an advocate of the latter. The two communities feed off each other. Of course Lean and Kanban take over from XP these days and we roll it all into a "DevOps" title.
Linked in : has more job detail
- OReilly’s OCSCON (Portland OR, 2004): Constructor Dependency Injection with PicoContainer - A post J2EE Nirvana (Portland, OR). My Blog Entry and Slides for the same.
- Agile India (Bangalore, 2006): TDD, Refactoring and Dependency Injection (Agile’s answer to “Big Up-Front Architecture” : BUFA) (Bangalore)
- Agile India (Bangalore, 2006): Selenium Workshop (Bangalore)
- Agile 2009 (Chicago): Selenium and JBehave : A surprisingly successful shotgun wedding (Chicago). Second link. Co-presented with Mauro Talevi.
- Perforce MERGE conference (San Francisco, Sept 2014) - Keynote session Trunk-Based Development in the Enterprise - Its Relevance and Economics
- Perforce MERGE conference (San Francisco, Sept 2014) - PANEL: Development Patterns for Continuous Delivery
- Perforce MERGE conference (San Francisco, Sept 2014) - An unrecorded Workshop on Trunk-Based Development
- June 20, 2012: The IEEE’s Austin Texas Chapter Client-Side MVC: The Next Big Thing for Enterprise Application Development. Video too.
- Apr 21, 2016: Panelist discussing "Pioneers, Settlers and Town Planners" (with Kevin Behr, and Jabe Bloom) at a Technology Workshop organizased by Hedge Fund Managzine
- An article commissioned specifically for DZone (2012) - The Shift Towards Client-Side MVC
- DZone syndicates articles from this blog. There are more than a hundred of my articles syndicated, so far.
- May 2006: Simple JAVA and .NET SOA interoperability. Commissioned for their very first edition!
Java Developer Journal
- Dec 2003: Inversion of Control Rocks. Duplicated here and here. The article was prettier in the print edition, which is sadly no longer available online.
- 2010: Some of my artwork from a blog entry was used in Jez Humble and Dave Farley's Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation.
- 2015: Some of my artwork from a blog entry was used in Jez Humble, Joanne Molesky, Barry O'Reilly's Lean Enterprise: How High Performance Organizations Innovate at Scale .
Go to my archive for a full list of entries going back to 2002.
- July 9th, 2017 » Alignment and Autonomy and Quorums
- June 29th, 2017 » Trying out UpWork for small programming jobs
- June 22nd, 2017 » An Aspect of DevOps Improvements: The Reduction of Cycle Times
- June 17th, 2017 » Developers Activities Shouldn't Change With Proximity To Release Dates
- May 14th, 2017 » TodoMVC and given-when-then scenarios
- May 13th, 2017 » Maven Central as multiple Git repositories
- May 1st, 2017 » Scoring Continuous Integration
- April 20th, 2017 » 'The Build'
- April 8th, 2017 » Node.QML would have been the key to the Ubuntu Phones's success
Subscribe to my blog by email
Getting in touch
Email is best: firstname.lastname@example.org