Martin Fowler Profile Banner
Martin Fowler Profile
Martin Fowler

@martinfowler

Followers
356,439
Following
218
Media
235
Statuses
10,653

Author on Software Development. Works for Thoughtworks. Also hikes, watches theater, and plays modern board games. He/him. @mfowler @toot .thoughtworks.com

Boston
Joined October 2008
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
@martinfowler
Martin Fowler
7 years
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.
70
2K
4K
@martinfowler
Martin Fowler
7 years
30+ years using computers, and printers are still a pain
115
783
3K
@martinfowler
Martin Fowler
3 years
posted: a personal note on why I wish to give up doing talks
195
254
3K
@martinfowler
Martin Fowler
2 years
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?
147
437
2K
@martinfowler
Martin Fowler
5 years
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
47
942
2K
@martinfowler
Martin Fowler
4 years
My younger self did not have "bookstore's data center causes widespread failures in vacuum cleaners" on his list of future events.
@Carnage4Life
Dare Obasanjo🐀
4 years
Welcome to the future
Tweet media one
Tweet media two
360
10K
47K
19
376
2K
@martinfowler
Martin Fowler
6 years
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
8
681
2K
@martinfowler
Martin Fowler
3 years
I got my covid jab a few days ago, but it doesn't seem to be working. I still prefer separating my file paths with "/" rather than "\"
53
118
2K
@martinfowler
Martin Fowler
4 years
@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.
16
73
1K
@martinfowler
Martin Fowler
7 years
My feelings about Facebook are like those of Windows in the 90's. I use because everyone else does, but I don't like it
45
422
1K
@martinfowler
Martin Fowler
1 year
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
19
326
1K
@martinfowler
Martin Fowler
6 years
+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.
@samnewman
Sam Newman
6 years
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!
74
514
2K
44
559
1K
@martinfowler
Martin Fowler
4 years
Is it over-kill to set up an elastic search instance on a home server to query data about a personal music library? Asking for a friend.
202
52
1K
@martinfowler
Martin Fowler
5 years
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
42
908
1K
@martinfowler
Martin Fowler
2 years
😢 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.
@Grady_Booch
Grady Booch
2 years
I’m sad to report that Fred Brooks has died this day. @ComputerHistory
70
448
1K
26
471
1K
@martinfowler
Martin Fowler
5 years
I wonder how Google feels about the President revealing that they need 1700 people to stand up a website?
65
226
1K
@martinfowler
Martin Fowler
5 years
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
28
533
1K
@martinfowler
Martin Fowler
5 years
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
27
513
1K
@martinfowler
Martin Fowler
6 years
Refactoring 2nd Ed was released on informit over the weekend. Should appear on Amazon in the next week or so.
42
441
1K
@martinfowler
Martin Fowler
1 year
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.
25
268
1K
@martinfowler
Martin Fowler
7 years
We've installed a cutting-edge voice recognition system in our house. Mostly we use it as a kitchen timer.
55
221
1K
@martinfowler
Martin Fowler
4 years
Pull requests introduce a human delay into a team's integration workflow. @kief explains how and outlines other ways to do code review
65
360
1K
@martinfowler
Martin Fowler
6 years
Back home from two weeks on the road, and I finally get to hold my new book
Tweet media one
32
175
1K
@martinfowler
Martin Fowler
6 years
new post: Do you want to split a monolith into microservices? If so @zhamakd has been down that road and has lessons to share
8
512
973
@martinfowler
Martin Fowler
3 years
Excellent news. Reimplementing APIs is an important part of software development.
@SCOTUSblog
SCOTUSblog
3 years
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.
60
1K
3K
10
191
906
@martinfowler
Martin Fowler
6 years
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
6
600
896
@martinfowler
Martin Fowler
5 years
I've put together a guide page for articles about testing on my site. I hope folks find it a handy way to explore those articles and bliki posts.
18
393
864
@martinfowler
Martin Fowler
7 years
Refactoring is needed when I run into ugly code, but excellent code needs plenty of refactoring too.
23
336
871
@martinfowler
Martin Fowler
4 years
"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.
15
329
862
@martinfowler
Martin Fowler
6 years
Adding logging code for observability often results in low-level code adding cruft to core logic. @ph1 describes a better pattern
23
310
836
@martinfowler
Martin Fowler
6 years
To my US readers: make sure you vote To my Indian readers: happy Diwali - love and light!
41
85
799
@martinfowler
Martin Fowler
2 years
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.
27
250
793
@martinfowler
Martin Fowler
6 years
My name may go on the cover of the second edition of Refactoring, but I couldn't do it without some special people
13
210
792
@martinfowler
Martin Fowler
4 years
One of the great things about having to stay at home this year is being ten minutes walk away from scenes like this.
Tweet media one
14
11
772
@martinfowler
Martin Fowler
5 years
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
10
361
762
@martinfowler
Martin Fowler
6 years
Copies of the 2nd edition of Refactoring have been printed and are on their way to Pearson's warehouse. We hope to open up orders next week.
15
189
745
@martinfowler
Martin Fowler
2 years
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
15
57
742
@martinfowler
Martin Fowler
7 years
In my Ruby code, half of my methods are just one or two lines long. 93% are under 10.
@RonJeffries
Ron Jeffries
7 years
IMO ten is too long in most cases.
14
40
80
36
433
743
@martinfowler
Martin Fowler
6 years
We need some cleverly named law that says every blunder with XML config files can be made again (and worse) with YAML config files
50
186
735
@martinfowler
Martin Fowler
8 years
Many people underestimate the importance of deleting unnecessary code, it still has to be read and understood.
@paulg
Paul Graham
8 years
Unnecessary code is not as harmless as I used to think. It sends the misleading signal that it's necessary.
23
163
302
35
836
734
@martinfowler
Martin Fowler
7 years
Recent discussions on remote work and agile makes me need to tweet again my thoughts on this
18
504
731
@martinfowler
Martin Fowler
10 months
@unclebobmartin I guess I haven't been keeping up, I didn't realize that credible evidence of fraud was "cancel culture" these days.
12
28
733
@martinfowler
Martin Fowler
5 years
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.
20
126
727
@martinfowler
Martin Fowler
6 years
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
18
412
729
@martinfowler
Martin Fowler
6 years
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
79
50
687
@martinfowler
Martin Fowler
6 years
"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
15
318
686
@martinfowler
Martin Fowler
6 years
We've just finished the copyedit stage of Refactoring 2nd Ed. I've added some thoughts on that to my book memos.
20
193
676
@martinfowler
Martin Fowler
3 years
I've read a couple of things recently about testing pyramids, trophies, and honeycombs. Here are my thoughts, with a nod to @timbray and @searls
18
240
681
@martinfowler
Martin Fowler
5 years
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.
@davefarley77
Dave Farley
5 years
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>
11
34
125
14
238
668
@martinfowler
Martin Fowler
2 years
We need to remember Aaron, this thread is a good summary
@Patticus
Patrick Campbell
2 years
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 🧵
Tweet media one
312
7K
24K
11
149
670
@martinfowler
Martin Fowler
4 years
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.
9
228
670
@martinfowler
Martin Fowler
7 years
So I don't usually do laptop covers, but this is one I wish I had on my machine - Fantastic
Tweet media one
13
111
659
@martinfowler
Martin Fowler
3 years
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."
6
127
654
@martinfowler
Martin Fowler
6 years
Thank you for the mention. I hope you find it useful to teach some new people this technique that we find so valuable.
@dhh
DHH
6 years
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.
Tweet media one
25
269
1K
11
97
632
@martinfowler
Martin Fowler
4 years
In 2014 @boicy and I described the emerging microservices architectural style. We identified 9 common characteristics. Size wasn't on the list.
12
196
616
@martinfowler
Martin Fowler
11 years
10 years ago today I wrote that we cannot measure productivity. Still true and still needs to be said. http://t.co/XIRnToLPE8
32
422
608
@martinfowler
Martin Fowler
5 years
new post: I've had a few people asking recently about the meaning and origin of "waterfall", so felt it was time to do add it to the bliki
16
251
604
@martinfowler
Martin Fowler
6 years
After a couple of weeks on the road, I've been working on the web edition of second edition of Refactoring. Not quite done yet, but looking close.
10
148
599
@martinfowler
Martin Fowler
4 years
Good idea Kent. @Twitter , you can take my blue check mark too. Give it to someone who needs it.
@KentBeck
Kent Beck 🌻
4 years
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.
21
210
1K
12
66
600
@martinfowler
Martin Fowler
9 years
Continuous Delivery means you ensure every change can be deployed to production. Continuous Deployment means you deploy every change.
10
846
584
@martinfowler
Martin Fowler
4 years
An image of progress
@jocjo
Jo Avent
4 years
Tweet media one
4
54
230
8
66
582
@martinfowler
Martin Fowler
9 months
NEW POST: A thorough revision to my article on Continuous Integration
2
146
581
@martinfowler
Martin Fowler
8 years
A failure in a high-level test is not just a bug in functional code, it's also a missing unit test
15
582
581
@martinfowler
Martin Fowler
6 years
I'm proud to know I made an impact. I hope it helps you have a similar effect on others in the future.
@tastapod
Daniel Terhorst-North is mostly @[email protected]
6 years
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.
Tweet media one
8
23
197
14
69
571
@martinfowler
Martin Fowler
4 years
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.
10
184
581
@martinfowler
Martin Fowler
5 years
new post: I'm a strong proponent of extensive automated testing, but there is still an essential role for Exploratory Testing
14
223
577
@martinfowler
Martin Fowler
4 years
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.
7
180
565
@martinfowler
Martin Fowler
7 years
I'm despondent to watch us debate whether men and women can be equally good engineers and if nazis are no worse than their opponents
16
248
561
@martinfowler
Martin Fowler
3 years
💯 These two years have not been "working from home". They have been "at home in adversity, trying to work".
15
142
563
@martinfowler
Martin Fowler
3 years
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.
@martinfowler
Martin Fowler
3 years
posted: a personal note on why I wish to give up doing talks
195
254
3K
17
13
560
@martinfowler
Martin Fowler
1 year
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.
5
131
552
@martinfowler
Martin Fowler
1 year
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
9
126
551
@martinfowler
Martin Fowler
3 years
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.
@rebeccawb
@[email protected] Rebecca Wirfs-Brock
3 years
@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
23
274
707
10
209
549
@martinfowler
Martin Fowler
10 years
If you missed my TDD discussion with @dhh & @KentBeck then you can watch the video at
14
442
531
@martinfowler
Martin Fowler
7 years
My employer, ThoughtWorks, has been acquired by Apax Funds. The existing management will continue to run things.
35
673
522
@martinfowler
Martin Fowler
5 years
I'm too tired to do more writing, but not too tired for some serious refactoring.
12
51
521
@martinfowler
Martin Fowler
7 years
bliki: I've long been wary of the term "integration test". Here's how I think about it and why you should consider the narrow style
9
313
518
@martinfowler
Martin Fowler
5 years
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
4
178
522
@martinfowler
Martin Fowler
2 years
@unclebobmartin Often, when something seems illogical to me, it's because I don't know enough about the situation to understand the logic.
15
24
524
@martinfowler
Martin Fowler
4 years
Not just a hard no, but a hard no baked at 900° with strawberries on top.
19
97
516
@martinfowler
Martin Fowler
5 years
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
26
91
516
@martinfowler
Martin Fowler
4 years
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.
7
179
513
@martinfowler
Martin Fowler
1 year
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
17
154
507
@martinfowler
Martin Fowler
5 years
Be wary of taking advice about remote work from people like me who've been doing it for many years 🧵
11
137
499