5 ms·
Speaking as someone who builds mission critical software, licensing is not the answer to this problem. Occupational licensing only serves to raise barriers to e
by pg_bot 7y ago
Speaking as someone who builds mission critical software, licensing is not the answer to this problem. Occupational licensing only serves to raise barriers to entry and crowd out competition without raising quality. To put my opinion bluntly, Bernie Madoff had a license.
The things you should do to prevent catastrophic failure:
- Reduce your attack surface as much as possible.
- Automate your infrastructure, human input should be nonexistent
- Write a lot of automated tests
- Take the time to learn attack methods and actively try to break your own systems
- Have an external firm that will try to break your systems
- Add additional redundancy for hot spots in codebase
- Code reviews are mandatory and you should follow an internal style guide.
- Adopt a maintenance first culture, it should take less than 48 hours for you to be on the most recent version of all your dependencies. Bug fixes are your #1 priority.
- Educate your customers on what your potential failure conditions are, your recovery point objectives, and your recovery time objectives.
- If you do have a failure, fail loudly in a way that a customer can understand, report the failure and hopefully have a backup plan that users know and can run through.
- Customer support is a responsibility of the engineering department.
- Learn from others and contribute back with your tooling.
You can write mission critical code in any language. (Some are definitely better than others) You can't manage a mission critical application without investing in great operations.
Read google's SRE books for more practical information: https://landing.google.com/sre/books/ https://landing.google.com/sre/books/
- sgift 7y ago> Occupational licensing only serves to raise barriers to entry and crowd out competition without raising quality. To put my opinion bluntly, Bernie Madoff had a license. Almost every country in the world established at one point or another some kind of licensing for various professions. I think the barrier of "this is all bullshit" is a bit higher than one bad apple for something found to be a good idea by so many people. Do you have some supporting arguments for your position?
- bgorman 7y agoLook at teaching in the United States. All states require teacher licensing at public schools. However private schools do not and get better outcomes. Same thing with many unions for trades. I have yet to see any evidence a union electrician or plumber is better than a non-union worker, however unions do all they can to keep competition off the market.
- jmcqk6 7y ago> All states require teacher licensing at public schools. However private schools do not and get better outcomes. Some private schools get better outcomes than some public schools, but that is not universally true. The factors involved in outcomes in education are a whole lot more complicated than teacher licensing.+
- pbourke 7y agoWould you be willing to be treated by a Doctor without a medical license or be represented by an attorney who hasn’t taken or passed the bar exam?
- repolfx 7y agoMe? In a world where such licenses were not mandatory, i.e. the doctor in question wasn't actually breaking any laws? Sure. I'd probably want some alternative evidence of competence of course, like a long stream of happy, healthy, cured patients who could vouch for him. Or alternatively some sort of private sector approval scheme, based on trademark licensing. Sort of like how you can't claim a phone supports Bluetooth unless it's been licensed and approved. But in general I don't see any reason to assume the specific licensing regimes in place today are so grea.t
- pg_bot 7y agoSure, this report does a good job summarizing the tradeoffs of occupational licensure. If I were to highlight a section to read it would be pages 13 and 14. https://obamawhitehouse.archives.gov/sites/default/files/docs/licensing_report_final_nonembargo.pdf https://obamawhitehouse.archives.gov/sites/default/files/doc...
- teunispeters 7y ago"one bad apple destroys the whole batch" you need one bad example to disprove the validity of this kind of approach, unless standards are enforced to get the bad apples out as early and as quickly as possible.
- sgift 7y agoThe given example was send to jail until the end of his life. Looks like standards enforced to me. It's also the whole point of licensing: You have a standard you can enforce and if people fail to fulfill it there are consequences.
- cphuntington97 7y agoThis is all very reasonable, but assumes that avoiding catastrophic failure is the most profitable course of action.
- airbreather 7y agoStill a big difference between mission critical (money) and safety critical (lives). Safety critical encourages use of low variability languages, not just any language will do. Also expects that software will fail at some point, so encourages architecture that is tolerant of this where the consequences warrant, eg redundancy and diversity such as 2oo3 voting a la airbus and space shuttle. So many other things, but it always annoys me when the "IT" guys get involved in the safety software engineering just because there is a PC used to program the device - they just don't get that there is no suitable attitude of "don't worry how or why it got lost, just send that email again". Tell that to the widow.
- lioeters 7y agoMy favorite from your insightful recommendations: actively try to break your own systems. "Chaos monkeys" is a wonderful phrase and concept I picked up somewhere, as a strategy for testing and improving the resilience of systems. Since I learned of it, I've been introducing chaotic elements to test a wider range of inputs/behaviors, and indeed it has uncovered failing edge cases and helped to make application logic more robust.
- nineteen999 7y agoIt's the name of Netflix's tool. https://netflix.github.io/chaosmonkey/ https://netflix.github.io/chaosmonkey/
- zmmmmm 7y ago> Have an external firm that will try to break your systems This is by far the most important one, and in fact, I would argue that having external code or design audit would be incredibly useful as well. I work in a regulated area and it is amazing how well we do the things that are audited compared to the things that are not. In fact, all our systems are neatly divided into those that get audited and those that don't specifically so that we can apply all our higher standards to the audited ones. It is also important to recognise how empowering it is especially for less senior staff to be able to reference an standard or guideline and the point out that a flaw is vulnerable to discovery by audit.
- phyzome 7y agoAnd don't forget: - Impose civil and criminal liability for failures that can be traced to not following these standards Gotta have teeth.