martinfowler Profile Banner
Martin Fowler Profile
Martin Fowler

@martinfowler

Followers
351K
Following
3K
Media
235
Statuses
11K

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

Boston
Joined October 2008
Don't wanna be here? Send us removal request.
@martinfowler
Martin Fowler
3 months
With the recent uptick in tech activity on Bluesky, I've decided that I will start posting there in addition to my current locations. I've also put together my current thoughts on the state of social media.
8
4
53
@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.
68
2K
4K
@martinfowler
Martin Fowler
7 years
30+ years using computers, and printers are still a pain.
109
760
3K
@martinfowler
Martin Fowler
7 years
I expect to release a 2nd edition of the book "Refactoring", in the fall of this year.
76
1K
3K
@martinfowler
Martin Fowler
4 years
posted: a personal note on why I wish to give up doing talks.
182
232
2K
@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?.
130
392
2K
@martinfowler
Martin Fowler
6 years
The second edition of Refactoring has been sent to the printers.
34
477
2K
@martinfowler
Martin Fowler
6 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.
46
899
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.
18
353
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
660
2K
@martinfowler
Martin Fowler
7 years
As May ended, I released the second edition of Refactoring to production.
30
601
2K
@martinfowler
Martin Fowler
4 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 "\".
48
114
1K
@martinfowler
Martin Fowler
5 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.
15
67
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.
44
410
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 .
18
309
1K
@martinfowler
Martin Fowler
7 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.
42
537
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.
193
51
1K
@martinfowler
Martin Fowler
6 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.
40
864
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.
24
444
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?.
62
214
1K
@martinfowler
Martin Fowler
6 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.
27
518
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.
26
494
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.
41
430
1K
@martinfowler
Martin Fowler
2 years
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.
24
254
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.
50
214
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.
57
346
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
31
168
987
@martinfowler
Martin Fowler
7 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
494
935
@martinfowler
Martin Fowler
8 years
"@unclebobmartin wrote thousands of pages on clean code. @KentBeck wrote four lines" --@chethendrickson #aatc2017.
20
562
927
@martinfowler
Martin Fowler
5 years
On the value of getting a functional, but useless version of a new application into production as soon as possible.@ph1.
17
414
904
@martinfowler
Martin Fowler
2 years
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.
11
203
912
@martinfowler
Martin Fowler
4 years
Excellent news. Reimplementing APIs is an important part of software development.
8
175
852
@martinfowler
Martin Fowler
7 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
579
858
@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.
17
379
828
@martinfowler
Martin Fowler
7 years
Refactoring is needed when I run into ugly code, but excellent code needs plenty of refactoring too.
22
320
834
@martinfowler
Martin Fowler
5 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
313
801
@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.
21
299
805
@martinfowler
Martin Fowler
7 years
Excellent article by @jhannes on why justifing practices (clean code) by morality is the wrong approach. (which is why I prefer to avoid it).
28
398
782
@martinfowler
Martin Fowler
6 years
To my US readers: make sure you vote. To my Indian readers: happy Diwali - love and light!.
41
80
774
@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.
26
232
750
@martinfowler
Martin Fowler
7 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
208
764
@martinfowler
Martin Fowler
3 months
Latest Thoughtworks Technology Radar is out - our regular survey of technologies that capture our attention in our client work. We found lots of AI-adjacent tools to be useful, but also that coding assistants often lead to problems.
14
192
777
@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
12
11
738
@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.
9
345
724
@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.
14
184
707
@martinfowler
Martin Fowler
7 years
Teams without psychological safety underperform. Here are the danger signs and routes to improve.
11
510
716
@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.
14
51
680
@martinfowler
Martin Fowler
7 years
1 Build for now.2 Choose tech based on ability to evolve.3 Evolve one use case at a time.-- @randyshoup .
11
398
708
@martinfowler
Martin Fowler
8 years
In my Ruby code, half of my methods are just one or two lines long. 93% are under 10.
34
413
718
@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.
46
182
696
@martinfowler
Martin Fowler
8 years
Recent discussions on remote work and agile makes me need to tweet again my thoughts on this.
18
482
699
@martinfowler
Martin Fowler
8 years
Many people underestimate the importance of deleting unnecessary code, it still has to be read and understood.
35
810
693
@martinfowler
Martin Fowler
6 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
108
668
@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.
17
397
698
@martinfowler
Martin Fowler
1 year
@unclebobmartin I guess I haven't been keeping up, I didn't realize that credible evidence of fraud was "cancel culture" these days.
10
24
680
@martinfowler
Martin Fowler
4 years
I'm very happy to see my birth-country doing this. A fitting accolade to someone who achieved so much, yet was so badly treated in his lifetime.
21
75
682
@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.
74
50
652
@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
308
656
@martinfowler
Martin Fowler
7 years
Building Evolutionary Architectures by @neal4d @rebeccaparsons & @patkua is out. My forward says why it's important.
7
300
658
@martinfowler
Martin Fowler
7 years
We've just finished the copyedit stage of Refactoring 2nd Ed. I've added some thoughts on that to my book memos.
20
189
646
@martinfowler
Martin Fowler
4 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
229
643
@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.
13
231
638
@martinfowler
Martin Fowler
2 years
We need to remember Aaron, this thread is a good summary.
11
142
640
@martinfowler
Martin Fowler
5 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
220
643
@martinfowler
Martin Fowler
8 years
So I don't usually do laptop covers, but this is one I wish I had on my machine - Fantastic
Tweet media one
11
107
627
@martinfowler
Martin Fowler
8 years
from @sogrady - "SOA" was driven by vendors, "microservices" by developers: which is why latter is doing better.
19
480
631
@martinfowler
Martin Fowler
4 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.".
4
121
611
@martinfowler
Martin Fowler
4 years
"Pull requests are an improvement on working alone. But not on working together." - @jessitron .
19
198
602
@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.
11
97
605
@martinfowler
Martin Fowler
5 years
In 2014 @boicy and I described the emerging microservices architectural style. We identified 9 common characteristics. Size wasn't on the list.
12
184
585
@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.
29
402
589
@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.
15
245
582
@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.
9
143
582
@martinfowler
Martin Fowler
4 years
Good idea Kent. @Twitter, you can take my blue check mark too. Give it to someone who needs it.
11
56
546
@martinfowler
Martin Fowler
6 years
Don't teach people to be careful, instead get them to build systems that resist faults.
5
269
569
@martinfowler
Martin Fowler
10 years
Continuous Delivery means you ensure every change can be deployed to production. Continuous Deployment means you deploy every change.
10
805
560
@martinfowler
Martin Fowler
4 years
An image of progress.
8
60
526
@martinfowler
Martin Fowler
1 year
NEW POST: A thorough revision to my article on Continuous Integration.
2
136
558
@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.
14
69
547
@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
556
551
@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
176
562
@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.
13
211
554
@martinfowler
Martin Fowler
5 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
174
547
@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.
15
232
520
@martinfowler
Martin Fowler
3 years
💯. These two years have not been "working from home". They have been "at home in adversity, trying to work".
14
132
527
@martinfowler
Martin Fowler
4 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.
16
12
520
@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
125
543
@martinfowler
Martin Fowler
2 years
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
125
539
@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.
10
197
527
@martinfowler
Martin Fowler
8 years
Can I interest you in a mature and effective certification test for Continuous Integration? .
15
367
510
@martinfowler
Martin Fowler
11 years
If you missed my TDD discussion with @dhh & @KentBeck then you can watch the video at
13
430
509
@martinfowler
Martin Fowler
7 years
Speed up the testing phase of the build by using source code analysis to tell which tests to run - @paul_hammant
7
301
509
@martinfowler
Martin Fowler
7 years
My employer, ThoughtWorks, has been acquired by Apax Funds. The existing management will continue to run things.
34
651
501
@martinfowler
Martin Fowler
5 years
I'm too tired to do more writing, but not too tired for some serious refactoring.
11
49
498
@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
302
499
@martinfowler
Martin Fowler
6 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
171
508
@martinfowler
Martin Fowler
4 years
Not just a hard no, but a hard no baked at 900° with strawberries on top.
19
92
466
@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
22
486
@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.
24
86
486
@martinfowler
Martin Fowler
2 years
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
151
491
@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
172
494