Hyper-v

Response To Engineers Should Be Held Reliable



Recorded live on twitch, GET IN

### Article

By: Dmitry Kudryavtsev |

### My Stream

### Best Way To Support Me
Become a backend engineer. Its my favorite site

This is also the best way to support me is to support yourself becoming a better backend engineer.

MY MAIN YT CHANNEL: Has well edited engineering videos

Discord

Have something for me to read or react to?:

Kinesis Advantage 360:

Get production ready SQLite with Turso:

[ad_2]

source

Related Articles

40 Comments

  1. There are software proofing math too, so technically software engineers could have that math too, just that would make software development magnitudes more expensive – though in some environment that would make sense.

  2. Someone who says employees should be liable for anything that isn't just completely outrageous negligence/malicious and criminal behavior doesn't understand at least part of what companies are.
    They're structures to shield induvidual from consequences that come about from actions they don't fully control.
    And it scales. If you're self-employed your company goes under if you do a crowdstrike. You lose tons of clients at a minimum. Maybe the business isn't sustainable, and what money was in the company may be lost.
    If you're an employee of the actual crowdstrike and you do this they're supposed to be responsible and check your work so they can confidently release it. This went through what's a normal path for rapidly deployed AV updates. It's not the employee. In a just world this employee isn't even fired. They do that to save face, which might work for the public but us devs should at least know better. I hope some less customer facing company hires him quickly. Having the guy that dos'd millions of machines must be a good brag for some.

  3. There should be more regulation on safety critical software, mandatory testing and certification. Especially for updates, which frequently break a system that was working before

  4. Nah from what i have seen from the pieces of writing that Crowdstrike themselves published is that they do full proper updates fully validated but they do these quick definition updates once every so often where they plain don't have a mechanism that is full cycle, and it's not a matter of time, because it wouldn't take more than a few minutes of automated task time to ensure that the system with the update doesn't crash or is able to boot.

    Furthermore it's embarrassing that a telemetry company doesn't notice customers dying like flies for more than an hour! WTF sort of process is that?

  5. Open source software doesn’t have as much reduction of quality, as people will fork it and make a version that will live on as a new product. Look at how both GNOME and KDE have older versions that became two new desktop environments. This is where proprietary software has a disadvantage.

  6. It should be the managers responsibility to allow developers the discretion to make changes as needed to avoid things like this, but many managers are worried about feature development and new code will always be a source of production failures. It could be an old piece of code that had a bug that would never be triggered, but then a new feature could expose the bug, but it’s more likely that it would make it to production before being found. Management needs to refer to the developers for all estimates and they should be able to sign off on the code, too many companies have managers as all of this and no control is at the developer level.

  7. I can't imagine anyone seriously trying to go after the devs as long as they followed routine company procedures (not what is written down, but what actually happens on a weekly basis with management's tacit approval).

  8. But None of your projects are critical in any way and no lives depend on them. Your projects are just pet/hobby things. If they fail, we all get a laugh and move on.

    Now, look at the OceanGate 2023 fiasco and try to tell me that a failed pet/hobby project and a submarine implosion have the same consequences.

    I've been a programmer for 15+ yrs now. I actually give a 🀬 about my craft, unlike some of my coworkers that explicitly say "I just make it work", not giving a 🀬 about the mess they leave behind for everyone else.

    Sometimes, I'm partial to the idea of individual consequences. However, it still won't solve the problem, b/c the problem now shifts over to the ignorant morons that just run a process w/o understanding or those that are just trying to weaponize whatever new process was put in place.

    The analogies also fail between concrete and abstract things. A Civil Engineer can prove that a bar of steel can hold a quantified amount of weight before it gives out. But proving that a piece of software is bug-free is impossible; it's an intractable problem. And even if I were able to prove that my software is "bug free", what about the dependencies/libraries, syscalls, compilers, linkers, CPU hardware and microcode (see Intel 13th/14th oxidation fiasco), etc? Maybe background radiation flips an in-memory bit, turning your previously valid pointer deref into a segfault and it wasn't caught at runtime b/c you weren't using ECC memory? Good luck with an almost infinite amount of layers.

    That being said… perhaps if "engineers" had an actual stake in the profession, they'd push back more and give more of a 🀬? And if mgrs don't like it b/c we'd be "Too Expensive", then they can do the work themselves instead β€”if they even can, b/c the only thing a good chunk of them can do is just talk.

    Deep down, and I've had this thought for a while, way before ClownStruck, but I think something needs to change, but I don't know what it should really look like or what some of the farther-reaching implications of those ideas would be… and that pisses me off, too.

  9. We often feel that "people fail upwards" partly because of the whole "People rise to their level of incompetence". This doesn't mean more incompetent people go up, it means that good people get promoted and keep getting promoted until they are not longer good enough to warrant a promotion, typically due to incompetence. Like a junior dev, becomes senior, becomes principal, becomes lead, but here they now need leadership skills, and they don't really have them, they are incompetent at that. So now that's where they are. They were good at something else and got promoted until that thing they are good at is no longer what they do.

  10. Uncle Bob has predicted this very thing:
    1. Some crazy thing happens. Outage, explosion, etc.
    2. Software engineers get blamed, perhaps rightly so.
    3. The cause can arguably be as a result of inconsistent practice in software engineering discipline, such as testing, review, etc.
    4. We start to get a whole bunch of regulation up in our business.
    5. Life as a programmer becomes burdened and crappy due to the regulation that is applied onto us, because we lack self-discipline to do it (as an industry).

  11. While executives certainly need to be personally responsible for more, financially and criminally, engineers need to be, too. Civil engineers are (enforcement varies) in many countries for good reasons. Part of being responsible is being able to tell your boss that you cannot do something because of the laws — which is pretty much the only objection bad managers really care about. You might want to look up some of the C++ community discussing security. We slowly are waking up to the realities about what we are doing not just on a lottery basis (the better educated/ more self-aware/ better connected to engineering/ … individuals always got it, communities [such as programming language communities, …] mostly not — industry communities do [though currently often are overruled by management, sometimes even in the most obvious industries])

  12. For around the 24:00 mark
    You can prove an algorithm is correct, the same way you can prove a structure is sound.
    You cannot prove a framework is correct, the same way you cannot prove an architecture style is correct.
    Brutalism smh

  13. hey Prime read my 'substack' too!

    NOT β€˜Tool Time With Tim’ ANY MORE

    Any orgs that can’t function without computers and networks have long ago become software companies with or without intellectual realization of that. The transfer of wealth and power to devs β€” that should of come with that responsibility β€” hasn’t happened yet. Even now you are denying I’m correct aren’y you!? AREN'T YOU!!

    

