4 ms·
SOLID principles, Release-Reuse Equivalency Principle (REP), Common Closure Principle (CCP), Common Reuse Principle (CRP), Acyclic Dependency Principle (ADP), S
by ohthehugemanate 6y ago
SOLID principles, Release-Reuse Equivalency Principle (REP), Common Closure Principle (CCP), Common Reuse Principle (CRP), Acyclic Dependency Principle (ADP), Stable Dependencies Principle (SDP), Stable Abstractions Principle (SAP)... i'm sure there are others. Oh and a little thing called Agile software development, along with being a major early proponent of XP before agile existed.
If you're an object oriented developer, his design patterns are a big part of the normal definition of "good code." If you're in any kind of short project oriented work, his project practices are a go-to resource.
I know he's been a software developer since the 70s, but I don't know what, if any products he was hired for became famous. Is that an important bar for someone who talks about software quality amd development process?
- buescher 6y agoActually, yes it is. I'm aware of his "contributions"; you don't have to patronize me. What important software, products, or systems have the authors of the Agile manifesto created? What did most of them do for a living when they wrote it, and what have they done since?
- charlieflowers 6y agoNot the GP, and I agree with some of the Uncle Bob skepticism -- often his fervor outweighs his content. But several signers of the Agile Manifesto have done outstanding things. The Agile Manifesto itself is also outstanding (it may seem obvious now, but it was not obvious to the world it was published to). Ward Cunningham invented the wiki for chrissakes. So let's not throw out the baby with the bathwater.
- buescher 6y agoOK, the wiki is clever, but it is not really a demonstration of the power of agile methods. I'd bet money it wasn't test-driven or sprinted or crc-carded or whatever into existence. Ward may as well have also invented an excellent salad dressing, as far as that bears on agile. Not a big fan of the patterns movement either; not that there's anything wrong with any of the GoF patterns. The agile manifesto is vague enough that people tend to project their aspirations onto it. It was true then and it's true now. I'm also old enough to remember when most of it was called "extreme programming", so it wasn't exactly a revelation at the time.
- mattmanser 6y agoAlmost no developers in the world have publically available products. Especially not in the 2000s. Why are you, and other posters, so obsessed with needing to see something public? The vast majority of software is made behind closed doors, the source will never be public, and no-one outside a company will ever know about it. Stop invalidating other people's experience just because you can't inspect their code.
- buescher 6y agoAlmost no developers in the world make a career out of telling other people how to develop software. Since Bob does, his credentials, which are one part of "why should I listen to this guy?", do matter.
- mattmanser 6y agoYes they do, 100,000s do. They're called consultants and businesses use them every day.
- dalke 6y agoMartin had a publicly available product in the 2000s, FitNesse. If someone promotes a given coding methodology, then inspecting code developed using that methodology may give insight into the limits of that methodology. See my comments about FitNesse posted elsewhere here, at https://news.ycombinator.com/item?id=26158917 https://news.ycombinator.com/item?id=26158917 .
- ohthehugemanate 6y agoNo patronising intended; one can never be sure of another's context on here. I try to assume positive intent and honest, direct questions. Now that I have a sense of what you know, I'm having a hard time answering your reiterated question without being patronising. Maybe I don't understand it. You're asking if the creators of the most influential software development practice in the industry have ever done anything _else_ influential. And when someone points to the SOLID principles, which are arguably some of the most influential software design patterns of the last 30 years, that's not acceptable. It's fine if you, personally, don't like software design patterns or SOLID principles, or if you've got some other iconoclasting thing going on. But you can't deny that that is an important system which has impacted our entire industry - particularly on questions of software quality - much more than many famous products. Candy Crush, Wordpress, and Excel are the first products that come to mind, and having seen the codebase for two of those... they don't have anything to add to discussions of software quality. :) But if you're aware of Uncle Bob's contributions, then I presume familiarity with the contributions of others like Martin Fowler, Kent Beck, Ward Cunningham, Jeff Sutherland, etc. So I'm not sure what would convince you that these people have some worthwhile opinions to consider. They were lead developers at consulting companies and large research labs, all with decades of experience by that time. I dunno, does it impress you that Kent Beck worked at facebook, or that he wrote the precursor to and first versions of JUnit? Or that he did the famous Christler C3 compensation system?
- buescher 6y agoIs the most influential software development practice in the industry any good, or is it just another fad? How would you know? Is your idea of software quality any good? How would you know? Why are you impressed with these guys? I'm not. I don't want to do what they do. I'm much more impressed with Excel than anything I've seen from methodology gurus. I can only imagine how real-world crufty that code base is, but a lot of cruft is the residue of solving real, non-trivial problems. I know for a fact Excel has had a lot of that baked in over decades. Did you ever see the blog posts where one of the original agile guys tried to write a sudoku solver with his methodology? I make the following conjecture without proof: it is demonstrable that agile methods and design patterns are better suited to counting fruit at a grocery than to solving interesting problems with computers.