6 ms·
Joe the Developer is entrusted with writing code that can cost people money and cause damage. In some cases, it can endanger lives and businesses. Joe the Dev
by gdp 17y ago
Joe the Developer is entrusted with writing code that can cost people money and cause damage. In some cases, it can endanger lives and businesses.
Joe the Developer doesn't need a certificate, but "we the people" (as in the people who have his software inflicted upon them) would rather he did.
The certification argument seems to forget whose benefits from certification. It's not the developer - it's the people who are able to ensure that there is a baseline level of competence among software developers entrusted with certain kinds of development work.
I'm all for certification.
- TallGuyShort 17y agoIdeally, I would agree with you. But at the same time, when I think of the people I know who have certifications, I'm pretty sure I wouldn't trust any of them to write code I would depend on for anything. The systems for certification that are in place today, are IMHO, lacking real credibility. There will always be people who try to beat the system, because they DO see a certification as something that benefits them - it gets them a job. As long as that's the case - I place a lot more emphasis on my personal experience with a person, than what certifications they can show me.
- gdp 17y agoI agree that the existing certification programs may be lacking, but I don't think that negates the need for them. It just means we need to come up with better certifications.
- nathanb 17y agoThere will always be ways to game the certification process by teaching the test. And there will always be talented, passionate developers who don't test well or don't see the need to memorize something that Google could reveal in a single search or who just think that the certification process is bollocks. Requiring certification would, it seems to me, make it more difficult to determine which developers to trust. Just because Joe has a piece of paper saying that he knows X, Y, and Z doesn't mean that Joe isn't going to take shortcuts that end up costing the company thousands or millions of dollars (or human lives!). Because Joe has this piece of paper, companies may be lulled into thinking that they don't need to test him as hard or give him as long a trial period before entrusting him with critical systems.
- gdp 17y ago> And there will always be talented, passionate developers who don't test well or don't see the need to memorize something that Google could reveal in a single search or who just think that the certification process is bollocks. Any certification process that simply involved rote learning or which could be googled wouldn't be worth the paper it is written on. I'm certainly not advocating that. > Just because Joe has a piece of paper saying that he knows X, Y, and Z doesn't mean that Joe isn't going to take shortcuts that end up costing the company thousands or millions of dollars (or human lives!). Sure, certification doesn't do away with the need for QA and internal processes. It just ensures that anyone producing software that targets certain markets will have a basic understanding of which corners they are cutting. The government, for example, could mandate that they will prefer suppliers who have a certain percentage of certified developers. Playing an averages game, that at least means that somebody in the company is going to know when corners are being cut, rather than just having a group of people hacking along. > Because Joe has this piece of paper, companies may be lulled into thinking that they don't need to test him as hard or give him as long a trial period before entrusting him with critical systems. As I said before, the assurances provided by certification are not for the benefit of employers, they are for the benefit of users. If your hypothetical company actually did this, then they would be a very dumb company.
- nathanb 17y agoBut this dumbness is transitive. If it's dumb for a company to make assumptions about a developer because he's certified, it's dumb for a client to choose a company based on the percentage of developers who are certified. > Playing an averages game, that at least means that somebody in the company is going to know when corners are being cut, rather than just having a group of people hacking along. My argument is that this is completely false. In fact, I suspect that there would either be zero correlation between cluefulnes and certification or actually a negative correlation. The reason for this suspicion is both from looking at certifications required for other disciplines and looking at the best developers I know, all of whom have little to no use for certifications and are too busy doing awesome stuff to bother with formality and process (yet whose code consistently has the fewest and least severe bugs and is the most unit-tested of any code in the repository). There's certainly no question that a certification process could weed out maybe the bottom 5-10% of all developers if all professional software developers were required to take it. But the nature of software development is such that these developers are not the ones in danger of causing the collapse of civilization anyway. I would guess, and this is just my guess, that it's the ones who are in the top 50% but not in the top 10% who tend to wreak the most havoc: they have shown enough skill to be given important tasks, but due to time constraints or inexperience or whatever they make mistakes or cut corners. Thus, if I were a client, I would be more interested in choosing a company or supplier that has a policy where any code checked in must be reviewed by at least one experienced developer. I'd be interested in making sure that they write repeatable automated tests and use code coverage tools to ensure that their tests are testing what they think they're testing. I'd be interested in making sure that they had a mentoring program that allows new hires to be taught by experienced developers. Any one of these things would put my mind at ease more than any certification process.
- roedog88 17y agoWhat about certifying the software that Joe the developer creates, rather than Joe the developer? This is the approach the FAA takes with DO178B for the flight software on the jet planes that we ride. These are very large projects, using hundreds of developers. The quality of the team members varies. Half are below average for the population at large. Adding certification on top of this doesn't change the fact that half the developers will be below average. The projects are too large.
- gdp 17y ago> What about certifying the software that Joe the developer creates, rather than Joe the developer? There's a simple reason why - it costs x to certify 1 developer, and y to certify a piece of software. For most software, "y" is still too expensive to offset the potential damage caused by software failure (compared to a jetliner, where the potential cost is huge). A programmer may create hundreds or even thousands of pieces of software during a career. Average x over that number of projects, and it's negligible. Multiply that number by y, and you have an enormous figure. Also, the cost of certifying a piece of software to provide any kind of assurances of quality is time consuming and expensive. Compare this to a certification that shows that anyone who wants to claim to be a "software engineer" actually knows the first thing about software engineering, and is at least capable of producing software in a systematic way. It's just like we license drivers once and assume that that basic level of competency will ensure "quality driving" on a variety of road types. We don't certify each driver for each road individually.
- roedog88 17y agoI think the idea that certifying developers and not certifying safety critical software is a non starter. On safety critical projects, certification will add to existing and onerous validation and verification costs. The process requirements on these projects (DO-178B) call for an organization to institute a systematic way of developing software across the project that everyone on the project follows. An additional certification for each individual is not necessary. Either they can follow the process or they are reassigned.
- axod 17y ago>> "Joe the Developer is entrusted with writing code that can cost people money and cause damage. In some cases, it can endanger lives and businesses." That's what tests are for.
- jefffoster 17y agoBut the tests are only as good as the person writing them.
- gdp 17y agoNo, tests ensure certain functional behaviour under one input. Certification would ensure that Joe is capable of writing tests that actually test anything, for example.
- HeyLaughingBoy 17y agoNO, that's what proper design & development process is for. Testing is only a (small) part of that process and as we've known for decades, you can't test quality into a product. Hell, just a few minutes ago, someone brought me a piece of code that has been HAMMERED on for the last nine months and it still has a bug that wasn't noticed until today! gdp is right: certifications are useful if they are rigorous, targeted and demand useful knowledge and training I doubt most developers would say that licensing pilots or physicians is useless but that's essentially the same thing as claiming that certifying programmers is useless.
- axod 17y agoNot really. Pilots and Physicians are trusted with peoples lives. Most software is just fun stuff that makes peoples lives slightly better. Only a small amount of software is 'mission critical'. If software breaks, it usually doesn't cause the loss of life.
- amalcon 17y agoWhen a pilot or a physician makes a mistake, there is no chance for someone else to correct it. That's why these professions (physicians especially) require expensive certifications, and continuing expenses to keep these certifications current. Engineers are probably a better comparison: while engineers do have expensive certifications, they aren't the ones doing most of the engineering. Instead, they're the ones verifying that the engineering (done mostly by non-certified engineers) meets the design requirements.
- swombat 17y agoThe certification argument seems to forget whose benefits from certification. It's not the developer - it's the people who are able to ensure that there is a baseline level of competence among software developers entrusted with certain kinds of development work. You're making one huge assumption here: that the certification actually certifies anything at all. As a matter of fact, it does not. Certifications are useless. Having or not having a certification is no indication of presence or lack of programming skill. I'll go further, though. The certifications do you, as the public who makes use of developer services, a disservice. They imply that someone has verified and certified "a baseline level of competence" - but that implication is a fabrication, a lie. All the certifications do, effectively, is give people who shouldn't be in programming jobs working for people who shouldn't be hiring programmers.
- gdp 17y ago> You're making one huge assumption here: that the certification actually certifies anything at all. As a matter of fact, it does not. Certifications are useless. Having or not having a certification is no indication of presence or lack of programming skill. Bet you're not a fan of driver licensing either, right? 'cause a driver license is no indication of the presence or absence of driving skill, either. Oh, wait, yes it is.
- swombat 17y agoDriving is a far simpler skill than programming. The fact is, most people in the world are capable of driving a car, after proper tuition. Most people in the world are incapable of developing quality software, after any amount of tuition. I think one huge problem with software engineering is that hardly anyone within the industry can even agree about what the "gold standard" should be. In those circumstances, it's extremely hard to figure out what a "proper" certification should entail. Even decent certifications end up being opinionated pieces of paper that don't really mean anything to most of the industry. Fundamentally, programming is about problem-solving. Beyond an IQ test, I'm not sure how you can certify that effectively.
- 17y ago
- mgrouchy 17y agoI would argue that certification has very little do with the quality of software that a developer would produce or a baseline level of competence. We generally hope that a degree would give you a baseline level of competence, but I'm not sure that is entirely true either.
- gdp 17y agoDegree programs that contain certain requirements could be accredited as being equivalent to a certain certification. Not all degrees programmes include even the first thing about software engineering - they have plenty of programming, but nothing that would actually ensure that people have a systematic approach to software development.
- cema 17y agoThis is basically a CYA ("cover your ass") argument. It seems to be a correct one. Which explains the (mostly negative) attitude to certifications from the community.