Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profileg
Allen Holub @allenholub.bsky.social

@allenholub

I help ppl build software better: https://t.co/dLn5NSGLCx. DM is open. Upcoming-classes: https://t.co/nLt65SFIBP. In-progress book: https://t.co/HVdPJoibvy

ID:21375846

linkhttp://holub.com calendar_today20-02-2009 05:05:57

85,0K Tweets

70,1K Followers

647 Following

Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

Software is nothing at all like buildings. Why then, do we adopt the terminology (and worse, the processes) of the building trade? It just gives people the wrong idea. Construct, estimate, architect, inspect--all these building-related terms do is sow confusion.

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

When I introduce mobbing to a client, I often see the following pattern:
1) This isn't appropriate for mobbing; why don't Sally and Jeff go off on their own and do it?
2) (a few days elapse) during which the rest of the team mobs on the app.
3) Sally and Jeff come back.
4) Let's…

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

Antoine de Saint Exupéry said 'Perfection is achieved not when there is nothing more left to add, but when there is nothing more to take away.' I didn't know that he was a software architect/developer

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

I can't disagree strongly enough with this sort of thinking 👇 . Data is irrelevant. We've known that ever since the early days of OO Design. Components *DO* things. The way that they do things (including the data they use to do things), is best hidden inside the component, not…

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

Read up on DDD (Domain Driven Design). The system is decomposed up into 'entities' and 'aggregates' based on the domain of the program. Each of these components has it's own database. They communicate with each other over messaging. You could implement them in a monolith, or…

account_circle
Frédéric Bonnet 🇺🇦 @codinbzh@mastodon.comwork.io(@codinbzh) 's Twitter Profile Photo

Daniel Gerlach Allen Holub @allenholub.bsky.social DevGPT Since I started practicing TDD a couple decades ago, my usage of a debugger has drastically fallen to the point I'm more productive with plain printf's and no longer feel the need to setup debugging tools but in rare and painful situations.

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

Typically, you don’t need a database. Or more precisely, each entity should have its own database, and more often than not, that “database“ can be something like a flat file full of JSON or key/value pairs. Whether you can do that or not, depends entirely on your overall…

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

Pretty much everything you do in debugger is a test. It’s just that you’re making up the test as you go along, and then discarding it once you’ve learned what you wanted to learn. Tests are questions. In the debugger, you’re asking yourself questions and then seeing if you get…

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

people are responding to this, as if I was saying, you should not use a debugger under any circumstances. That’s a nonsensical point of view, and is not at all what I said. However, using a debugger as a development tool is a really bad idea IMO. I use a debugger two or three…

account_circle
Daniel Gerlach(@gerlacdt) 's Twitter Profile Photo

DevGPT Allen Holub @allenholub.bsky.social sometimes... but rarely

Since I use TDD, my debugging time is reduced to a minimum. Personal statistic:

- used a debugger twice last year as a full time developer

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

Instead of using a debugger, which will double your dev time, use TDD, which will half your dev time. Everything you do in the debugger is, in effect, an ad hoc test, so just write the test. TDD will also give you a nice set of runnable examples — live documentation.

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

This is a good question, but I don't know how I'd go about doing such a thing. Any ideas? Anybody? :-)

Neither I nor Bob have much influence among the upper management crowd in the companies that need help the most (unless they happen to also be engineers). They've never heard…

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

I've never been in the convincing business, so I have no interest in selling anything. I've even come to actively avoid the word 'Agile' lately. It's come to represent a steaming pile of stinking dysfunction I want nothing to do with. When possible, I talk about effective…

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

A non-software question. For my entire life, spent coffee grounds sitting in the compost have turned blue. For the past six months, however, they've been pink! What environmental conditions would cause the wild yeast (or whatever the mold is) to change like that?

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

Backlogs are a Scrum thing, not an Agile thing. Customer-driven shops that work with agility decide what to do next by doing the current thing (and getting feedback). The decision is driven by strategic planning, but backlogs are entirely tactical.

account_circle
Allen Holub @allenholub.bsky.social(@allenholub) 's Twitter Profile Photo

I hear the word 'leader' bandied around a lot. Most people who use the word to describe themselves are managers, not leaders. There's a big difference. Leaders emerge when people decide to follow them. It is not a career path.

account_circle