Live data from Hacker News

Is Uncle Bob serious?

dev.to

171–180 of 181 posts

Re: Is Uncle Bob serious?

#171

Earlier quoted context omitted.

I'm not sure I understand your question, but the one that most pertains to ECC would be preventing corruption of the routine performing the checks -- It varies greatly by the method you use to ECC in software, since they all feature different mechanisms. In the case of the one I had in mind, the kernel is relatively small (so errors are unlikely), and once loaded, it's stable against bit errors. There are probably be…

I meant tampering via a side channel attack (e.g. forcing a bit flip that ecc would protect). It doesn’t matter if your data types have referential integrity if a hacker could disable that protection. What I am arguing against is saying a typesafe language obviates the need for ecc memory.

> What I am arguing against is saying a typesafe language obviates the need for ecc memory.

Which isn't what anyone said: I claimed you can do ECC in software and that type systems assist with that by making a clean interface and verifying the full implementation. (Since ECC is really just a lift of normal functions.)

There's little difference between using 9 bits in hardware and 9 bits in software, except that you need to cleanly load your ECC code onto CPU cache and you're using CPU instructions per byte loaded. The reason we do ECC in hardware is efficiency on an operation we're doing on literally every byte.

Lots of systems, eg harddrives, use ECC in their actual formats too, because you can do more complex ECC at the software level and not merely the extra bit. Sometimes, this software ECC is more efficient than hardware based ECC would be, because we're okay with less than 12.5% redundancy as long as we can still correct the errors we expect to find.

Re: Is Uncle Bob serious?

#172
post #162

Earlier quoted context omitted.

