I admit I don't read much Bob Martin, but does he say you shouldn't use automated functional testing, e.g., Fit or Cucumber?
Uncle Bob and Silver Bullets
31–40 of 228 posts
Re: Uncle Bob and Silver Bullets
#32I think you could quite easily quantify the effect various tools have on a code base; adding unit tests, using a repl, static vs. dynamic etc. on the various aspects of your code:
- How quick/easy is it to add new features?
- How often do you add new bugs?
- How long does it take to fix bugs?
...but I think you could also look at the impact individual bad actors (the 'dont care' programmers) have on the same code base.
Now, because the 'dont care' programmers hack out rubbish at the speed of light, it may superficially appear that the net impact on the code base is balanced; more features, more bugs... but that rubbish slowly spreads out into the code base, and incrementally trigger a cascading bug creation rate for all the programmers.
Now, if you want to suggest that tools can add enough value to overcome the negatives from having rubbish programmers, I'm all ears, because I've never seen a tool that can do that. The bad programmers just abuse the tools or ignore them.
So... in that context, I think its fair to say, more tools really achieves nothing much, when bad programmers and bad programming practice results in such catastrophically bad outcomes for software.
Maybe, if you can make your tools nice enough and add enough processes you can kind of force bad programmers up a notch. I appreciate that; but the question really is, why are there so many programmers who are so rubbish? Why do they never seem to get better? Why don't they care?
Do you really think you engineer a solution to that? ...because I think it's a social problem, not a technical one.
Maybe some tools can help, and maybe not everything Uncle Bob says is gospel... sure; but I think this is just stupid:
> Uncle Bob gives terrible advice. Following it will make your code worse.
I think history has objectively shown this is false; but of course, you're welcome to have your own opinion without any substantive basis other than that opinion itself if you like.
Re: Uncle Bob and Silver Bullets
#33Here is the post this post is in response to: http://blog.cleancoder.com/uncle-bob/2017/10/04/CodeIsNotThe... I don’t interpret the original piece as saying any of these tools and techniques are not useful. I interpret it as saying average developer mindset needs to shape up. I tend to agree. I work with guys who believe in formal reasoning tools (we collaborated with Amazon’s ARG for example[1]), and use all these t…
Looking at some of Uncle Bob's other posts linked from this article, I don't think that's what he's saying. He (Uncle Bob) goes on and on about discipline, but at the same time dismisses anything that might actually force programmers to be disciplined, like type systems that force you to check references for null before dereferencing them.
For example, in http://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath.... he asks: "It is very risky to have nulls rampaging around the system out of control. The question is: Whose job is it to manage the nulls. The language? Or the programmer?" and goes on to answer: "Defects are the fault of programmers. It is programmers who create defects – not languages." Then he goes ranting about programmers who don't test their code, and if only they tested, such type systems would not be needed.
Again: He dismisses the one thing that actually forces programmers to be disciplined and instead just wishes (against all evidence) that they were disciplined. To me, he seems to be saying "First, do no harm, then use tests, then nothing."
Re: Uncle Bob and Silver Bullets
#34Earlier quoted context omitted.
In fairness, Joel Spolsky has done a lot of great work as a founder - founding Stack Exchange being the most notable — but is any of his personal work open source? We don’t know how well written his code is. Twitter is successful but their code has reputation for being horrible.
It's not open source, but he led Excel development didn't he? I can use that and appreciate that it's good quality software so I want to hear about how he managed that. I don't know if I'm just ignorant, but to be honest I have no idea if people like Martin and Fowler can program at all or not!
Re: Uncle Bob and Silver Bullets
#35Well written! I’ve always cringed when I’ve read anything that Uncle Bob writes. It almost seems like his entire existence depends on the acceptance of unit testing, and the unjustified dismissal of tools, especially type systems, seems to me something a only a novice would do when evangelizing their favorite lang (we’ve all been there, right?...), until they get more experience with other methods and approaches.
I never understand why Martin gets the kind of attention he does. As far as I can tell, the only significant achievement he's done for the technical community is the Agile manifesto. Outside of that, he's a typical consultant in that he's got books, training courses, etc. However, I have yet to find a significant publicly known project he's been involved in where he's had to put his principle into practice.
That seems like a simple question we could actually answer here without having loud debates about unit testing or whatever.
Re: Uncle Bob and Silver Bullets
#36Earlier quoted context omitted.
In fairness, Joel Spolsky has done a lot of great work as a founder - founding Stack Exchange being the most notable — but is any of his personal work open source? We don’t know how well written his code is. Twitter is successful but their code has reputation for being horrible.
It's not open source, but he led Excel development didn't he? I can use that and appreciate that it's good quality software so I want to hear about how he managed that. I don't know if I'm just ignorant, but to be honest I have no idea if people like Martin and Fowler can program at all or not!
I happen to like Spolsky a lot but most of the career success we've actually seen from him is managerial, which is not unimportant, but it's not the same as being a dev lead on Excel.
On the other hand, Spolsky's programming advice is much more broad-spectrum and rooted in common sense. I'm not sure you've ever seen Spolsky dismiss a whole category of languages or correctness tools, for instance.
Re: Uncle Bob and Silver Bullets
#37He liked to say "Gutes Werkzeug ist die halbe Arbeit" (or sometimes: "Gutes Werkzeug, bessere Arbeit"). A good tool is half the work, or: Good tools, better work.
This idea has informed my coding decisions too. Evaluating the worth of a tool is more complex in software than in silversmithing, though.
Re: Uncle Bob and Silver Bullets
#38Earlier quoted context omitted.
It's hard to build your consultant image by telling people that multiple methods and tools might work. It's easier to market a simple cure. Also, the point to "stop making shitty software" is not the same as "stop making mistakes". You can ship high quality software even while being human, it's just slower and more costly. And while I agree with the article in general, I do believe the current balance has shifted tow…
> It's hard to build your consultant image by telling people that multiple methods and tools might work. It's easier to market a simple cure. The thing about these middlebrow dismissals is that they work the other way around: "It's hard to build your consultant image by telling people that they need self-discipline and rules. It's easier to just sell them on tools that will fix the problem."
What if the problem is bad management? Or low experience/expertise in general? All of these methods and tools are only optimizing locally, and cannot help the root causes.
Re: Uncle Bob and Silver Bullets
#39First, in "Tools are not the Answer", it is clearly stated that tools are valuable.
Second, Uncle Bob's article is not telling programmers to be better. It is telling programmers to be professional. It is not like telling drivers to drive better. It is like telling drivers to stop texting while driving.
Re: Uncle Bob and Silver Bullets
#40Earlier quoted context omitted.
I never understand why Martin gets the kind of attention he does. As far as I can tell, the only significant achievement he's done for the technical community is the Agile manifesto. Outside of that, he's a typical consultant in that he's got books, training courses, etc. However, I have yet to find a significant publicly known project he's been involved in where he's had to put his principle into practice.
There's definitely two types of very well known speakers. People who have worked on some really notable project. Linus Torvalds, David Heinemeier Hansson, Joel Spolsky and so on. I know these people are worth listening to because I can see that their code is a success. Then there are people who I have no idea what they have ever written at all. Robert Martin, Martin Fowler and so on. I don't know if I should listen t…
I agree with your examples, Linus Torvalds in particular. However, I would not consider Mark Zuckerberg, Steve Jobs or Bill Gates worth listening to on a technical level just because their products are a success.