https://en.wikipedia.org/wiki/Chrysler_Comprehensive_Compens...
What nobody really talks about is how the project was ultimately cancelled. Reasons for the flop include unclear requirements, and the customer representative resigning due to burnout. That's fine, though many XP proponents sell it as a panacea that lets you respond to any change.
It's just remarkable to me how everyone involved was able to bootstrap careers as thought leaders from a project that failed so bad that Chrysler ended up banning XP.
My understanding was that Jack poached a lot of XP practitioners away from Pivotal Labs to help build both Twitter and Square?
An "appeal to authority" means something more specific (e.g. the logical fallacy "argument from authority") and this is not happening here.
The whole point I'm trying to make is that we should evaluate the writing based on its content. The person I originally responded to was dismissing it solely because of the person who wrote it (which ironically an ad hominem is a fallacy very similar to an appeal to authority but for the opposite reason).
> they are all so vapid
I like that he doesn't make sweeping statements. Because in software development, to quote another great author, there is no silver bullet.
That's not a popular story to tell when you're writing a book or speaking in a conference, people like to hear simple black and white statements. But the fact of the matter is, reality is much more nuanced.
JUnit
See also, Bob Martin.
Muratori was even wasting his time arguing against programmer time _in general_ is less valuable than machine time? And doesn't understand that LLVM is an extremely specialized piece of software, from which general software engineering practices should not be extracted?
Inheritance hierarchies aren't exclusively what he meant though. Interfaces and the whole 'prefer composition over inheritance' style of programming has the same fundamental problem Muratori is getting at: both inherently constrain a program's structure for, what he argues (and I agree with), has no benefit to the program's performance or the programmer's time. In fact, he argues that the constraints imposed by the use of inheritance/interfaces only slow programmers down.
His raw device driver example, in pt2 of their conversation, illustrates the advantage of procedural code over inheritance/interfaces. His API requires users to provide a function pointer that will be called whenever an event is raised. This API user is expected to switch over the enum values that they care to implement. This design is better than an interface that requires its members to implement read(), and write() functions because it is both more performant (no vtable overhead + compilers can make more aggressive optimizations) and more flexible (a new event can be added to the enum without requiring all the old code to be updated if they don't need to handle the new event type).
I don’t think people agree on this (I don’t at least). I like the story falsely attributed to Steve Jobs about how saving a user 1 second will save hundreds of years or whatever. From that perspective, programmer cycles are way less important than CPU cycles because every CPU cycle you save has a multiplicative effect depending on how many users you serve. And how true is that today when you have thousands of large business apps depending on one cloud service provider. The compounding effects of saving CPU cycles in every level of the stack has never been higher than it is today.
But Martin was originally saying that a program with DI will not be as fast as a program without DI ... i.e., interfaces!
When was the last time you were writing a program and thought that putting a class behind an interface would slow things down too much?
I looked at some of the small amount of publicly available code he has written, and it was frankly horrible. An example of somehow who shouts loud enough getting attention because he can shout longer than most.
Take his book on TDD: Good points to make you think, but please don't blindly copy his personal workflow.
I don't mean to take away from him. There lies tremendous value in having good terminology at hand,
Meditation and insight are useful analogues here, they sound utterly mundane or obvious when written about, even in highly technical or mystical contexts like mahamudra because they operate on behavior and schemas below language.
I think Kent’s writing is useful as a pointing method: read what he says and watch how you undermine yourself during work. It’s easier said than done too because cognitively demanding tasks undermine metacognition.
Thanks
Pants are typically underwear in Britain, we wear trousers (Jeans, chinos, suit trousers) over our pants (boxers, y-fronts, briefs) so probably not something you’d want to show off that much.
Shorts are mostly just shorts, but we do have jorts and chorts depending on how hipster your shorts wearing cohorts are.
- "adjective. British slang. Not good; total crap; nonsense; rubbish; bad "The first half of the movie was pants but I stayed until the end and it was actually a great film.""
https://www.urbandictionary.com/define.php?term=pants
HN is the pants, man! (am I doing it right? am I cool?)
The last section had the most valuable stuff in my opinion.
Overall it was such an odd 'book'. It was 50% empty, literally. The whole book could've been 3 long chapters honestly.
But it does contain some useful bits.