|
I'm not unsympathetic to the points you've raised, but every time this issue comes up, I see the same two problems with it:
- Outside of safety-critical industries, the market (of companies who hire programmers and/or need custom software created) just doesn't care. In some countries, "software engineer" is a protected title and requires specific education and licensing. The net result? Companies choosing job titles other than "software engineer". Trying to compel all programmers to be part of a professional association would give companies a huge incentive to try to create all of their software using methods that you'd call 'not programming'. We'd end up in a universe where all business software is cobbled together using things like VBA and PowerApps. And I don't mean to knock VBA and PowerApps. Whether or not they count as real programming, they're often the quickest/fastest way to solve a problem, and like it or not, those are the metrics that most businesses care about. Given the old choice of 'fast, cheap, good - pick two', customers overwhelmingly prefer 'done cheap, delivered fast'.
- Even though the idea of professional programmer standards is appealing, it's almost impossible to be an advocate of these ideas without sounding like a jaded old fart who's trying to circle the wagons and keep out the dirty hippies and the hoi polloi with their disgusting VBAs and JavaScripts. I'm not sure even there's even a good way to combat this perception.
Now, there *are* a subset of companies who care deeply about quality. Why not just try to focus on selling yourself to those companies, since they already understand the value you provide? On the flip side, there are lots of companies for whom the kind of quality you want just wouldn't provide them any competitive advantage. If quality programming is your primary concern, spending too much time worrying about people who don't (and will never) care about it will only cost you your sanity.
I do wish you the best of luck in your endeavour, though.
|
|
|
|
|
Try to imagine Amazon.com, cobbled together from VBA and PowerApps.Imagine Call of Duty, built from VBA and PowerApps. The consumer marketplace is not insensitive to quality, and companies are not insensitive to reality. The effect of a Professional Developer association would on cost and on jobs would be marginal.
It's not necessary for every programmer to belong to the association. It's only needed for some senior decision makers to belong, and for the company to sign on to the code of behavior. Of course, these are the folks who make the big bucks, and the big decisions, so it's always possible that most programmers will want to belong.
|
|
|
|
|
If this thing gets established, please unsubscribe me from your mailing list in advance. Thanks.
Edit: FORTRAN is a crappy language. That information is for free.
modified 20-Oct-19 21:02pm.
|
|
|
|
|
What a disgusting premise! The computing industry has been a major boom because people can get into it and develop what their imaginations can create. Stifling this with BS licenses and then ensuing regulatory legislation that would not be far behind would slam the brakes on this.
What a ridiculous comment that people using higher level programming languages aren't programmers - such a narrow point of view. Do you really need to dig into the depths of C to write a front end application heavy in reporting functions? With your experience you should know and see that certain languages are better suited for different tasks. This kind of elitist mindset is one good reason for not having certifications and regulations.
Any manager worth their salt who is in charge of hiring can cipher out a skilled programmer vs a newbie or someone that knows enough to "look" good - but are not capable of the job at hand - and "technical currency" can then be determined. If they are a junior level programmer - then pay them as such - and pay a senior level programmer accordingly. Experience and actual knowledge do matter - but a license DOES NOT guarantee the quality of either of these.
I have spent the last few years substantially remodeling my house. I have studied local and state building code, building standards for residential building code, electrical/plumbing codes, studied architectural and structural engineering, etc... to make sure it is done right. What I have learned is that MANY of the local builders who are certified/licensed in many cases don't know what they are doing and/or are intentionally doing poor work. I see their projects, in progress and completed, and can point out the flaws with will cause problems in the short and/or long term - yet they are licensed and I am not.
My wife is a teacher - requiring college degrees, licensing, passing of licensing tests, etc... and we could both write you a book on the stupidity that manages to make its way into the classroom.
Licensing only puts barriers in the way for those interested in going into the field and eliminates great talent that will go in another direction instead of hopping though the red tape hoops. Sure you may filter low quality programmers out - but at such great expenses. Protected industries are insane and should be abolished across this county/world. An look at the education system. I have reviewed so many Computer Science degrees from multiple colleges where the amount of programming, the level of difficulty, and real world use is abysmal. In so many of these college tracts - a person coming out of them can't even write a simple program to produce a printed report. Surface level BS - but they think because they have that degree, and are told that they are now professionals - they think they are - but really!?!?
I have a programming degree - but I was self taught before that. The degree was for job purposes only. I learned almost nothing new in the process and in many cases taught the professors more than I learned. Those PhD's heading up the classes/department couldn't preform real world application of the theory they 'teach'. I ran into a complicated problem at a job shortly after graduating and I approached the PhD head of the department (who became a friend while working on my degree) and she had no clue as it didn't fit the clean theory world she worked in. I also have 5 or so certifications - some thing there. It may show you can get through some classes and that you can grasp the concepts, but that doesn't mean you can take it into real world and succeed. I scored high on my certification exams and on my programming degree - but saw other that didn't but managed to pass - and then on paper - what's the difference between them and me? Again, licensing, degrees, certifications are not the answer.
And as to holding programmers legally liable - that's a can of worms that makes my head want to explode. One, if a programmer did something wrong in their code and it resulted in deaths - do you honestly believe that the courts are not able to touch them now? BS! Of course they can. If a programmer writes code that causes major financial issues - if they are working for that company - they will be fired. Who would be ultimately responsible in that case anyway - the employer themselves - so, what - sues themselves? If the programmer is working as a contractor or for an IT company and they did the work for the company that took the loss - they could sue them. If their contracts don't allow that - then who's fault is that? Don't sign stupid contracts.
I have always likened computer work - hardware, software, programming, etc... in total to the to being a doctor of the human body. There is an insane amount to know, many working parts, many integrated and interrelated parts, different stages of development, many systems involved, etc... Even medical specialists, who are not elitist self deluded snobs, know they don't know it all and there is more to learn. How many doctors are successfully sued for medical mistakes and are found guilty? By number - probably a lot - by percent - very small. It's very difficult to prove they made an egregious error worthy of a winnable suite vs unforeseeable circumstances. And yes, I know they are licensed - but my point is that even so - even if they make mistakes - proving it and doing something about it are another matter (and yes, I have MANY stories of the incompetence of those licensed PhD doctors as well). How much testing should be done before being good enough? What about when your code is fine - but a CPU flaw is at the root of the failure? Could that have been figured out via testing? By REALLY DEEP testing? At what point could the programmer still take the blame even though his code SHOULD have been fine?
What responsibility does the customer of the code have - should they just assume it works and run with it without their own testing? Should they assume it will work as stated and not have any backups of critical records, systems, etc...?
How many serious programs have hundreds of thousands of lines of code - and even millions? Who is responsible? Many developers creating interrelated code/calls. If the code is 'correct' - but to incorrect specs - do they still get nailed because they should have tested it enough to figure that out and get the specs updated by those above them? What about the project manager? If they developed the specs that failed - should they be nailed - or the expert licensed programmer that didn't get the project manger to correct the specs after testing exposed the issue - or if the programmer didn't test enough to pick up on the incorrect spec? Who's at fault?
How about open source code? Write some code and put it out there for people to use, learn from, etc... but has a flaw - go after the programmer/group who put it out for free? It could still cause injury, death, monetary/resource/time loses. Or book authors... I have yet to read a book on coding that didn't have errors in the code in the book. How many thousand page long books do you think you can find that don't have spelling errors, grammar errors, incorrect concepts, etc (syntax errors, logic error, etc...) THAT is a major reason why going after programmers is a difficult venture (no that it can't be done now) - but that it is difficult to pin it on one persons and even if you could - intent also matters. And again - what would licensing have to do with stopping this or to make it any easier to pin failures on the right person(s).
Blah, blah, blah.
Or, how about people be able to learn, write, and put out code that is within their capabilities to produce - with the users of the software making sure it meets their needs and works (via testing). And, companies employing competent managers that can find programmers of the skill level they truly need - and fire them if someone manages to wiggle through the initial interviews and interview tests. Licensing proves nothing. Let freedom be the basis of this industry to promote new minds, new ventures, new ideas, etc...
|
|
|
|
|
Did I say license?
Gus Gustafson
|
|
|
|
|
Certification with an argument for imposing consequences sounds like licensing to me or already close to the next step to get there. It's a moving line. Open the door, and the next person fights for the next step. Doesn't answer my concerns and points in any case.
Plus - there are certifications for software development/software engineering - I suppose you just don't like them? Maybe for some of the reasons I point out?
|
|
|
|
|
Very pertinent answer, I think (I can't give 2 upvotes...). As a medical "specialist" I can only agree with you that self-learning values the most, we must all have licenses (in order to practice). As a self-taught "developer" I can say the same thing. Freedom is the key for any developer/creator/inventor. Checking and/or testing is the key for any user/client, starting by not clicking on any "Download Here" link on any obscure page.
|
|
|
|
|
Quote: I have reviewed so many Computer Science degrees from multiple colleges where the amount of programming, the level of difficulty, and real world use is abysmal.
I think you proved his point.
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
I never said I disagree that there are too many 'programmers' out there that don't what the heck they are doing. I also made the point the many of the PhD experts our there don't have a clue either. Who do you think will head up this organization? Elitists that have a clue too many time.
I tried to explain this to my young adult son who likes the idea of permits and oversight. He thinks (as many do) that this protects the interests of the individual. No. It makes the individual ignorant and gives them reason to relegate the responsibility to know about the issue at hand to the 'expert'. How many people know how to properly build a house, run electrical, etc...? It's all regulated, licensed, etc... So people get complacent and simply assume that the 'professional' doing the work for them will do it professionally. Or, that the inspectors are actually doing a real inspection based on their own 'professional' knowledge. It's all smoke and mirrors and in the end a money scheme.
Again, any competent professional manager can get this out of applicants for their programming staff and they would be negligent if they only gave credence to a certification or license. But, the tendency will be for them to do just that. In the case of customers - learn about it so they can make an educated choice - or have their own trusted IT source help them - but again - they should not simply hire a programmer under contract or a company with a programming staff blindly and taking certifications as the end all.
|
|
|
|
|
In a word - No.
The type of organization you describe is called a trade union. What we've seen over the decades as that although unions, regardless of why they started, eventually become barriers to entry for competitors.
I'm not opposed to distinguishing between a programmer and a software engineer, with the latter being required to have additional skills to ensure robust and bug free software. But requiring programmers to belong to a union would make it impossible for the mom & pop store to create a web-site. Not at first but it's a guarantee this would happen, simply because of human nature.
|
|
|
|
|
obermd wrote: requiring programmers to belong to a union would make it impossible for the mom & pop store to create a web-site. Because there are no non-union shops. Give me a break.
|
|
|
|
|
I have no problem erecting barriers to entry into the programming workspace. I have seen the junk code produced by incompetent "programmers" who are only interested in the paycheck and who work for managers for whom the bottom-line is the only measurement of success.
Gus Gustafson
|
|
|
|
|
I see no barriers to "programming".
I see a barrier to B.S.
And there's nothing wrong with a "code of ethics".
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
How does a certification erect a barrier to entry into the programming workspace - wouldn't that be the function of a license vs a certification?
And two, who are you are to tell business who they should ignore, who they should hire, or what standards they should be looking for - you are very linear here. I get your point about what you have an issue with - but why is it your call? People do have different reasons for why they hire - and you seem content to put them into a box. What if they are a small startup and they can't afford senior developers - but have a new idea of a solution that they way to put out. Maybe they need a functional beta to get more venture capital to justify hiring better developers. It's not black or white.
If you have your own business - then you set your own hiring practices. If your competitions hires incompetents - they will fail, you will succeed and they will go away. Free markets - you know...
|
|
|
|
|
You're assuming "senior developers" are expensive.
If I can't stand the job, pay is irrelevant.
I see (some kind of cert) as protecting the "consumer" (not the developer).
Certs are NOT a problem for "cheap customers". I say the opposite: it helps in some way to narrow the field when you're shopping.
My customers have been "lucky" because they had no IT department; no one to second-guess me. I delivered the goods because that's who I am, even though most had no clue who and what they were getting involved with.
Yes, some "cred" would make them feel a little easier ... even when there's not a lot of money at stake.
But in the end, it will make no difference because "users don't know what you don't know".
But at least "I know what I know" (and what I didn't).
And certification, in my experience, is not about reciting some obscure op codes.
It's also about problem-solving, managing, risk assessment, thinking ... you know: "soft" skills.
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
Generally 'senior developers' are more expensive.
I think you misunderstood - or I didn't say it well - but I don't believe 'Certs' protect anyone - especially the customer. I believe it gives them a feeling of false security that leads them to abdicate their own responsibility to look into the topic enough on their own to be able to ask smart questions and to have proper expectations of an employee or a contractor - which too often leads to bad ends.
There are too many people with degrees, certifications, licenses, whatever - that do not truly have the skillset to do what they claim. So long as these titles carry weight - people will not take the responsibility to make sure they can actually do the job. The 'title' says it all for them - or at least too much.
The employer or customer hiring a contractor - whether it is programming, IT, house repairs, etc... needs to be competent enough on the subject at hand to know what seems legit, to have an idea when things are going sideways, and what to do when and if that happens, how to setup internal policies for firing and/or when to break the contract and move on, etc...
|
|
|
|
|
Sounds like you never freelanced.
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
That's an interesting take. I've had an IT company for many years - much less freelance. My focus was not on software development, but IT solutions as a whole. I did some programming projects - but mostly the programming I did was of my own interest. And what's that supposed to mean anyway - that I don't know what a cert means for getting work? Of course I do. And as I stated in another post - I have like 5 certifications - besides a programming degree - that still doesn't mean anything as there are people with certs and degrees that are subpar at best. Again, customers simply relying on that is not enough - they need to take responsibility for knowing what they should be expecting vs getting, otherwise they are up for being taken advantage of. And yes - there are courts for when that happens - but that process is expensive, time consuming, reduces confidence in the industry, etc. It's not the preferred route. Just because I have certs and a degree, doesn't mean I don't get into details about my particular abilities and skills when I'm going after a job or trying to get new customers. I know they help get jobs - but they shouldn't. Too much weight is put on them. Just like at the moment too much weight is put on college degrees to get regular jobs. It's a game. 4 years of OJT vs a 4 year degree - I'd take the OJT any day over the degree - from my experience anyway.
|
|
|
|
|
The programming world is far too diverse for this kind of thing.
"Programmer" (or any other title, for that matter) is such a loose term that it's no more specific than referring someone to as a "builder" - you could be talking about a master stone-mason, a crane driver or a hod carrier.
Then add in the fact that programmers work in such a huge variety of organisations from tiny tech start-ups to huge non-tech corporations and their needs are every bit as diverse as their skill-sets.
Guilds and unions are great where you have a whole bunch of people doing very similar jobs but that just isn't the case here.
Whenever you find yourself on the side of the majority, it is time to pause and reflect. - Mark Twain
|
|
|
|
|
And one more facetious thought - maybe we should focus on creating a professional licensing organization that licenses people who want to create professional licensing organizations. I mean, if you setup one of these organizations improperly or do it under the wrong premises or reasons- it could cause HUGE problems within that industry. So, only those who have a proper license should be able to propose creating them. The specific words, phrases, concepts, legalities, etc... especially when flaws/failures could cost money/time/resources, indirectly cause injuries, death, etc... are a serious concern. Only seasoned, elite, professional licensing organization creators should be involved in such things.
|
|
|
|
|
Gus...
Like you I have spent decades as a professional software developer. And I have used many languages, finally specializing in C# and VB.NET since 2001 when the Microsoft .NET Framework development environments were commercially released.
However, I am not sure that certification is the way to go. Certification implies testing, which is short lived at best and useless at its worst.
Various coding boot camps have performed a similar function in terms of certification and it has been found that such graduates only have a cursory knowledge of what they claim to know from such training.
I have to agree with the commenter here that suggested a union but there are issues here as well. The Freelancer's Union attempted to be such an organization for the growing "freelance economy" (which was just a new word for exploitation). They appeared to have a good start but quickly eroded as they became more or less another insurance company peddling Obama Care medical programs, all of which were questionable in quality.
As it regards your observations on the Boeing 737 Max aircraft, there is nothing to indicate that any programmers were at fault. This was clearly a management decision to hide issues that resulted from the extension of a design with additional attributes the original design was not meant to support.
As usual, stupid management made a very stupid and dangerous decision, not the developers.
The deterioration of software development quality in the United States has many factors. However, the major ones can be categorized as the following...
1...
Corporate outsourcing of IT positions to reduce costs while lowering quality and flooding the US professional IT market with low-cost foreign workers that are willing to be exploited by degenerate management to the detriment of US citizens
2..
Increasingly, degenerate technical management that has been increasingly politicized to the point of ueslessness
3..
Vendor promotions of increasing complexity in development products, which has seriously weakened the inherent knowledge bases in the various communities
4...
Constant iterations of software, which add only questionable capabilities in lieu of the basic sets of features the majority of developers require or use
5...
The promotion of cloud-based services, which inherently reduce security for the purposes of allowing such companies as Amazon and others to make more money without advancing anything that safer individual, corporate run IT organizations could provide
6...
A major degeneration in the parenting and teaching of the younger generations that on the one hand are being coddled to death to the point that many young people are nothing more than vegetables while being taught in such a way in the many school systems to understand the world around them in a very restricted manner without any emphasis on critical thinking or the need to resolve their own problems on their own
The list could go on but you get the point...
The professional, technical environment today is too fraught with impediments to make an organization substantial enough to accmomodate the needs of professional developers and software engineers.
However, if one were to proceed with such an endeavor, it would have to be well planned out with multiple facets such as viable medical insurance programs, training capabilities, and legal assistance for professionals who run into issues on the job caused by management.
As a result, in my view such an organization would require to offer far more than just certification, which as I mentioned earlier is questionable at best...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
Somewhere along the line the concept of certification became embedded. I do not espouse certification. Rather I espouse something more in the line of an apprentice-journeyman-master approach - like blacksmiths who also create something out of a simple piece of iron.
To the younger programmers who object remember: you maybe earning $90K today but there is always someone coming out of college who can do your job for $75K. And guess who management hires? You have no protection! You have no one looking out for your interests!
Gus Gustafson
|
|
|
|
|
And if that person coming out of college can actually do the SAME job at $75k - they why should your employer pay you $90k? They pay you $90K because you have more experience - are presumably faster at getting a complex project done and able to develop solutions that the newbie can't because they simply don't have the experience - not because you are a familiar fixture in the office. If your employer cannot see that - do you want to work for them? Should you maybe be looking for another job - or maybe branching out on your own? This is common to most any job. I have done IT work for decades. I can track down and resolve issues faster than newbies that don't have the same level of experience. When I have had customers or employers that couldn't understand that - I moved on. Yes - you can 'fire' your customers too
|
|
|
|
|
Some thoughts for a professional organization
- Membership must be voluntary. There must be a place for people who choose not to belong, or who could not meet the demands of the certification process.
- The association's core product would be a code of ethics, binding on both individual and corporate members, with some cost (at least losing their membership) for ethical failures.
- To become and remain relevant, there would have to be some advantage to belonging, both for individuals and for corporations.
- The association could provide voluntary certifications. If the certifications were valuable, companies would come to expect them, and would perhaps even send employees to obtain them. There are existing certifications which the association could adopt initially. Maybe the association could put their brand approval on other groups' certifications.
- Along with certification, the association would have a role in providing education with certification as the end goal. As with certification, there is courseware that the association could adopt initially. Providing education leading to certification could become a powerful tool for pointing the industry in a positive direction.
- Like a labor union, the association could come to have a collective bargaining role, perhaps not for wages, but for working conditions. Some of this could happen through ethical rules about how to treat workers. If I was planning such an association, I would wait to roll out collective bargaining until there had been some uptake of the basic idea. (Bwah ha ha).
- Like a traditional union hall with members sitting around waiting for work, the association could maintain a market of freelancers who were certified by the association, or a collection of resumes. ACM makes a somewhat weak and pathetic attempt at this, but their heart isn't in it because they are run by academics.
|
|
|
|
|
Got mine first try. Computer grads; not so much.
Certificate in Data Processing - Wikipedia
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|