Kent Beck 🌻 Profile Banner
Kent Beck 🌻 Profile
Kent Beck 🌻

@KentBeck

Followers
190,688
Following
875
Media
252
Statuses
17,094

Programmer, coach coach, artist, pokerist, singer/guitarist. Learning to be me. Chief Scientist at Mechanical Orchard. Mastodon: @kentbeck @hachyderm .io

San Francisco, CA
Joined October 2008
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@KentBeck
Kent Beck 🌻
4 years
I am continuing work on "Tidy First? An Exercise In Empirical Software Design" as a @SubstackInc . No paid tier yet, but that's where book chapters will be appearing. Sign up here: .
22
51
309
@KentBeck
Kent Beck 🌻
1 year
I’ve been reluctant to try ChatGPT. Today I got over that reluctance. Now I understand why I was reluctant. The value of 90% of my skills just dropped to $0. The leverage for the remaining 10% went up 1000x. I need to recalibrate.
193
909
6K
@KentBeck
Kent Beck 🌻
4 years
Engineering turns ideas into reality. Science turns reality into ideas.
56
703
4K
@KentBeck
Kent Beck 🌻
6 years
Technical debt
Tweet media one
80
2K
3K
@KentBeck
Kent Beck 🌻
8 years
Being proud of 100% test coverage is like being proud of reading every word in the newspaper. Some are more important than others.
55
2K
3K
@KentBeck
Kent Beck 🌻
6 years
My vote for most valuable programming skill? Walking. I spent 15 minutes going and picking up my laundry and figured out how to avoid 10 hours of programming. 40:1!
70
847
3K
@KentBeck
Kent Beck 🌻
3 years
A 12-month roadmap is like a box of a dozen donuts & you can only eat 1 a month. By the time you get to 10, 11, 12 you'd really rather eat a fresh one. But no, you're in the Clean Plate Club so you choke 'em down.
50
716
3K
@KentBeck
Kent Beck 🌻
4 years
68
1K
3K
@KentBeck
Kent Beck 🌻
4 years
The goal of software design is to create chunks or slices that fit into a human mind. The software keeps growing but the human mind maxes out, so we have to keep chunking and slicing differently if we want to keep making changes.
49
610
2K
@KentBeck
Kent Beck 🌻
6 years
If there’s one lesson I would like the next generation of developers to learn, it is to spend less time doing hard things and more time making hard things easy. Customers benefit from the former. Customers and peers and we ourselves benefit from the latter.
28
883
2K
@KentBeck
Kent Beck 🌻
12 years
for each desired change, make the change easy (warning: this may be hard), then make the easy change
23
1K
2K
@KentBeck
Kent Beck 🌻
6 years
Spotify didn’t implement the Spotify model by copying Spotify. Why do folks at other companies think they can implement the Spotify model by copying Spotify?
78
918
2K
@KentBeck
Kent Beck 🌻
2 years
"Outsourcing unit testing" -- wtaf? That's like wanting to be fit so you pay someone else to exercise.
62
357
2K
@KentBeck
Kent Beck 🌻
1 year
@DeanPreston As a resident, you answer does not meet my needs. I want to park my car free from fear. If you can't help me do that, why exactly are you in office?
13
20
2K
@KentBeck
Kent Beck 🌻
5 years
My code can’t be tidier than my thinking. The purpose of my tidying is to clarify my thinking by manipulating the code. The code ends up better, but because I understand more not because I somehow forced it to be better in spite of my confusion.
18
563
2K
@KentBeck
Kent Beck 🌻
5 years
Tests should be coupled to the behavior of code and decoupled from the structure of code. Seeing tests that fail on both counts.
25
540
2K
@KentBeck
Kent Beck 🌻
4 years
When you try to make fewer mistakes by making fewer mistakes you slow feedback, learn less, and make more mistakes. When you speed feedback you learn more and make fewer mistakes.
22
517
1K
@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.
20
210
1K
@KentBeck
Kent Beck 🌻
12 years
first you learn the value of abstraction, then you learn the cost of abstraction, then you're ready to engineer
13
2K
1K
@KentBeck
Kent Beck 🌻
3 years
Purpose is a surer path to productivity than pressure. Pressure keeps knocking you off the path. Purpose keeps bringing you back onto the path.
16
419
1K
@KentBeck
Kent Beck 🌻
5 years
Don’t assume you need a big solution just because you have a big problem. Even that big solution will be built one step at a time. Choose a feedback loop that also operates at the scale of those steps.
14
514
1K
@KentBeck
Kent Beck 🌻
7 years
I'm bad at handling a bunch of complexity at once, so I've collected strategies for partitioning complexity:
26
553
1K
@KentBeck
Kent Beck 🌻
4 years
Acknowledging that a failure is a failure is less demoralizing than pretending it's a success.
10
276
1K
@KentBeck
Kent Beck 🌻
6 years
Be careful how you talk to yourself. You’re always listening.
9
386
1K
@KentBeck
Kent Beck 🌻
6 years
I’ve long said that the goal of interviewing for a job is not to get hired, it is for both parties to make fully-informed decisions. Turns out this philosophy is easier to apply when you haven’t just gotten turned down 5 times in a row.
38
175
1K
@KentBeck
Kent Beck 🌻
6 years
Re: FP & TDD. More important than tests vs types is the principle of double checking. If you say something twice in independently derived ways, you're more likely to be correct than if you just say it once. Tests are a form of double checking. So are types.
23
429
1K
@KentBeck
Kent Beck 🌻
5 years
I’ve been thinking about the properties that make tests valuable. Here is my list.
20
521
1K
@KentBeck
Kent Beck 🌻
2 years
Talking with a senior engineer I noticed a pattern. There were bugs. Nobody knew how many. They weren't on anyone's roadmap. So the engineer dug in. Discovered curious & horrifying facts. Discovered a lack of organizational urgency. Fixed stuff. Encouraged others to fix stuff.
18
157
946
@KentBeck
Kent Beck 🌻
3 years
Criticism isn't just disliking things. Arts schools teach the skill & the respect for the work. Computer science schools don't.
36
156
944
@KentBeck
Kent Beck 🌻
3 years
"How long is it going to take to drive?" "Drive where?" "Nobody knows, we just need to know how long it is going to take." ...I'm too sad, you finish this...
39
194
933
@KentBeck
Kent Beck 🌻
10 years
the *craft* of programming begins with empathy, not formatting or languages or tools or algorithms or data structures
24
1K
920
@KentBeck
Kent Beck 🌻
7 years
The purpose of your conference paper abstract is to get your paper in the A Pile and keep it out of the B Pile. The sentences are: * The problem * Why the problem is a problem * One Startling Sentence * The implication of the One Startling Sentence
@jozilla
Jo Vermeulen
7 years
@NElmqvist I really like @KentBeck 's 4-sentence abstract (item #4 ), seems like a good companion article to this one:
4
10
46
6
234
933
@KentBeck
Kent Beck 🌻
5 years
If we’re using technology X poorly and are frustrated, then moving to Y won’t help. We won’t experience frustration for a while, but only because we are distracted. All the same dysfunctions will reappear. Instead, start working better and then re-evaluate the technology.
22
428
913
@KentBeck
Kent Beck 🌻
5 years
Big changes are an illusion. All changes are small. There are only longer and shorter feedback cycles.
9
373
897
@KentBeck
Kent Beck 🌻
5 years
Software design thought for the day: just because two elements are *connected* that doesn’t mean they are *coupled*. Reducing connection isn’t an effective goal. Reducing actual coupling (where changing one element necessitates changing another) is.
15
322
887
@KentBeck
Kent Beck 🌻
4 years
I've seen people trashing Mark Zuckerberg as evil and greedy. A simpler story works for me. He is profoundly unprepared for the power he wields. I'm not sure who *would* be prepared. At this critical juncture he is making mistakes with worldwide consequences.
73
126
878
@KentBeck
Kent Beck 🌻
7 years
And the tale of his days at Facebook were two thousand five hundred and ninety three. Time for some career exploration as an independent. Expect to see me try some wacky stuff.
62
117
879
@KentBeck
Kent Beck 🌻
3 years
"When engagement is your only metric you're going to end up re-inventing addiction" -- @keithmadams
7
280
873
@KentBeck
Kent Beck 🌻
4 years
There needs to be a word for "experiment whose outcome was not what was hoped for". Calling them "mistakes" or "failures" weakens the meanings of those valuable words.
205
127
868
@KentBeck
Kent Beck 🌻
7 years
Being busy is a problem, not a solution
9
497
857
@KentBeck
Kent Beck 🌻
3 years
Let's say you interested in TDD but you just can't figure out how to write a test before you write the code. Here's a foolproof exercise that let's you experience the TDD workflow in spite of that block:
3
230
806
@KentBeck
Kent Beck 🌻
5 years
I'm I the only one who finds, "Investing in improving structure," leads to better feelings, decisions, and outcomes than, "Paying off technical debt"?
52
180
794
@KentBeck
Kent Beck 🌻
4 years
OH: XP is the Betamax of Agile It hurts cause it’s true
46
170
796
@KentBeck
Kent Beck 🌻
7 years
"Do it right and you won't have to do it over". Yeah, until "right" changes. And it always changes.
22
611
778
@KentBeck
Kent Beck 🌻
5 years
P1: Aren't you ashamed of writing code like this? P2: What do you mean by "this"? P1: Sky-high cyclomatic complexity, inconsistent naming, & duplication. P2: Oh, I thought you meant "profitable", and the answer is no I'm not ashamed.
52
171
749
@KentBeck
Kent Beck 🌻
8 years
If you know how to design the software, design the software. Otherwise implement now, learn, and design later.
12
699
747
@KentBeck
Kent Beck 🌻
11 months
Dear Software Architects, If you want to write ADRs, write ADRs. But please also include tracking. If no one reads the ADRs, consider not writing them in future. Time spent writing ADRs incurs opportunity cost. Make sure you're getting something for the price.
42
128
738
@KentBeck
Kent Beck 🌻
7 years
“You are over-qualified for the position and we don’t think you’d be satisfied” is de facto age discrimination
28
313
728
@KentBeck
Kent Beck 🌻
5 years
Don’t bring opinions to a data fight.
32
220
731
@KentBeck
Kent Beck 🌻
6 years
I unexpectedly have two weeks free before I start my new job (more on that later). I decided to time-box write the book on software design that’s been ripening in my head for a decade or two. Here’s the outline:
Tweet media one
23
87
735
@KentBeck
Kent Beck 🌻
2 years
Pushing The "Hardcore" Button. There are times in my career when I would have already pushed the Hardcore Button. My self-image was based on out-working, out-intensitying everyone. I wouldn't push it now, but I can understand if someone else does. Here are 3 strategies.
29
131
725
@KentBeck
Kent Beck 🌻
9 years
Alternative to estimates: do the most important thing until either it ships or it is no longer the most important thing
26
950
732
@KentBeck
Kent Beck 🌻
4 years
I don’t often need recursion but when I need it I *really* need it.
Tweet media one
24
127
722
@KentBeck
Kent Beck 🌻
6 years
All systems are created incrementally, one character typed at a time. The choice is length and scope of feedback loops.
6
307
699
@KentBeck
Kent Beck 🌻
5 years
OH from a student: “it’s like the code is in a perpetual state of waiting to be refactored” You have snatched the pebble from my hand.
11
168
698
@KentBeck
Kent Beck 🌻
3 years
Does everybody not know the trick of coding backwards? Start coding with "return result". Then the previous line "result = ...". Then the previous line and so on back to the beginning. Try it! Would make a great TikTok.
59
83
703
@KentBeck
Kent Beck 🌻
7 years
Happy 20th, JUnit! Thank you @ErichGamma , a great pairing partner whether sitting in a plane, on an Alp, or by the Limmat.
25
326
701
@KentBeck
Kent Beck 🌻
3 years
I made a big mistake when I called them "iterations". I should have just said, "weeks". Then the whole iteration length debate, where there are weird incentives encouraging too-long feedback cycles, would just be absurd.
24
148
704
@KentBeck
Kent Beck 🌻
3 years
You can't fix culture with policy.
32
166
661
@KentBeck
Kent Beck 🌻
4 years
Output != outcome but !output == !outcome.
26
159
636
@KentBeck
Kent Beck 🌻
2 years
Layoff announcement 101: do *not*, under any circumstances, ever ever mention how difficult the process or decision has been for you. No. One. Cares. No one is going to feel sorry for you. People will blame you more, not less. Just say you made a business decision and here it is.
18
78
641
@KentBeck
Kent Beck 🌻
4 years
The most entertaining aspect of #GameStop for me has been watching the hedge funds who thought they were the casino suddenly realize that nope they are punters too.
8
60
624
@KentBeck
Kent Beck 🌻
4 years
Writing tests is an exercise in reversibility. We put tests in place so making mistakes in the behavior of code has ~0 cost. It’s expensive, but compared to what?
24
126
630
@KentBeck
Kent Beck 🌻
4 years
It's easier to get an idea out of my head than let it ruin my weekend rattling around. Here's one: my take on why moving to micro-services is neither quick nor easy.
21
227
619
@KentBeck
Kent Beck 🌻
3 years
1. Change the code as usual 2. Write a test that only passes after the change 3. Revert to before 1 4. Type the test again (copy/paste is cheating & invalidates the warranty of the exercise) 5. Make it compile by changing the code 6. See it fail 7. Change the code to make it pass
22
96
614
@KentBeck
Kent Beck 🌻
5 years
A plan with no slack is less a plan and more a gestating disappointment
9
194
604
@KentBeck
Kent Beck 🌻
7 years
I saw an old friend who is terminally ill. They are just doing their thing. I thought, “Why aren’t you out living it up?” That’s backwards. The question is why am I not doing something I would continue doing if I was diagnosed?
12
166
596
@KentBeck
Kent Beck 🌻
4 years
Smart ≠ right
26
83
590
@KentBeck
Kent Beck 🌻
6 years
OH: “you don’t get what you deserve, you get what you negotiate”. Wisdom from the lips of an investment banker.
8
201
581
@KentBeck
Kent Beck 🌻
7 years
duplication of effort isn't bad if: 1) it's not too much effort 2) it reduces risk or improves exploration 3) coordinating is expensive
16
401
589
@KentBeck
Kent Beck 🌻
4 years
No justice, no peace
@peterdaou
Peter Daou
4 years
DON'T LOOK AWAY. The cop groped her and when she tried to break away, she was beaten while standing still. THIS IS AN ATTEMPT TO CRUSH DISSENT LIKE A DICTATORSHIP
6K
65K
104K
35
259
571
@KentBeck
Kent Beck 🌻
5 years
Hey, @Medium . Why would I want my writing to be part of your "metered paywall"? I can see the benefit for you if it was, but I want everyone to be able to see what I write. Are you promising me millions of dollars for my 1000 readers? I don't get what's in it for me.
22
81
580
@KentBeck
Kent Beck 🌻
5 years
Drives me bonkers to see a function that takes a handful of arguments also take “args”, a hash with fixed keys. Yo, your function takes 15 arguments. Be explicit about it. There’s lots you can do once you admit you have a problem.
25
101
571
@KentBeck
Kent Beck 🌻
6 years
This is pure @martinfowler at his fowleriest
@luc4leone
Luca Leone
6 years
so clear. new book on refactoring by @martinfowler and @KentBeck
Tweet media one
4
96
308
9
181
561
@KentBeck
Kent Beck 🌻
8 years
in addition to all the "30 under 30" lists, i'd like to see a "50 over 50" list of folks who are still producing in tech. #moralHazard
21
265
543
@KentBeck
Kent Beck 🌻
10 years
pair programming is not a "go faster" strategy, it is a "waste less" strategy (which often results in going faster)
10
965
544
@KentBeck
Kent Beck 🌻
6 years
Earn or Learn or Move
11
178
536
@KentBeck
Kent Beck 🌻
8 years
Sometimes working extra hours makes a big difference. Don't work extra hours if this isn't one of those times.
9
386
522
@KentBeck
Kent Beck 🌻
7 years
if you treat people like chess pieces, don't be surprised if they show the initiative and creativity of chess pieces
6
393
530
@KentBeck
Kent Beck 🌻
7 years
Useful skills: * Stopping to think when thinking would help * Just doing something when thinking wouldn't help
9
279
525
@KentBeck
Kent Beck 🌻
9 years
The only way it's all going to go according to plan is if you don't learn anything
8
540
521
@KentBeck
Kent Beck 🌻
3 years
Mystery: "Get it done faster/sooner/more" Why? What happens after we get it done faster/sooner/more? I need to remember to ask this question. If there's no good answer then this is just someone pushing their anxiety down a power gradient.
34
135
521
@KentBeck
Kent Beck 🌻
11 months
Given the cost of blocking, asynchronous code reviews, I'm surprised more teams haven't experimented with eliminating them. What bad things would happen if you just integrated changes? Are those bad things happening already? What else could you do to avoid those problems?
82
105
526
@KentBeck
Kent Beck 🌻
7 years
Autonomy without accountability is just vacation
17
411
517
@KentBeck
Kent Beck 🌻
9 years
Work in small increments. Be kind. Be honest. The rest is details. Let's have a conference about that.
17
515
512
@KentBeck
Kent Beck 🌻
1 year
Software design is preparation for change.
11
121
511
@KentBeck
Kent Beck 🌻
6 years
My experiment fighting jetlag with chocolate is a rousing success. I’m not sleeping any better but I’ve eaten a *lot* of chocolate.
12
50
509
@KentBeck
Kent Beck 🌻
5 years
Big architectural changes that start with small, safe steps can start right now. This minute. We can integrate before lunch and deploy on a Friday.
3
204
504
@KentBeck
Kent Beck 🌻
2 years
This is what senior engineers do. No particular organizational incentives, just pride & curiosity.
11
42
504
@KentBeck
Kent Beck 🌻
5 years
Along "make the hard change easy then make the easy to change" lines, I found this from 20 years ago.
Tweet media one
4
172
509
@KentBeck
Kent Beck 🌻
1 year
Experts seldom solve problems by stretching their skills to the limit. First they spend considerable effort decomposing the problem into tasks that can be solved with ordinary skills.
16
127
496
@KentBeck
Kent Beck 🌻
2 years
Whenever you push a button and the light doesn’t come on there are 3 options: • The button is broken • The light is broken • You didn’t actually push the button
153
57
496
@KentBeck
Kent Beck 🌻
6 years
All the talk about the Four Rules of Simple Design got me inspired, so I added a reference card to my Etsy store: (For those of you not following along at home, my Etsy store is a sample 3X Exploration.)
Tweet media one
9
191
490
@KentBeck
Kent Beck 🌻
6 years
I'm not proposing to charge you $X for an hour, day, week of my time. I'm proposing to charge you $X for the influence *you* asked *me* to have on you and your team. I'm happy to recommend good people who work for less.
16
150
486
@KentBeck
Kent Beck 🌻
6 years
Move fast and break small things
15
165
471
@KentBeck
Kent Beck 🌻
4 years
I can’t stop sighing. Apparently I held my breath for 4 years.
13
32
463
@KentBeck
Kent Beck 🌻
4 years
Coupling vs cohesion. Coupling: • Can be hard to find • Can be really hard &/| expensive to eliminate. Cohesive sub-elements are: • Usually easy to find • Cheap to achieve, & • Help you find de-coupling.
9
104
467
@KentBeck
Kent Beck 🌻
3 years
Just learned a beautiful new phrase: execution through momentum. When a team finds its rhythm you don't have to work to keep it going, you just have to work to keep it from being disturbed.
10
96
463
@KentBeck
Kent Beck 🌻
6 years
Mark this day on your calendars: I agree with Mr. Alan Cooper. The foundation of agile is programming together. Don’t build the house without first laying the foundation. (Once you lay the foundation you may not need a fancy house.)
@MrAlanCooper
Alan Cooper
6 years
When I started programming, it was a solo skill, performed by individuals, with little or no sharing and virtually no collaboration. A culture was built around those facts. 1
37
947
2K
6
220
460
@KentBeck
Kent Beck 🌻
5 years
Big difference between being confident in your decisions and being confident in your decision making. Confidence in decision making means you believe you couldn’t have done a better job right now, but you have a feedback loop (and data/story gathering) to review the decision.
4
184
454