> Or even better how type systems could work around data integrity errors in RAM without ECC. You realize that you can do ECC in software too, right? You just need the statistical bound on a double fault to be similar to that of the hardware case. Type systems can be used to do this by defining an interface for the data, letting you swap between normal datatypes and ECC ones seamlessly. (And in practice, you only nee…

You need to read Leveson's full report. It details quite clearly what role software played. If you're focusing on software and avoiding bugs you will at best have good quality software, when the goal is to have a safe system. SW is just part of the picture.

I'm not arguing against hardware interlocks.

I'm saying that's a weird example to pick of a case against type systems (eg, by asking how they'd have helped prevent that issue), since in that particular case, it actually sounds like a type system would have caught the software glitch that caused the issue.

Re: Is Uncle Bob serious?

#173
post #74

The current state of software safety discussion resembles the state of medical safety discussion 2, 3 decades ago (yeah, software is really really behind time). Back then, too, the thoughts on medical safety also were divided into 2 schools: the professionalism and the process oriented. The former school argues more or less what Uncle Bob argues: blame the damned and * who made the mistakes; be more careful, damn it.…

I'm reminded of an article I read a while back about the rather sizable effectiveness of checklists in the health sector, and how they're still not 'standard practice'. I think it's this article, but I'm not sure:

http://www.nytimes.com/2010/01/24/books/review/Jauhar-t.html

Re: Is Uncle Bob serious?

#174
post #167

Earlier quoted context omitted.

So basically work is safer when done by robots Or if you spend a lot of resources in training people to robotize them I prefer real robots

Except when something unexpected happens, in which case you'd love having had a human. The best is combined teams of man and machines. This also has its own problems, but nothing is ever perfect.

I was being sarcastic

The original post was about how professionalism was replaced by method in healthcare

But in my opinion saying "you have to be professional" and "you have to follow this checklist" it's the same thinkg

A doctor that was amputating the wrong leg without checking was not making a mistake because "tools", but because was being unprofessional.

A paramedic that is not checking all the vitals because it wasn't on the checklist, is unprofessional

Not having a checklist in the first place is unprofessional!

It's the same thing, said in a different way, just to have more doctors onboard willing to be trained to perform procedures like robots, that bring profits into private hospitals.

I think it's mainly an US thing though, I've worked in healthcare in Europe and it's not like that

Having said that, programmers skill vary a lot based on the type of work they do, the industry they work in, the experience they have, the context, where they come from etc. etc. etc.

Uncle Bob might be wrong or not showing enough data, but the lack of tools is still a programmer's fault.

You can blame management if they are doing it poorly, but if the tool you're using are not the best for your job, you're just being less than professional.

Maybe it's enough most of the time, but that doesn't mean that being professional is something else.

Re: Is Uncle Bob serious?

#175

Earlier quoted context omitted.

> Ever try to grep weakly typed system for name definition? For what purpose?

To understand a codebase?

I haven't had any problems jumping around large codebases in smalltalk, clojure, or JavaScript.

I've had a lot more trouble understanding large Java codebases.

I thought they might be talking about difficulty refactoring.

Re: Is Uncle Bob serious?

#176
post #106

Earlier quoted context omitted.

> Back then, too, the thoughts on medical safety also were divided into 2 schools: the professionalism and the process oriented The key difference is in the medical world safety has been a primary concern from day one. I.e. There has always been a high level of professionalism. That is not true in the software world. Imagine a doctor saying it's 5pm on a Friday and I'm meeting a friend in an hour so I'll just do a ru…

> Imagine a doctor saying it's 5pm on a Friday and I'm meeting a friend in an hour so I'll just do a rush job of this surgery and it will probably work out fine. Imaging right now. No problem. Humans are humans. Humans sometimes do rush jobs. Or are overworked. Or stressed. Maybe they have private problems, so their mind isn't 100% on the task. Your suggestion that doctors are all professionals and wouldn't do such t…

> Imaging right now. No problem. Humans are humans

> Your suggestion that doctors are all professionals

I'm saying the level of professionalism displayed by doctors is way above the average level of professionalism in software development.

I've worked in QA and have had dozens of developers blatantly lie to me.

How many doctors routinely lie and deliberately mislead their coworkers or their patients? 20%? 30%?

I've been a hiring manager and have interviewed hundreds of software developers and a huge proportion have misrepresented their actual skill set.

How many surgeons will claim they are experts in X surgery when in truth they sat in on an X surgery once while in med school?

What proportion of doctors knowingly push suboptimal solutions because it looks good on their resume or because they personally find it interesting?

Re: Is Uncle Bob serious?

#177

Earlier quoted context omitted.

That's fine if you're in a regulated profession like engineering or medicine or law, where management need appropriate professional sign-offs before going ahead, and it's a matter of professional ethics. Unfortunately, in a field like software that isn't regulated (and IMHO isn't ready to be), you can say "no" up to a point, but if you continue to do that once management has determined that the answer should be "yes"…

Your rationale-fu is strong! Look, by whatever accident of history, programmers are currently in demand. If your shop is suicidal/trigger-happy on firing their valuable programmers, then just leave that place before that happens and find happier digs. Job #1 for any professional programmer should be to sleep well at night and not work overtime. Stop making excuses for sloppy, rushed programming. Use your power to enf…

Such big words. In other words: non-sense.

I worked in 6 different companies in 4 different countries across 3 different continents during my 10 years in IT. And no-one gives a shit about delivering bug-free code or good practices.

There is such a thing called peer-pressure, probably you have never heard about it, it works like this: while you are fiddling with your scientific method to test everything properly, the guy sitting right next to you will get the same feature done when by going home and putting in a lot of overtime to make it look like he was working extremely fast and he pulled it off in matter of days and much faster than you.

He will also give a shiny presentation and show off his working demo application while you are still writing tests in your scientific method.

So after a few days your manager comes over to your desk and asks the guy sitting next to you if he could do the same thing, but now in a much more important project, where the deadline is super important. "Of course" - he replies, and he gets into a very interesting project and gets appraisals both verbally and also on his linked-in profile. He also gets a salary raise, since he is such a reliable guy who outperforms everyone. While you are still writing tests and wondering why nobody cares about your scientific method.

I hope it's clearer now.

Re: Is Uncle Bob serious?

#178

Earlier quoted context omitted.

Your rationale-fu is strong! Look, by whatever accident of history, programmers are currently in demand. If your shop is suicidal/trigger-happy on firing their valuable programmers, then just leave that place before that happens and find happier digs. Job #1 for any professional programmer should be to sleep well at night and not work overtime. Stop making excuses for sloppy, rushed programming. Use your power to enf…

Such big words. In other words: non-sense. I worked in 6 different companies in 4 different countries across 3 different continents during my 10 years in IT. And no-one gives a shit about delivering bug-free code or good practices. There is such a thing called peer-pressure, probably you have never heard about it, it works like this: while you are fiddling with your scientific method to test everything properly, the…

Everything you described can be summarized pretty briefly: toxic work atmosphere.

Look, I get it -- I was working in such organizations in the past. There are quite a few of lazy bums in there but they specialized in a few important aspects: (1) take credit for somebody else's work, (2) always have a pre-baked excuse or shifting the responsibility to somebody else if something in their job is not okay, and (3) have more years in there than you.

There's a lot of internal politics and intrigue in these places. If you try to beat this system, eventually you'll become a part of the problem -- you'll spend most of your time making sure nobody takes credit for your work, that you're blame-free etc.

There is no point. What you described does exist out there, yes. But I can bet my balls that the programmers I work with are times better than the parasites you describe.

Plus, don't forget burnout. That guy you described can only maintain that rhythm for no more than 2 years, 3-4 if he's a real masochist. But it eventually comes to an end. The solutions these toxic places opt for are always short-term (clarification: that works pretty well for many of them by the way; they are perfectly aware of what are they doing and they just replace the burned out yongsters with fresh youngsters, and the cycle resets).

Re: Is Uncle Bob serious?

#179

Earlier quoted context omitted.

Your rationale-fu is strong! Look, by whatever accident of history, programmers are currently in demand. If your shop is suicidal/trigger-happy on firing their valuable programmers, then just leave that place before that happens and find happier digs. Job #1 for any professional programmer should be to sleep well at night and not work overtime. Stop making excuses for sloppy, rushed programming. Use your power to enf…

Such big words. In other words: non-sense. I worked in 6 different companies in 4 different countries across 3 different continents during my 10 years in IT. And no-one gives a shit about delivering bug-free code or good practices. There is such a thing called peer-pressure, probably you have never heard about it, it works like this: while you are fiddling with your scientific method to test everything properly, the…

6 companies, 4 countries over 10 years? Are you a consultant? Otherwise, that's a LOT of job-hopping.

So, I was a consultant for a "systems integrator" for 14 years. I did enterprise Java, web apps, and backend legacy integration work. If you are anything like me, then you know of course no one in your organization (or the client's organization) cares about quality! You guys are hired guns, the "tiger team". You fake it till you make it. You move around, you're like a bedouin trader, you're a nomad.

Your comments about the coworker putting in OT to showoff and get ahead are just you wallowing in a bit of loathing. Never ever compare yourself with anyone else - we're all on our own tracks with our own tragedies and triumphs. If the guy wanted to bust his ass to make himself feel good, what do you care? God bless that dummy.

Anyhow, I think I can help with the loathing by getting a little philosophical with you. Two questions:

1. Are there bits of code or projects you can recall you've written over the last decade that you're really proud of? (Like, you can tell war stories about working on that code and you love those stories?)

2. Is ANY of the code you wrote going to be around in 5 or 3 or even 2 years from now?

The first question is to remind you of your craft, that it's really cool to make stuff work. The second question is to remind you that almost nothing you've done is built to last and is ultimately not going to leave any mark.

Now, don't despair. You can always take joy from your craft: let fly your creations to work in the world and do their little jobs and then move on to the next thing.

Reading your words, I can see that you're not taking much joy from the work right now. You don't have quality to hold up and you don't have good team dynamics where other people have your back.

In consulting, code quality will never be a priority nor of interest to anyone, especially in smaller firms. And, it'll be tough to build strong teams because you move around so much. You should really settle down in a city and get a regular salary job. You won't take much of a pay cut once you factor in all the benefits.

And there are plenty of big, established companies that practice TDD and have real Agile practices. Just search around and look at Fortune 1000 companies - the software teams working for those companies will signal quality to you through their blogs and open source offerings on Github.

As I said before, your #1 goal should be to sleep well at night and not work overtime. That means not being afraid of PagerDuty, not being afraid of deploying code at the last minute on a Friday before leaving for the weekend, not being afraid to relentlessly refactor the code to improve it, not feeling dirty about your code because you're not hacking anymore. When you're not afraid, you can have a team where members have each others' backs instead of backstabbing too. That goal of sleeping good at night is totally possible, I'm living it right now.

You need a new mindset. You need to improve your practices and start to claim your power as the developer. Read some code quality books, write some open source and teach yourself how to do TDD (I prefer "London" style TDD.) Listen to some of Uncle Bob's videos on YouTube or Safari Books online if you want to get into the groove. He's a goofball and a codger, but he's on the right track more than he is on the wrong track.

And, buck up dude ... I hope it's clearer now. :)

Re: Is Uncle Bob serious?

#180

Earlier quoted context omitted.

Such big words. In other words: non-sense. I worked in 6 different companies in 4 different countries across 3 different continents during my 10 years in IT. And no-one gives a shit about delivering bug-free code or good practices. There is such a thing called peer-pressure, probably you have never heard about it, it works like this: while you are fiddling with your scientific method to test everything properly, the…

6 companies, 4 countries over 10 years? Are you a consultant? Otherwise, that's a LOT of job-hopping. So, I was a consultant for a "systems integrator" for 14 years. I did enterprise Java, web apps, and backend legacy integration work. If you are anything like me, then you know of course no one in your organization (or the client's organization) cares about quality! You guys are hired guns, the "tiger team". You fake…

You don't know anything about me still you set off to give advices. That's not very wise TBH.

But if you want to be philosophical, then I will be psychological with you in exchange. I think that the fact that you write a 3 paragraph long reply to a guy who just simply describes everyday development practices which is common around the world tells a lot about you. Namely that you don't take very well when people don't agree with you. Most people who are like this just want to render themselves superior which shows their inferiority complex.

I pointed out and gave very specific examples why your ideas don't hold any water and how unrealistic are, and then you come back and tell me even more unrealistic things.

Also I watched all Uncle Bob's videos, I bought the Clean Coder series and I follow TDD. Which again proves that you don't know anything about me. And no. It's not clearer. And for the life of me can't understand why are you doing this (but I don't even care to be very honest).

Post reply on HN