When I get pounded on by C-Suite β€œwhen is this project going to be done we demand A DATE!” I like to reply, when is your business β€˜going to be done?’. Your entire businesses is a project, your CEO is the head of Project Management. The final arbitrator of a debate on a date format or a billing code, is no longer the PMI, CFO, COO, CSO, CMO, or even CIO β€” it’s the CTO now. If you don’t have one, you do have one, they just haven’t been given the title yet. They are probably more than one person, an embedded tribal leader, bamboozling devs in meetings making them hate their job.



    So that β€œare we there yet?” question perhaps applied when each software element was a tool in a department like a sophisticated customer process calculator or something. But when the entire network, all data, and every interface in the business is on the NET/WAN/LAN, this isn’t β€˜tool time with Tim’ any more. It’s literally your business rendered in code only a handful of people have access to, can understand, and most of them can’t write.



    The relationship between your CTO and the top devs, models closest to the one between CSO and their top sales people. It's no longer the model of passive aggressive office manager vs the janitor. If you don’t have a CTO with β€˜top devs’ you don’t have a viable company any more same as if you don’t have a CSO with β€˜top sales agents’. Both need to be paid at the top of the curve, perked at the top of the curve, and managed by adults with credibility. Otherwise, they are working for NOT YOU next month.

  14. Lmao, the article and the civil engineering takes…πŸ˜‚
    1) there is always pressure… There arent many industries with more contractual pressure than construction.
    2) most civil engineers who sign off designs and are liable for that earn less than software "engineers"
    3) they are respected because they are regulated, guys..thats it…REGULATION.

    If you want others to take yourself serious and give you respect, start to treat your own profession with respect.
    If large part of software industrie (also here) is thinking that you neither need an education nor the working processes of an engineer, why should outsiders see you as such?

    E: what is this absolutely braindead Last Take ? Just Stop… Thats Not how regulation works..Stop discourage Young people from politics with your half baked ass Takes on politics…youre a fcking Millionaire you visited Public Schools you Profit from Public Infrastructure and besides from some issues you live in a Safe and secure First world country …fcking idiot seriously..

  15. WAIT! The OWNERS of the corporation should be held personally liable. The whole point of corporate law right now is to give the corporation the legal fiction that a corporation can operate as a person. WRONG. This is why is ruining the world right now.

    The reason you still don’t hold an employee liable for a β€œbad act” is because it SHOULD be upon the owners of the corporation to hire management that puts in place controls so an β€œerror in judgement” of an employee is CAUGHT by the systems in place. In other words, if you cheap out on process controls to increase profits, you SHOULD be made to financially regret that when harm is done.

  16. if a life assisting device relies on windows, the liability is on the company who designed the device in the first place.

    critical devices should never depend general purpose software.

    I'm quite aware that almost every device has similar issues

    Linux is not an good replacement either, although the kernel config is quite tunable

  17. Read up on B formal method or Atelier-B. Rust is NOT AT ALL SAFE compared to these formal verification coding systems and I learned formal verification for single and multithreaded code in Hungarian college too because local guy had his papers on relational set-theory definition of programming. He also held conferences in France even when we were socialist country in Hungary he had permission to go (probably inspiring these tools with those tbh)

    Yes… It takes painfully slow, but you can implement mathematically proven code according to formal specifications – just like construction engineering. Some metro lines that are automatized have this proofs and some embedded projects also have it… Its costly though (I also had toy softwares I prove)

  18. Most of those other jobs have a process that is being followed. In our field everything is optional. Some companys don't test at all, some do unit tests, some integration tests, some TDD, some model the software and have fancy graphics, some do pair programming, some do code reviews, some use linters, some do this, some do that. But there is no this is the way to do it right. Beside that our job is creative and although there might be similarities at the end each program is unique and was never done that way before else we would just copy & paste it. And even when using dependencies etc. we don't stick standardized parts into each other. We have parts that don't fit together and creating those "adapters".

    And beside that how often have you heard developers complaining that they don't get time to fix bugs or refactoring things they know will explode. But that doesn't bring in money. You can't charge someone. There are so many things wrong in our codebase. Some which lead to the poorest performance you can imagine, some which will blow up if you miscofigure something, some which will break if you change something else and a lot which makes adding features hard and onboarding new people. Those issues been addressed, including possible solutions etc. What does the boss man say? That's too much work and nobody is going to pay for that. Do you want to pay for that? So I'm ordered to let the problems there. And those things are causing outages on every update too. But as those are customer specific projects it's not like we kill 8,5 million pcs.

    Another thing to think about what is if someone is creating a module/function whatsoever which is working fine with the inputs/calls that exist in a given system and that system gets new features which call this module/function with different parameters and this parameter combination is causing a bug that wasn't able to happen before. Whose fault is it? Caller or callee? Especially in large highly configurable systems there is a limit how much you can really test of the real thing. I'm often working on small changes which are things that take a few minutes but setting up everything so I could test the real thing would literally take several hours or even days and that is just for one happy path. You can't charge your customer that much money for a really small change. So at the end we are pretty much testing in production. But at the end, even if we would test it in dev, we wouldn't catch everything because of the configuration and prod data.

    If I would be held reliable for anything I do on a daily basis I wouldn't touch a single line in our codebase. It doesn't feel much different as if you would put me in front of a patient in a hospital with a opened skull and expect me to do neurosurgery on him. You want me to do a one inch cut on the left side? Yes I guess I can do it. I understand what an inch is and how to use a knife to cut. But there is no way I understand what this god guy implemented in those guy's skull and what will happen if I do this cut. Yes I can test this on a pig (mock) before. Well pig is still alive and hasn't complained, so I call that 100% test coverage. Well turns out this guy's brain has another configuration..

  19. FWIW, industry standards absolutely should be a thing. i.e. spydevs writing making the next "Uber but for taxis" probably don't need regulation.

    But it is entirely possible to create a standards using a consortium model for safety critical software.

  20. Within first 3 minutes @ThePrimeTimeagen told why the USA is a dysfunctional society.
    worker: "hmm if I make mistake here people can die, eee, who cares, the suits will take the blame, i can't tell them about it cause …. "
    stackeholders: "this can kill people, is it safe? who cares, the suits will take the blame and we get a new CEO, also they told me it's ok so if something we blame them "
    suits/CEO: *eat's glue* WE ARE GODS ! WE ARE THE BEST ! ALL IS PERFECT *eat's glue*

  21. Isn't this why companies pay for support, so they have Service Level Agreements (SLAs) or other contracts in place so that if something goes wrong the company is in the hook for fixing it to their best effort? It doesn't fall to a specific engineer or person to be on the hook for the issue.

  22. And the stock sinks lower.
    Tech is not one of those industries of redemption. In tech, you either make a dynamite product (in a good way), you fail, or the gov't bails you out. Crowdstrike now has to elevator pitch again, why companies should keep their contract with crowdstrike. You can literally go to another company (or kid) who can program the same thing or less or equal the bid. Crowdstrike is going to have to prove themselves via a hardened audit. But maybe I don't know; they might have some leveraging blackmailing information on somebody and they're going nowhere but up.πŸ€·β€β™‚

  23. I don't want the government to directly regulate how techinical decisions are made, that would be ridiculous. What I want is for the government to regulate the corporate structure such that workers have more control over the means of production. For example, if every corporation was required to give each worker a vote over decisions such as who is appointed to the board, or whether the CEO should receive a pay raise or bonus, we'd start seeing our corporations behaving in very different ways.

  24. If your code can hurt or kill people you should adequately test it or be held liable. If you adequately tested it and it still failed you wont be held liable, the company might but you as an engineer won't. If you failed to test it on the orders of management then they will be held liable. This is how it works in every engineering company and it makes no sense that it should be different for software companies.

  25. Obviously the company has to be liable, but as for individuals just the managers who put in place protocols that made this possible, no canary testing, no mandatory tests befor deploy, etc.

  26. There are actually programming languages where you can reason about the code and prove that the code is correct in a mathematical sense. They're primarily used in academia and not really used outside of it. Programming in those languages would definitely take a long time ^^

  27. Construction complexity is exponential. The same elevator that serves a 2 or 3 story building will take 20 minutes to reach the top of a sky scraper. The HVAC systems cannot operate at low pressures or half the ground floor will be duct. The pressure on a simple water standpipe would be immense (in practice, leading to no water pressure above the 60 or 120 foot mark).

  28. 8:00 There is a general missunderstanding going on imo here, because those fields which can be held accountable actually do have an organizational level of accountability.
    They also get paid a hellalot more and, worst offender, actually do the potential harm themself.

    Software Developers rarely if ever get to pull the actual decision and would have to qualify in their specific law area too. Generally speaking: The software developer barely has any real option to go by. They cannot refuse as they then will be fired. They cannot act against that decision, because they have no deciding power. So unless all software developers change to freelancers tomorrow, there simply is no way to hold all of them accountable for actions they have no saying in but to be the monkeys that have to perform them.

  29. If I make a mistake and/or cover up the problem then I'm 100% responsible. If I'm asked to action something that I know is incorrect then I point this out to my superior, at this point the responsibility is now on them. Bubble up.

    Update: The outcome makes a big difference to the effect though. Releasing a tower defense game with known bugs. Probably not a huge issue (unless it's used for defending Earth from Aliens πŸ’©) But knowingly having only one airspeed sensor installed on a plane, carrying passengers, when there's a specification for a second one for redundancy. Big issue!

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button