Diferentemente de outras profissões (como Contabilidade, Direito, Medicina, etc.), não há certificação em toda a profissão para Engenharia de Software.
Conheço bem as inúmeras certificações específicas de tecnologia e metodologia que visam servir como prova de especialização e experiência, mas não há sociedade / órgão de administração pública de Engenharia de Software que defina (e tenha o poder de avaliar legalmente) os padrões profissionais geralmente aceitos .
Entendo que o software é uma fera dinâmica - que é parte da arte, parte da ciência -, mas estou me perguntando se a Engenharia de Software tem potencial para se tornar uma profissão formal.
O que precisa mudar para que isso aconteça e isso seria uma coisa boa?
(Se alguém souber de pesquisa formal sobre esse tópico, eu apreciaria muito as referências)
Atualizar
Eu concordo com muitos dos pontos positivos levantados abaixo em relação ao nível atual de certificação em Engenharia de Software. Também acho muito interessante que alguns países tratem a Engenharia de Software como uma profissão, enquanto outros não.
No entanto, parece haver um pouco de disfarce em torno do termo "profissão formal" e como ele se aplicaria à Engenharia de Software. Eu acho que o principal problema da Engenharia de Software - e a principal razão pela qual não é uma profissão completa - é que, se você é um Engenheiro de Software certificado e, por exemplo, algum software que você escreveu para um elevador não funciona corretamente e mata pessoas, sua certificação e / ou associação a um organismo profissional formal não serão revogadas.
Certamente, sua empresa pode ser processada por milhões e você, pessoalmente, pode perder seu emprego e obter uma má referência, mas, de um modo geral, você é protegido pelo escudo de responsabilidade limitada como resultado de ser empregado por essa empresa. Em outras palavras, e até onde eu sei, não há nenhuma avaliação / aplicação legal em vigor (ao contrário de outras profissões formais e suas sociedades governamentais) que têm o mandato de impedi-lo oficialmente de negociar uma vez que você tenha feito um material colossal .
Gostei bastante da resposta que tocou no fato de que a Engenharia de Software - como está - é uma meritocracia, que não precisa ser uma profissão formal, e que isso é uma coisa boa que não deve mudar. Ao mesmo tempo, acho que precisamos fazer uma distinção clara entre engenheiros de software de software de missão crítica e desenvolvedores de softwares diversos / não críticos.
Para aqueles que trabalham / já trabalharam em software de missão crítica - existe alguma responsabilidade pessoal? Certamente, há necessidade de repercussões formais no caso do Engenheiro de Software cometer um erro caro?
fonte
Respostas:
Com base nas informações disponíveis, acredito que a Engenharia de Software já é uma profissão formal. Pode não ser amplamente aceito como tal, mas atende aos critérios geralmente aceitos para as características de uma profissão.
Do artigo da Wikipedia sobre profissão :
Isso cita extensivamente A ascensão do profissionalismo: uma análise sociológica de Magali Sarfatti Larson . A busca por "características de uma profissão" tende a gerar resultados semelhantes.
Como a Engenharia de software se compara a essas características?
Associação profissional Existem inúmeras associações profissionais para engenheiros de software. O IEEE e, mais especificamente, a IEEE Computer Society atendem a profissionais que trabalham em engenharia em todo o mundo, com a IEEE Computer Society concentrando-se especificamente em engenheiros de computação e software. O ACM é outra organização profissional para profissionais que trabalham em computação, geralmente nas Américas. Há também a British Computer Society , que atende a vários aspectos das profissões em tecnologia da informação e comunicação, geralmente no Reino Unido.
Base cognitiva O Conhecimento em Engenharia de Software é patrocinado pelo IEEE, Boeing, Conselho Nacional de Pesquisa do Canadá, Raytheon, Construx Software, Conselho Canadense de Engenheiros Profissionais, MITRE Corporation, NIST, Rational, SAP (para a versão 2004). Foi iniciado especificamente como um passo em direção a "tornar a engenharia de software uma disciplina legítima de engenharia e uma profissão reconhecida" .
Treinamento Institucionalizado Nos Estados Unidos, os programas de Tecnologia da Informação, Ciência da Computação e Engenharia de Software podem ser credenciados pela ABET . No Canadá, os programas de Ciência da Computação e Engenharia de Software são credenciados pelo CIPS . Essas organizações definem padrões mínimos e resultados esperados para os alunos que se formam em um programa credenciado para permitir que funcionem em um ambiente profissional. O IEEE também oferece dois exames baseados no Conhecimento em Engenharia de Software - o exame Certified Software Development Associate para estudantes de graduação (ou recém-graduados recentemente) e o exame Certified Software Development Professional para profissionais em meio de carreira.
Licenciamento Em abril de 2013, a NCEES oferece um exame de Engenharia Profissional em Engenharia de Software . É oferecido estado a estado nos Estados Unidos. No entanto, o exame PE de engenharia de software não é oferecido atualmente por todos os estados e menos ainda exigem a licença. Este artigo, publicado na edição de novembro / dezembro de 1999 da IEEE Software, discute os requisitos de licenciamento no estado do Texas e uma breve discussão sobre licenciamento em Ontario e British Columbia, Canadá e Reino Unido. No Texas, é necessária uma licença apenas para trabalhar no projeto, teste ou implementação de sistemas embarcados ou em tempo real que "exijam um entendimento detalhado dos componentes elétricos ou mecânicos projetados" e para sistemas de software para "dispositivos mecânicos, dispositivos elétricos e sistemas de energia "- uma quantidade relativamente pequena de trabalho de desenvolvimento de software. Nos estados que oferecem licenciamento, o pior cenário é ação disciplinar, sanções ou perda de sua licença, caso um cliente ou empregador faça uma reclamação. No entanto, o único dano real ocorre em estados que exigem uma licença - a menos que seja necessária para fazer o trabalho, perdê-lo não significa nada.
Código de ética A ACM e a IEEE Computer Society criaram um Código de ética e prática profissional de engenharia de software . Nos Estados Unidos, os graduados em programas de engenharia credenciados pela ABET, incluindo programas de Engenharia de Software, também podem ingressar na Order of the Engineer , que mantém um código de ética que geralmente se aplica a engenheiros profissionais.
Autonomia no trabalho, controle de colegas, altos padrões de excelência profissional e intelectual Estes são frequentemente visíveis em um ambiente em que a engenharia de software é tratada como uma disciplina de engenharia. Ou seja, nem todos os empregadores (ou freelancers) tratam o desenvolvimento de software como engenharia.
fonte
Um corpo profissional amplamente estabelecido e aceito para desenvolvedores / engenheiros / arquitetos de software / etc não seria uma coisa boa.
Atualmente, este é um dos poucos campos que podem atuar como uma meritocracia. Por exemplo, não me importo com o grau que você tem (ou se você tem um), quanta antiguidade você tem, quais idiomas você conhece etc. É relativamente fácil descobrir se você é um bom desenvolvedor ou não , e no final do dia essa é a única coisa que importa. Você pode fazer as coisas?
Atualmente, você é avaliado por sua capacidade, não por algum credenciamento que alguém lhe concedeu. E isso é justo, coisa boa (tm).
fonte
Nada precisa mudar.
Como apontado por Thomas , a engenharia de software já é uma profissão. Pode ser chamado de engenharia, programação, hacking e / ou artesanato, mas é uma profissão e muitas pessoas estão ganhando dinheiro com isso.
Acho que sua pergunta é sobre licenciamento.
No momento, não há licenciamento formal para engenharia de software. Qualquer pessoa com inteligência e capacidade de programação suficientes pode ser contratada e paga pela criação de código do que é executado em uma máquina ou dispositivo.
Isso é diferente de outras indústrias (direito e medicina são exemplos, conforme citado na pergunta). É necessária uma licença para essas profissões. Qualquer um pode dirigir um carro, mas para dirigir um legalmente, é necessário ter uma licença de dirvers é outro exemplo. Qualquer pessoa pode programar, sem licença ou certificação (s) necessária (s).
Agora, acredito que o licenciamento é bom, pois prova que alguém tem a capacidade de fazer algo (como dirigir um carro) e conhece os meandros das regras (da estrada).
Uma licença semelhante pode ser necessária para a engenharia de software, mas não acho que seria muito bom. De fato, existem muitos drivers licenciados que são horríveis; portanto, apenas porque você possui uma licença não significa que você seja um bom motorista ou programador.
Uma licença cria uma barreira para a entrada, o que neste setor não seria uma coisa boa, então não vejo nenhum benefício percebido desse licenciamento.
As empresas que contratam engenheiros de software devem testar definitivamente a capacidade desse programador em potencial com um "teste de programação" (e não estou falando do tipo de efervescência) com base nas habilidades necessárias. Programadores com "certificações" ficam bem no papel, mas devem realmente ser postos à prova com um teste do mundo real para avaliar a experiência e a aptidão.
fonte
Eu acho que deveria ser possível se tornar um desenvolvedor de software certificado passando em um exame da mesma maneira que um advogado passa em um exame de barra. Eu também acho que programadores não certificados ainda devem poder operar como programadores. A diferença é que os empregadores poderiam anunciar especificamente para programadores certificados, se é isso que eles querem, e um programador certificado viria com certas garantias de responsabilidade, além de um preço mais alto.
Concordo com o pôster que diz que o desenvolvimento de software é uma bagunça sem responsabilidade. Eu não acho que tem que ser assim. Existem desenvolvedores que desejam criar um bom software e estão dispostos a prestar contas por isso. Só precisamos de uma maneira de nos distinguir.
Desenvolvo software há mais de 20 anos. Não afirmo que isso me torne um ótimo desenvolvedor por si só, mas acho que sou um ótimo desenvolvedor. O problema é que tenho que demonstrar constantemente por que sou um desenvolvedor melhor do que qualquer criança que aprendeu programação em seu tempo livre e quer o mesmo trabalho que eu. Sem mencionar as legiões de desenvolvedores "offshore" que prometem fazer o mesmo trabalho por uma fração do dinheiro. Neste momento, é preciso muito esforço. Eu tenho que fornecer amostras de trabalho, referências, fazer testes, fazer entrevistas. Eu poderia facilmente ter um dia ruim, cometer um erro em um teste e ser desqualificado. Prefiro apenas dizer: "Sim, sou um desenvolvedor certificado e aqui está o meu certificado". Eu ainda teria que fazer entrevistas, mas pelo menos estaria competindo apenas com outros desenvolvedores certificados.
fonte
Nunca será, pelo menos não inteiramente. O software é um meio, como tinta. Existem pessoas que fazem trabalhos de pintura em escala industrial de grandes estruturas, pessoas que projetam novas tintas para executar com altos padrões, mas também há pessoas que compram tinta para fazer trabalhos em pequena escala, como pintar seu galpão, e ainda outras que podem misturar sua própria pintura, mas apenas use-a para pintar quadros de gatos.
Da mesma forma, embora eu pudesse ver um futuro em que o software crítico e / ou financeiro de segurança precisa de engenheiros credenciados trabalhando nele, nunca haverá necessidade de pessoas produzindo software de arte ou entretenimento. O que precisa ser alterado para obter o software financeiro ou de segurança necessário para a criação de engenheiros credenciados? Bem como as outras profissões, exigiria uma lei para determiná-la.
fonte
Software não é uma profissão, nem jamais será uma.
"Uma profissão surge quando qualquer comércio ou ocupação se transforma através do desenvolvimento de qualificações formais baseadas em educação, aprendizado e exames, o surgimento de órgãos reguladores com poderes para admitir e disciplinar membros e algum grau de direitos de monopólio".
Essa descrição não corresponde ao software.
Primeiro, qualquer pessoa interessada em software pode sair e tentar encontrar um emprego no desenvolvimento de software. Muitas dessas pessoas têm diplomas universitários totalmente não relacionados à programação de computadores e muitas não têm diplomas. Não há nada que impeça esses grupos de se tornarem programadores de software.
O software não pode se tornar uma profissão porque os membros "licenciados" se tornam responsáveis pelos danos que causam e por suas práticas incorretas. 80-90% dos desenvolvedores perderão o emprego dentro de alguns anos apenas por esse.
Em geral, a qualidade do software é atroz, propensa a erros e simplesmente não muito bem-feita. Isso é digno de ser uma profissão? Você prevê essa interrupção porque as pessoas são licenciadas? Se uma organização profissional não se destaca por altos padrões e qualidade profissional, não faz sentido. Isso vai diretamente contra a prática da indústria. Qualidade de escrita, software robusto e funcional é contrária aos princípios da maioria das empresas, porque o tempo de colocação no mercado, o custo, é bom o suficiente, não deseja interromper nada que esteja tentando consertar software quebrado. importante que o software de nível profissional.
Além disso, em relação à negligência. Como você vai provar que um desenvolvedor versus outro é o culpado? No software, é fácil apontar os dedos e os dois desenvolvedores "estão certos". Quem é o culpado quando esse desenvolvedor usa a API não documentada oculta nas entranhas do sistema operacional e, em seguida, o fornecedor do sistema operacional altera sua função ou a remove?
Boa sorte com essa coisa do órgão regulador. Vamos ver o congresso dizer não à Microsoft quando a Microsoft pedir que eles cumpram essa lei, porque isso permitirá que eles contratem desenvolvedores "licenciados". Sem esse órgão regulador, quem fará parte de uma organização que tem o direito de discipliná-lo e cobrar taxas, especialmente se não houver valor agregado, como obter direitos de monopólio sem o órgão regulador.
Quanto a isso, seria bom exigir licenciamento? Absolutamente, para aqueles que podem ser credenciados. Seu salário aumentaria dramaticamente com seu novo monopólio encontrado.
No entanto, para todos os outros ... o uso da tecnologia de computadores nas empresas provavelmente diminuiria junto com o ritmo acelerado do avanço que vemos hoje em dia. Certamente haverá barreiras para novos avanços de software, como linguagens e metodologias de design. Afinal, quem vai querer insistir em novas maneiras de fazer coisas que exigirão anos de reciclagem para manter sua licença. A maioria dos desenvolvedores licenciados prefere manter as coisas do jeito que estão nesse aspecto.
fonte