Author on Software Development. Works for Thoughtworks. Also hikes, watches theater, and plays modern board games. He/him.
@mfowler
@toot
.thoughtworks.com
I believe that the principles of good programming are more important than what language we code in. I'd rather work with well-written JavaScript than badly-written Smalltalk.
A trans friend of mine said that after Twitter stopped banning trans harassment, it took only 12 hours before she started getting death threats. Do we have Free Speech if bullies are allowed to make people afraid to speak?
post: We should justify efforts to improve internal quality of software based on its ability to reduce costs of future enhancements. It's a counter-intuitive view, but one that reflects our reality
If you're looking for advice on extracting a microservice from a monolith - including part of the database - then you'll like my colleague
@todkar
's new article
@unclebobmartin
I, like you, am fortunate to live in a community where police are not a problem. However many of my fellow Americans, including friends of mine, are not so fortunate. I think it is important to listen to their experiences.
I've been taking a break from work for the last few weeks, so missed much of the brouhaha over the McKinsey developer productivity article. But I'm sure that I could not write a better response than this one from
@tastapod
+1 to Sam here, Microsoft has changed a lot in the last decade or so. If github is to be sold to one of the big companies, Microsoft is one of the better options.
Lots of people worried about Microsoft’s acquisition of GitHub. I wonder how many of those people are familiar with the Microsoft of today. There are few other similar large companies I see who so consistently focus their efforts on making developers lives easier. Relax a bit!
I'm very concerned to hear that my friend and colleague
@olabini
has been arrested in Ecuador. He is a strong advocate and developer supporting privacy and has not been able to speak to any lawyers
😢 R.I.P.
Fred Brooks was the author of "The Mythical Man Month" a book that was hugely influential on so many of us. Also his paper "No Silver Bullet" would be on most people's shortlist of most influential papers.
post: using microservices often runs into deployment issues due to a monolithic front end.
@thecamjackson
's article covers benefits of micro frontends and will shortly expand into a full discussion of how to build them
Lots of managers think that to get things done you need to create a sense of urgency.
@testobsessed
explains why it's more effective to create a sense of momentum
NEW POST: Many software teams pack too much work into their iterations. Teams will usually run better when they have deliberate slack, as it allows their delivery to be more predictable and gives them time to improve their environment.
I'm enjoying a vacation, so haven't spent time to do more than scan the recent Prime Video microservices to monolith story. But this analysis from
@adrianco
looks solid.
BREAKING: In major copyright battle between tech giants, SCOTUS sides w/ Google over Oracle, finding that Google didnt commit copyright infringement when it reused lines of code in its Android operating system. The code came from Oracle's JAVA SE platform.
The latest version of the ThoughtWorks technology radar was published this morning. Now the the rush has died down, it's time to wander over and take a look
#TWTechRadar
"We’re going through history, right now, and Facebook is on the wrong side of it. No one wants that on their resume"
we developers cannot evade responsibility for the outcomes of the code we write.
NEW POST
Conways Law has been an important part of my thinking for years. Important enough to affect every system I've come across, and powerful enough that you're doomed to defeat if you try to fight it.
post: We do a lot of Pair Programming at ThoughtWorks. My colleagues
@birgitta410
and Nina Siessegger have written a comprehensive article on what we've learned: how to it well, benefits, and challenges
I'm glad to note that even after the change of ownership of Twitter, I can still indulge in the amusement of watching a simplistic ideology (free-speech absolutism) collapse under its own weight when faced with reality
As a proud American, I'm insulted by the Trump's racist attacks on American citzens. These are part of his treasonous assault on the Constitution and America's most noble ideas. But I'm more appalled by his political allies who fail to condemn these acts.
post: transcript of my Agile Australia keynote on agile in 2018
3 challenges:
- stop Agile Industrial Complex imposing process
- raise importance of tech excellence
- prefer products over projects
and one reason to be optimistic
I like two factor authentication using Google Authenticator, and use it for several things. But I wish it was easier to transfer the keys onto a new phone
"the most important aspect of refactoring: practicing refactoring doesn’t just improve our code, it helps us become better at reasoning about our code"
@mfeathers
No need to be a grumpy old man to say this. The fundamentals of good software development have stayed more similar than not in my 30+ years in the industry. Details change, sure, but energy spent honing core skills will continue to pay.
Agreed!
The fundamentals don't change. I think that quite a lot of this idea of us being a fast-moving industry is guff!
The ephemeral stuff changes, the stuff that you can learn in a few weeks of use, the rest stays the same.
</GrumpyOldManMode>
10 years ago today
@aaronsw
took his own life after overly aggressive prosecution.
He invented internet infrastructure.
He defeated the greatest threat the Internet had ever seen.
And you probably don't know who he is.
You should.
Here’s his story 🧵
new post: In the last few months I've started to develop a set of patterns for how teams can manage source code branching. Here's the first: defining what I mean by a branch - more than just git branch.
something I wrote to a colleague that I think is worth sharing more widely:
"Whenever you get comments from a reviewer, including myself, you should always remember they are imagining the book they want you to write, which may not be the book *you* want to write."
It’s such a pleasure to be in the company of
@martinfowler
’s Refactoring book again.
Whenever you read it last, it’s time to read it again. And if you haven’t read it yet, please do before writing another line of code.
Pardon me,
@Twitter
, can you take my check mark off and give it to these folks? Nobody is trying to harass and impersonate me,
so they need it more than I do.
Squee! 2019 remix.
#Refactoring
was one of the most impactful books on my career and thinking. Thanks again
@martinfowler
for the gift that keeps on giving.
And excellent use of inside front and back covers, as ever.
Today, my colleagues on the (now very virtual) radar team are ready to share the 23rd volume of the ThoughtWorks Technology Radar. We hope you enjoy it.
new post in Branching Patterns
I've described the different approaches of Feature Branching and Continuous Integration, so now it's time to compare them and understand the trade-offs between them.
I got a lot of reactions to this announcement, with lots of warm and supportive comments. People often say that twitter is a nasty place, and while I've certainly seen that, this was an example of a torrent of kindness. Thank you.
NEW POST: My colleague Matthew Foster describes how Team Topologies and Domain-Driven Design helped an organization scale a technical architecture and team structure that significantly improved development speed.
NEW POST
At Thoughtworks, we are strong practitioners of Test Driven Development (TDD). Naturally this leads to the question of how generative AI can help with this technique. Paul Sobocinski writes a brief memo on using TDD with GitHub Copilot
If you're looking for a well-regarded book on what object-orientation is really about, from folks who really know this stuff - then you can't beat this book. So it's wonderful that you can get such a great book as a free PDF download.
@sf105
@jezhumble
@crdrost
Our classic OOD book, Object Design: Roles, Responsibilities, and Collaborations is available for free to download as a pdf from Pearson's website ( they've graciously made this available). You can download it at and share w/ students
Worthwhile post from
@pcalcado
on the relationship between GraphQL and the BFF (Back-end For Front-end) pattern. Key point is to beware of a One-Size-Fits-All API in any form, including GraphQL
Lots of pundits, including fans of OO, like to diss inheritance. But today, as often happens, it made it simple for me to tweak a general behavior for a special case.
Sure it can be misused, and like most things often is, but it pays to learn to use it well
Recently my colleague
@unmeshjoshi
has been delivering a workshop on distributed system design. For this, he's building up a series of patterns culled from established open-source systems. He's published the first couple of these on my site.
NEW POST: Recently I had an enlightening chat with Xu Hao (our Head of Technology in China) about the techniques he's using to prompt ChatGPT to generate useful code