Kent Beck ๐ŸŒป Profile Banner
Kent Beck ๐ŸŒป Profile
Kent Beck ๐ŸŒป

@KentBeck

190,610
Followers
876
Following
252
Media
17,095
Statuses

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.
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
307
@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
704
4K
@KentBeck
Kent Beck ๐ŸŒป
6 years
Technical debt
Tweet media one
79
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.
56
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
850
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
717
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
612
2K
@KentBeck
Kent Beck ๐ŸŒป
5 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
885
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
359
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
565
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
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.
@IanColdwater
Ian Coldwater ๐Ÿ“ฆ๐Ÿ’ฅ
4 years
37
370
2K
21
210
1K
@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 ๐ŸŒป
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
420
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
515
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
554
1K
@KentBeck
Kent Beck ๐ŸŒป
4 years
Acknowledging that a failure is a failure is less demoralizing than pretending it's a success.
10
277
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
176
1K
@KentBeck
Kent Beck ๐ŸŒป
6 years
Be careful how you talk to yourself. Youโ€™re always listening.
9
387
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
431
1K
@KentBeck
Kent Beck ๐ŸŒป
5 years
Iโ€™ve been thinking about the properties that make tests valuable. Here is my list.
20
523
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.
19
158
952
@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
945
@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
195
935
@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 ๐ŸŒป
6 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
6 years
@NElmqvist I really like @KentBeck 's 4-sentence abstract (item #4 ), seems like a good companion article to this one:
4
10
47
6
236
935
@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
431
914
@KentBeck
Kent Beck ๐ŸŒป
5 years
Big changes are an illusion. All changes are small. There are only longer and shorter feedback cycles.
9
373
902
@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
324
892
@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.
74
126
879
@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
880
@KentBeck
Kent Beck ๐ŸŒป
3 years
"When engagement is your only metric you're going to end up re-inventing addiction" -- @keithmadams
7
281
873
@KentBeck
Kent Beck ๐ŸŒป
3 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.
208
127
867
@KentBeck
Kent Beck ๐ŸŒป
7 years
Being busy is a problem, not a solution
9
499
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
809
@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
795
@KentBeck
Kent Beck ๐ŸŒป
3 years
OH: XP is the Betamax of Agile It hurts cause itโ€™s true
46
170
800
@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
612
782
@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
172
751
@KentBeck
Kent Beck ๐ŸŒป
8 years
If you know how to design the software, design the software. Otherwise implement now, learn, and design later.
12
702
747
@KentBeck
Kent Beck ๐ŸŒป
10 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
741
@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
729
@KentBeck
Kent Beck ๐ŸŒป
5 years
Donโ€™t bring opinions to a data fight.
33
218
735
@KentBeck
Kent Beck ๐ŸŒป
5 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
736
@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
314
729
@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
128
724
@KentBeck
Kent Beck ๐ŸŒป
5 years
All systems are created incrementally, one character typed at a time. The choice is length and scope of feedback loops.
6
307
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
327
703
@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
707
@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
700
@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
149
707
@KentBeck
Kent Beck ๐ŸŒป
3 years
You can't fix culture with policy.
32
166
663
@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
643
@KentBeck
Kent Beck ๐ŸŒป
4 years
Output != outcome but !output == !outcome.
26
158
637
@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
127
632
@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
621
@KentBeck
Kent Beck ๐ŸŒป
5 years
A plan with no slack is less a plan and more a gestating disappointment
9
195
604
@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
616
@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
601
@KentBeck
Kent Beck ๐ŸŒป
4 years
Smart โ‰  right
26
83
594
@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
590
@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
105K
36
260
570
@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
585
@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
582
@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
102
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
182
562
@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
545
@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
966
545
@KentBeck
Kent Beck ๐ŸŒป
6 years
Earn or Learn or Move
11
178
537
@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
388
524
@KentBeck
Kent Beck ๐ŸŒป
7 years
Useful skills: * Stopping to think when thinking would help * Just doing something when thinking wouldn't help
11
279
527
@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
534
@KentBeck
Kent Beck ๐ŸŒป
8 years
The only way it's all going to go according to plan is if you don't learn anything
8
542
520
@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
525
@KentBeck
Kent Beck ๐ŸŒป
7 years
Autonomy without accountability is just vacation
17
410
519
@KentBeck
Kent Beck ๐ŸŒป
10 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
525
@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
519
514
@KentBeck
Kent Beck ๐ŸŒป
1 year
Software design is preparation for change.
11
123
512
@KentBeck
Kent Beck ๐ŸŒป
2 years
This is what senior engineers do. No particular organizational incentives, just pride & curiosity.
11
42
505
@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
51
508
@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 ๐ŸŒป
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
205
507
@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.
17
128
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
154
57
495
@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
192
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
151
487
@KentBeck
Kent Beck ๐ŸŒป
6 years
Move fast and break small things
15
165
470
@KentBeck
Kent Beck ๐ŸŒป
4 years
I canโ€™t stop sighing. Apparently I held my breath for 4 years.
13
33
469
@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
470
@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
464
@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
950
2K
6
220
460
@KentBeck
Kent Beck ๐ŸŒป
4 years
โ€œShame and Boundariesโ€. Litter guy violates norms. Pick up lady holds him to account. Litter guy feels ashamed and tries to put it on pick up lady. Finger guy sets boundariesโ€”โ€œthe violation, the shame, and the processing of the shame are your responsibility, litter guyโ€.
@sohbunshu
ๅฎ‹ใ€€ๆ–‡ๆดฒ
4 years
ใ‚„ใ‚ใ‚‹ใ‚“ใ 
942
45K
184K
10
100
455